

 **協助改進此頁面** 

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

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

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

# 設定 Amazon EKS Pod 身分識別代理程式
<a name="pod-id-agent-setup"></a>

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

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

**提示**  
您無須在 EKS 自動模式叢集上安裝 EKS Pod 身分識別代理程式。EKS 自動模式中已內建此功能。

## 考量事項
<a name="pod-id-agent-considerations"></a>
+ 依預設，EKS Pod 身分識別代理程式將預先安裝在 EKS 自動模式叢集上。如需詳細資訊，請參閱 [利用 EKS 自動模式自動運作叢集基礎設施](automode.md)。
+ 依預設，EKS Pod 身分識別代理程式將接聽 `IPv4` 與 `IPv6` 位址，以便 Pod 請求憑證。代理程式針對 `IPv4` 使用迴路 (localhost) IP 位址 `169.254.170.23`，針對 `IPv6` 使用 localhost IP 位址 `[fd00:ec2::23]`。
+ 若您停用 `IPv6` 位址，或者以其他方式阻止 localhost `IPv6` IP 位址，將無法啟動代理程式。如需在不能使用 `IPv6` 的節點上啟動代理程式，遵循 [在 EKS Pod 身分識別代理程式中停用 `IPv6`](pod-id-agent-config-ipv6.md) 中的步驟來停用 `IPv6` 組態。

## 建立 Amazon EKS Pod 身分識別代理程式
<a name="pod-id-agent-add-on-create"></a>

### 代理程式先決條件
<a name="pod-id-agent-prereqs"></a>

**重要**  
EKS Pod Identity Agent 執行的節點必須能夠存取 EKS 驗證 API。如果您為節點使用私有子網路，則必須為 EKS 身分驗證 API 設定一個 AWS PrivateLink 介面端點。如需詳細資訊，請參閱[使用 AWS PrivateLink 存取 Amazon EKS](vpc-interface-endpoints.md)。
+ 現有 Amazon EKS 叢集。若要部署叢集，請參閱 [開始使用 Amazon EKS](getting-started.md)。叢集版本和平台版本必須與 [EKS Pod 身分識別叢集版本](pod-identities.md#pod-id-cluster-versions)中列出的版本相同或為更新版本。
+ 節點角色具有代理程式在 EKS 驗證 API 中執行 `AssumeRoleForPodIdentity` 動作的許可。您可使用 [AWS 受管政策：AmazonEKSWorkerNodePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksworkernodepolicy)，或者新增與下列所示類似的自訂政策：

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks-auth:AssumeRoleForPodIdentity"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

  此動作可能會受到標籤的限制，以限制使用代理程式的 Pod 可以擔任哪些角色。
+ 這些節點可以從 Amazon ECR 連上和下載映像。適用於附加元件的容器映像位於[檢視適用於 Amazon EKS 附加元件的 Amazon 容器映像登錄檔](add-ons-images.md)中列示的登錄檔中。

  請注意，您可以在 的**選用組態設定**中，以及在 CLI `imagePullSecrets` `--configuration-values`的 中 AWS 管理主控台，變更映像位置並提供 EKS AWS 附加元件。

### 使用 AWS 主控台設定代理程式
<a name="setup_agent_with_shared_aws_console"></a>

1. 開啟 [Amazon EKS 主控台](https://console.aws.amazon.com/eks/home#/clusters)。

1. 在左側導覽窗格中，選取**叢集**，然後選取您要為其設定 EKS Pod 身分識別代理程式附加元件之叢集的名稱。

1. 選擇**附加元件**索引標籤。

1. 選擇**取得更多附加元件**。

1. 選取 EKS Pod 身分識別代理程式之附加元件方塊右上方的方塊，然後選擇**下一步**。

1. 在**設定選取的附加元件設定**頁面上，選取**版本**下拉式清單中的任何版本。

1. (選用) 展開**選用組態設定**以輸入其他組態。例如，您可以提供替代容器映像位置和 `ImagePullSecrets`。具有已接受索引鍵的 JSON 結構描述會顯示在**附加元件組態結構描述**中。

   在**組態值**中輸入組態金鑰和值。

1. 選擇**下一步**。

1. 確認 EKS Pod 身分識別代理程式 Pod 正在您的叢集上執行。

   ```
   kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'
   ```

   範例輸出如下。

   ```
   eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
   eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h
   ```

   您現在可以在叢集中使用 EKS Pod 身分識別關聯。如需詳細資訊，請參閱[指派 IAM 角色至 Kubernetes 服務帳戶](pod-id-association.md)。

### 使用 CLI AWS 設定代理程式
<a name="setup_agent_with_shared_aws_cli"></a>

1. 執行下列 AWS CLI 命令。使用您叢集的名稱取代 `my-cluster`。

   ```
   aws eks create-addon --cluster-name my-cluster --addon-name eks-pod-identity-agent --addon-version v1.0.0-eksbuild.1
   ```
**注意**  
EKS Pod 身分識別代理程式不會針對*服務帳戶的 IAM 角色*使用 `service-account-role-arn`。您必須為 EKS Pod 身分識別代理程式提供節點角色的許可。

1. 確認 EKS Pod 身分識別代理程式 Pod 正在您的叢集上執行。

   ```
   kubectl get pods -n kube-system | grep 'eks-pod-identity-agent'
   ```

   範例輸出如下。

   ```
   eks-pod-identity-agent-gmqp7                                          1/1     Running   1 (24h ago)   24h
   eks-pod-identity-agent-prnsh                                          1/1     Running   1 (24h ago)   24h
   ```

   您現在可以在叢集中使用 EKS Pod 身分識別關聯。如需詳細資訊，請參閱[指派 IAM 角色至 Kubernetes 服務帳戶](pod-id-association.md)。