協助改進此頁面
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
擷取簽署金鑰以驗證 OIDC 權杖
Kubernetes 會為每個 Kubernetes Service 帳戶發出一個 ProjectedServiceAccountToken。此權杖是 OIDC 權杖,同時也是一種 JSON Web 權杖 (JWT)。Amazon EKS 為每個叢集託管公有 OIDC 端點,其中包含權杖的簽署金鑰,讓外部系統可以對其進行驗證。
若要驗證 ProjectedServiceAccountToken,您需要擷取 OIDC 公有簽署金鑰,也稱為 JSON Web Key Set (JWKS)。在應用程式中使用這些金鑰,以驗證權杖。例如,您可以使用 PyJWT Python 程式庫ProjectedServiceAccountToken 的詳細資訊,請參閱 IAM, Kubernetes 和 OpenID Connect (OIDC) 背景資訊。
注意
如果您的驗證器在沒有傳出網際網路存取的情況下在 VPC 中執行,您可以透過為叢集 OIDC 端點 () 建立 a AWS PrivateLink 介面端點,私下擷取探索文件和 JWKScom.amazonaws.region-code.oidc-eks。如需詳細資訊,請參閱使用 AWS PrivateLink 存取叢集 OIDC 端點。
先決條件
-
叢集的現有 AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 提供者。若要判定您是否已經擁有一個,或是要建立一個,請參閱 為您的叢集建立 IAM OIDC 身分提供者。
-
AWS CLI — 用於使用 AWS 服務的命令列工具,包括 Amazon EKS。如需詳細資訊,請參閱《 AWS 命令列界面使用者指南》中的安裝。安裝 CLI AWS 之後,建議您也進行設定。如需詳細資訊,請參閱《 AWS 命令列界面使用者指南》中的具有 aws 設定的快速組態。
程序
-
使用 CLI 擷取 Amazon EKS 叢集的 AWS OIDC URL。
$ aws eks describe-cluster --name my-cluster --query 'cluster.identity.oidc.issuer' "https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE" -
使用 curl 或類似工具檢索公有簽署金鑰。結果為 JSON Web Key Set (JWKS)
。 重要
Amazon EKS 會限流對 OIDC 端點的呼叫。您應該快取公有簽署金鑰。遵守回應中包含的
cache-control標題。重要
Amazon EKS 每七天輪換一次 OIDC 簽署金鑰。
$ curl https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE/keys {"keys":[{"kty":"RSA","kid":"2284XXXX4a40","use":"sig","alg":"RS256","n":"wklbXXXXMVfQ","e":"AQAB"}]}