了解 EKS Pod 身分識別的運作方式 - Amazon EKS

協助改進此頁面

若要為本使用者指南貢獻內容,請點選每個頁面右側面板中的在 GitHub 上編輯此頁面連結。

了解 EKS Pod 身分識別的運作方式

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 角色會透過使用 AssumeRoleWithWebIdentity 的方式,提供 AWS SDK 必須與 AWS 安全記號化服務交換的 Web 身分記號。

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 Pod 身分識別代理程式會使用 AssumeRoleForPodIdentity 動作以從 EKS 驗證 API 擷取臨時憑證。

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

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

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

    注意

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