Spring Cloud Vault GCP-IAM身份验证

2024-01-03 17:36 更新

GCP AUTH后端允许Vault通过使用现有的GCP(谷歌云端平台)IAM和GCE凭证登录。

GCP IAM身份验证为服务帐户创建JSON Web令牌(JWT)形式的签名。通过调用GCP IAM的projects.serviceAccounts.signJwtAPI 获得服务帐户的JWT 呼叫者针对GCP IAM进行身份验证,从而证明其身份。此Vault后端将GCP视为受信任的第三方。

IAM凭证可以从运行时环境(特别是GOOGLE_APPLICATION_CREDENTIALS 环境变量),Google Compute元数据服务获得,也可以从外部以JSON或base64编码的形式提供。JSON是首选格式,因为它带有调用projects.serviceAccounts.signJwt所需的项目ID和服务帐户标识符。

示例102.20 bootstrap.yml具有必需的GCP-IAM身份验证属性

spring.cloud.vault:
    authentication: GCP_IAM
    gcp-iam:
        role: my-dev-role

示例102.21。具有所有GCP-IAM身份验证属性的bootstrap.yml

spring.cloud.vault:
    authentication: GCP_IAM
    gcp-iam:
        credentials:
            location: classpath:credentials.json
            encoded-key: e+KApn0=
        gcp-path: gcp
        jwt-validity: 15m
        project-id: my-project-id
        role: my-dev-role
        service-account-id: my-service@projectid.iam.gserviceaccount.com
  • role设置尝试进行登录的角色的名称。
  • credentials.location包含JSON格式的Google凭据的凭据资源的路径。
  • credentials.encoded-key JSON格式的OAuth2帐户私钥的base64编码内容。
  • gcp-path设置要使用的GCP安装架的路径
  • jwt-validity配置JWT令牌有效性。默认为15分钟。
  • project-id允许将项目ID覆盖为特定值。从获得的凭据中默认为项目ID。
  • service-account允许将服务帐户ID覆盖为特定值。默认为获取的凭证中的服务帐户。

GCP IAM身份验证需要Google Cloud Java SDK依赖项(com.google.apis:google-api-services-iamcom.google.auth:google-auth-library-oauth2-http),因为身份验证实现使用Google API进行凭据和JWT签名。

Google凭据需要OAuth 2令牌来维护令牌的生命周期。所有API都是同步的,因此GcpIamAuthentication不支持AuthenticationSteps,这是无功使用所必需的。

也可以看看:


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号