協助改善此頁面
想要為此使用者指南做出貢獻? 捲動至此頁面底部,然後在 上選取編輯此頁面 GitHub。您的貢獻將幫助我們的使用者指南更適合所有人。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
獲取簽名密鑰以驗證OIDC令牌
Kubernetes向每個發ProjectedServiceAccountToken
出一個KubernetesService
Account。這個令牌是一個OIDC令牌,它進一步是一種類型JSON
web token (JWT)。Amazon EKS 會為每個叢集託管一個公有OIDC端點,其中包含權杖的簽署金鑰,以便外部系統可以對其進行驗證。
要驗證ProjectedServiceAccountToken
,您需要獲取OIDC公共簽名密鑰,也稱為JSON Web Key Set (JWKS). 在應用程式中使用這些金鑰來驗證權杖。例如,您可以使用 PyJWT Python 庫ProjectedServiceAccountToken
,請參閱IAM, Kubernetes 和 OpenID Connect (OIDC) 背景資訊。
必要條件
-
叢集的現有 AWS Identity and Access Management OpenID Connect (IAMOIDC) () 提供者。若要判定您是否已經擁有一個,或是要建立一個,請參閱 建立 IAM OIDC 叢集的提供者。
-
AWS CLI— 用於處理包括 Amazon EKS 在內的 AWS 服務的命令行工具。如需詳細資訊,請參閱《 AWS Command Line Interface 使用者指南》中的安裝、更新和解除安裝 AWS CLI。安裝之後 AWS CLI,我們建議您也對其進行配置。如需詳細資訊,請參閱《 AWS Command Line Interface 使用者指南》中的使用
aws configure
進行快速組態設定。
獲取OIDC公共簽名密鑰(AWS CLI)
-
使用擷取 Amazon EKS 叢集的 OIDC URL。 AWS CLI
$
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
{"keys":[{"kty":"RSA","kid":"2284XXXX4a40","use":"sig","alg":"RS256","n":"wklbXXXXMVfQ","e":"AQAB"}]}https://oidc.eks.us-west-2.amazonaws.com/id/8EBDXXXX00BAE
/keys