了解EKS Pod Identity工作原理 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

了解EKS Pod Identity工作原理

Amazon EKS Pod 身分識別關聯提供管理應用程式憑證的功能,類似 Amazon EC2 執行個體設定檔將憑證提供給 Amazon EC2 執行個體的方式。

Amazon EKS Pod 身分識別透過其他 EKS 驗證 API 和在每個節點上執行的代理程式 Pod,為您的工作負載提供憑證。

在您的附加元件中,例如 Amazon EKS 附加元件和自我管理控制器、操作員和其他附加元件,作者需要更新其軟體以使用最 AWS 新的 SDK。如需 EKS Pod 身分識別與 Amazon EKS 產生的附加元件之間的相容性清單,請參閱上節 EKS Pod 身分識別限制

在程式碼中使用 EKS Pod 身分識別

在您的程式碼中,您可以使用 AWS SDK 存取 AWS 服務。您撰寫程式碼以使用 SDK 建立 AWS 服務的用戶端,依預設,SDK 會在一連串位置中搜尋要使用的 AWS Identity and Access Management 認證。找到有效的憑證後,系統就會停止搜尋。有關使用的預設位置的詳細資訊,請參閱 AWS SDK 和工具參考指南中的認證提供者鏈

EKS Pod 身分識別已新增至容器憑證提供者,系統會在預設憑證鏈中的某個步驟搜尋此提供者。如果您的工作負載目前使用憑證鏈中較早的憑證,那麼即使您為相同工作負載設定 EKS Pod 身分識別關聯,系統仍會繼續使用這些憑證。如此一來,您就可以先建立關聯,然後再移除舊憑證,以安全地從其他類型的憑證遷移。

容器憑證提供者會從每個節點上執行的代理程式提供臨時憑證。在 Amazon EKS 中,代理程式為 Amazon EKS Pod 身分識別代理程式,而在 Amazon Elastic Container Service 上,代理程式則為 amazon-ecs-agent。SDK 使用環境變數來尋找要連線的代理程式。

相反地,服務帳戶的 IAM 角色會提供 AWS SDK 必須使用的 Web 身分權杖交換AssumeRoleWithWebIdentity。 AWS Security Token Service

EKS Pod 身分識別代理程式如何搭配 Pod 使用

  1. 當 Amazon EKS 啟動使用具有 EKS Pod 身分識別關聯之服務帳戶的全新 Pod 時,叢集會將下列內容新增至 Pod 清單檔案:

    env: - name: AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE value: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token" - name: AWS_CONTAINER_CREDENTIALS_FULL_URI value: "http://169.254.170.23/v1/credentials" volumeMounts: - mountPath: "/var/run/secrets/pods.eks.amazonaws.com/serviceaccount/" name: eks-pod-identity-token volumes: - name: eks-pod-identity-token projected: defaultMode: 420 sources: - serviceAccountToken: audience: pods.eks.amazonaws.com expirationSeconds: 86400 # 24 hours path: eks-pod-identity-token
  2. Kubernetes 會選取要在哪個節點上執行 Pod。然後,節點上的 Amazon EKS 網繭身分代理程式會使用該AssumeRoleForPodIdentity動作從 EKS 驗證 API 擷取臨時登入資料。

  3. EKS Pod 身分識別代理程式可讓您在容器內執行的 AWS SDK 使用這些認證。

  4. 您可以在應用程式中使用 SDK,無需指定憑證提供者來使用預設憑證鏈。或者,您可以指定容器憑證提供者。有關使用的預設位置的詳細資訊,請參閱 AWS SDK 和工具參考指南中的認證提供者鏈

  5. SDK 會使用環境變數來連線至 EKS Pod 身分識別代理程式,並擷取憑證。

    注意

    如果您的工作負載目前使用憑證鏈中較早的憑證,那麼即使您為相同工作負載設定 EKS Pod 身分識別關聯,系統仍會繼續使用這些憑證。