Spring Cloud Vault GCP-IAM身份驗證

2024-01-03 17:36 更新

GCP AUTH后端允許Vault通過使用現(xiàn)有的GCP(谷歌云端平臺)IAM和GCE憑證登錄。

GCP IAM身份驗證為服務(wù)帳戶創(chuàng)建JSON Web令牌(JWT)形式的簽名。通過調(diào)用GCP IAM的projects.serviceAccounts.signJwtAPI 獲得服務(wù)帳戶的JWT 。呼叫者針對GCP IAM進(jìn)行身份驗證,從而證明其身份。此Vault后端將GCP視為受信任的第三方。

IAM憑證可以從運(yùn)行時環(huán)境(特別是GOOGLE_APPLICATION_CREDENTIALS 環(huán)境變量),Google Compute元數(shù)據(jù)服務(wù)獲得,也可以從外部以JSON或base64編碼的形式提供。JSON是首選格式,因為它帶有調(diào)用projects.serviceAccounts.signJwt所需的項目ID和服務(wù)帳戶標(biāo)識符。

示例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設(shè)置嘗試進(jìn)行登錄的角色的名稱。
  • credentials.location包含JSON格式的Google憑據(jù)的憑據(jù)資源的路徑。
  • credentials.encoded-key JSON格式的OAuth2帳戶私鑰的base64編碼內(nèi)容。
  • gcp-path設(shè)置要使用的GCP安裝架的路徑
  • jwt-validity配置JWT令牌有效性。默認(rèn)為15分鐘。
  • project-id允許將項目ID覆蓋為特定值。從獲得的憑據(jù)中默認(rèn)為項目ID。
  • service-account允許將服務(wù)帳戶ID覆蓋為特定值。默認(rèn)為獲取的憑證中的服務(wù)帳戶。

GCP IAM身份驗證需要Google Cloud Java SDK依賴項(com.google.apis:google-api-services-iamcom.google.auth:google-auth-library-oauth2-http),因為身份驗證實現(xiàn)使用Google API進(jìn)行憑據(jù)和JWT簽名。

Google憑據(jù)需要OAuth 2令牌來維護(hù)令牌的生命周期。所有API都是同步的,因此GcpIamAuthentication不支持AuthenticationSteps,這是無功使用所必需的。

也可以看看:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號