選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

設定 Pod 以使用 AWS 服務帳戶存取 服務

焦點模式
設定 Pod 以使用 AWS 服務帳戶存取 服務 - Amazon EKS

協助改善此頁面

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

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

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

協助改善此頁面

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

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

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

如果 Pod 需要存取 AWS 服務,則必須將其設定為使用 Kubernetes 服務帳戶。服務帳戶必須與具有存取 AWS 服務許可的 AWS Identity and Access Management (IAM) 角色相關聯。

  • 現有的叢集。如果您沒有 ,您可以使用 中的其中一個指南來建立開始使用 Amazon EKS

  • 現有的 Kubernetes 服務帳戶和 EKS Pod Identity 關聯,將服務帳戶與 IAM 角色建立關聯。角色必須具有關聯的 IAM 政策,其中包含您希望 Pod 必須使用 AWS 服務的許可。如需有關服務帳戶和角色之建立和設定方式的詳細資訊,請參閱將 IAM 角色指派給 Kubernetes 服務帳戶

  • 在您的裝置或 AWS CloudShell 上安裝和設定的最新版本 AWS CLI。您可以使用 aws --version | cut -d / -f2 | cut -d ' ' -f1 來檢查您的目前版本。適用於 macOS 的 yumapt-get或 Homebrew 等套件管理員通常是最新版本 CLI AWS 後面的幾個版本。若要安裝最新版本,請參閱《 AWS 命令列界面使用者指南》中的使用 aws 設定安裝 和 Quick configuration。 https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config安裝在 AWS CloudShell 中的 AWS CLI 版本也可能是最新版本後面的幾個版本。若要更新它,請參閱 AWS CloudShell AWS 使用者指南中的將 CLI 安裝到您的主目錄

  • kubectl 命令列工具安裝在您的裝置或 AWS CloudShell 上。該版本可與叢集的 Kubernetes 版本相同,或最多可以比您叢集的 Kubernetes 版本早或晚一個次要版本。例如,如果您的叢集版本為 1.29,則可以搭配使用 kubectl 1.281.291.30 版。若要安裝或升級 kubectl,請參閱 設定 kubectl 和 eksctl

  • 包含叢集組態的現有 kubectl config 檔案。若要建立 kubectl config 檔案,請參閱建立 kubeconfig 檔案,將 kubectl 連接至 EKS 叢集

    1. 使用下列命令來建立部署資訊清單,您可以部署 Pod 來確認組態。以您自己的值取代範例值

      cat >my-deployment.yaml <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: my-app spec: selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: serviceAccountName: my-service-account containers: - name: my-app image: public.ecr.aws/nginx/nginx:X.XX EOF
    2. 將清單檔案部署到叢集。

      kubectl apply -f my-deployment.yaml
    3. 確認您的 Pod 存在所需的環境變數。

      1. 在上一個步驟中,檢視與部署一起部署的 Pod。

        kubectl get pods | grep my-app

        範例輸出如下。

        my-app-6f4dfff6cb-76cv9 1/1 Running 0 3m28s
      2. 確認 Pod 具有服務帳戶字符檔案掛載。

        kubectl describe pod my-app-6f4dfff6cb-76cv9 | grep AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE:

        範例輸出如下。

        AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE: /var/run/secrets/pods.eks.amazonaws.com/serviceaccount/eks-pod-identity-token
    4. 確認您的 Pod 可以使用您在連接至角色的 IAM 政策中指派的許可與 AWS 服務互動。

      注意

      當 Pod 使用與服務帳戶相關聯的 IAM 角色 AWS 登入資料時,該 Pod 容器中的 AWS CLI 或其他 SDKs 會使用該角色提供的登入資料。如果您未限制存取提供給 Amazon EKS 節點 IAM 角色的登入資料,Pod 仍然可以存取這些登入資料。如需詳細資訊,請參閱‬限制存取指派給工作節點的執行個體設定檔‭

      如果您的 Pod 無法如預期與 服務互動,請完成下列步驟,以確認一切設定正確。

      1. 確認您的 Pod 使用支援透過 EKS Pod Identity 關聯擔任 IAM 角色的 AWS SDK 版本。如需詳細資訊,請參閱搭配 AWS SDK 使用 Pod 身分

      2. 確認部署使用服務帳戶。

        kubectl describe deployment my-app | grep "Service Account"

        範例輸出如下。

        Service Account: my-service-account
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。