Workload Identity 可為叢集中的每個應用程式指派不重複的精細身分與授權。建議您使用 Workload Identity,讓在 AWS 上的 GKE 中執行的應用程式存取 AWS 和 Google Cloud 服務。
所有 GKE 叢集都已啟用 Workload Identity。
Kubernetes 服務帳戶
Workload Identity 會實作身分聯盟,或將信任或角色委派給外部供應商。每個叢集都有內建的 OpenID Connect (OIDC) 提供者。Pod 在叢集中執行時,會使用 Kubernetes 服務帳戶。Pod 可設定為使用繫結服務帳戶權杖磁碟區,為 Kubernetes 服務帳戶取得短期憑證的權杖。
OpenID Connect 提供者
每個叢集都可以做為 OpenID Connect (OIDC) 提供者。透過這個供應商,您可以將 Kubernetes 服務帳戶憑證提供給支援使用 OIDC 進行身分同盟的服務。
這個提供者的核發者 URI 也會做為 OIDC 探索端點。服務可使用這個探索端點取得 JSON Web Key Set (JWKS),其中提供公開金鑰資訊,方便服務驗證 Kubernetes 服務帳戶憑證。
Google Cloud IAM 身分集區和提供者
Google Cloud IAM 支援使用 OIDC 的身分聯盟。所有 GKE 叢集都已在工作負載身分集區 PROJECT_ID.svc.id.goog
中設定為身分提供者。
如要取得工作負載身分集區和提供者的名稱,請參閱「搭配 Google Cloud 使用 Workload Identity Google Cloud」。
AWS IAM 身分識別提供者
AWS IAM 支援使用 OIDC 進行身分識別聯盟。如要使用工作負載的服務帳戶身分存取 AWS,您需要在 AWS IAM 上建立 OIDC 提供者。根據預設,GKE on AWS 不會設定 AWS IAM 的身分識別提供者。
Workload Identity 的替代方案
您也可以透過其他方法,從 AWS 上的 GKE 存取服務。 由於這些方法較為複雜,因此不建議使用。
匯出憑證並儲存為 Kubernetes Secret。在這種情況下,您必須在 AWS IAM 和叢集中手動輪替儲存的憑證。此外,如果攻擊者竊取憑證,就能加以利用。
將憑證附加至節點集區的基礎執行個體。在這種情況下,在相同節點上執行的所有工作負載都會共用憑證,這可能會導致工作負載擁有的權限超出所需。如要封鎖執行個體權限的存取權,GKE 叢集會封鎖從 Pod 存取執行個體中繼資料服務的權限。