【问题标题】:CloudFoundry CLI - Get bound CredentialsCloudFoundry CLI - 获取绑定凭证
【发布时间】:2021-07-30 16:50:42
【问题描述】:

有没有办法从 PCF CLI 获取绑定凭据? 例如,我想获取数据库凭据。

更多详情:

当您在 manifest.yml 文件中使用 Redis、cloudSQL 等服务时,pcf 会绑定这些服务并生成凭据,应用程序会使用它们。如果我想获得在本地使用的凭据,我需要登录 PCF 并去服务获取这些凭据。相反,我希望能够从 cli 获取这些凭据,而无需登录 pcf UI。 cf env <service> 显示 VCAP_SERVICES json。但对于数据库,它不显示凭据。不过,它适用于 Redis。对于数据库,我必须访问 Web 和服务,然后访问数据库服务以获取凭据。

【问题讨论】:

  • 这没有帮助。我知道我可以获得所有环境变量。但它不显示数据库信用。
  • 嗯,这是 supposed 进入的 env var 服务绑定,所以如果那里没有显示某些内容,您将不得不提供更多信息。
  • 由于某种原因,db 凭据被隐藏而不显示。只有 redis 实例显示凭据
  • 我同意,需要更多信息。发布答案,但这只是一个猜测。

标签: command-line-interface cloud-foundry credentials pivotal-web-services


【解决方案1】:

鉴于缺乏细节,这有点猜测,但是,越来越普遍的服务是将其凭据存储在 CredHub 中,而不是将它们存储在云控制器中。如果您按照 cmets 中的建议查看环境变量,这会导致在 VCAP_SERVICES 中看到占位符条目。

如果这是您所看到的,您需要进一步检索凭据(这正是服务执行此操作的确切点,它使得破坏服务的凭据变得更加困难)。

  1. cf ssh 进入您的应用容器
  2. 运行curl -vv -i -H 'Content-Type: application/json' --cert /etc/cf-instance-credentials/instance.crt --key /etc/cf-instance-credentials/instance.key -d "$VCAP_SERVICES" 'https://credhub.service.cf.internal:8844/api/v1/interpolate' | jq .

这可能看起来很神奇,所以我会分解它。

a.) 它使用curl 查询CredHub 的/api/v1/interpolate 端点。此 API 接收带有占位符的 VCAP_SERVICES 的内容,并返回不带占位符的版本。 b.) -d "$VCAP_SERVICES" 将请求的主体设置为$VCAP_SERVICES 的内容。这正是 API 调用所期望的。 c.) 您告诉curl 使用/etc/cf-instance/credentials.key/etc/cf-instance/credentials.crt 的证书和密钥执行双向TLS。这允许您使用 Credhub 进行身份验证。 d.) 结果是 JSON,所以 jq . 只是漂亮地打印响应。这是可选的。

您可以使用以相同方式配置的 HTTP 客户端在您选择的编程语言中实现相同的功能。您必须从容器内部执行此操作,因为 CredHub 只能从容器中使用,而且因为这是唯一可以获取对 CredHub 进行身份验证所需的证书/密钥的地方。

【讨论】:

  • 嗯...会试试的
  • 当我尝试使用cf ssh <app> 登录应用程序时,我得到Error opening SSH connection: You are not authorized to perform the requested action.。不确定我是否需要任何额外的权限。
  • 您可能需要额外的权限。这取决于。您可以尝试cli.cloudfoundry.org/en-US/v7/enable-ssh.html 来启用它。您可能还需要在空间级别允许它,cli.cloudfoundry.org/en-US/v7/allow-space-ssh.html。试一试。如果它没有帮助,您需要与您的平台运营团队聊天,看看他们是否正在阻止它。他们也有可能阻止 ssh 访问。
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 2021-09-29
  • 1970-01-01
  • 2013-11-11
相关资源
最近更新 更多