

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# Amazon EKS Pod Identity エージェントのセットアップ
<a name="pod-id-agent-setup"></a>

EKS Pod Identity の関連付けは、Amazon EC2 インスタンスプロファイルから Amazon EC2 インスタンスに認証情報を提供する場合と同じような方法で、アプリケーションの認証情報を管理する機能があります。

Amazon EKS Pod Identity は、追加の EKS Auth API と各ノードで実行されるエージェントポッドを使用して、ワークロードに認証情報を提供します。

**ヒント**  
EKS Auto Mode クラスターに EKS Pod Identity エージェントをインストールする必要はありません。この機能は EKS Auto Mode に組み込まれています。

## 考慮事項
<a name="pod-id-agent-considerations"></a>
+ デフォルトでは、EKS Pod Identity Agent は EKS 自動モードクラスターにプリインストールされます。詳細については[EKS Auto Mode を使用してクラスターインフラストラクチャを自動化する](automode.md)を参照してください。
+ EKS Pod Identity エージェントはデフォルトでポッドが認証情報をリクエストするために `IPv4` と `IPv6` のアドレスをリッスンします。エージェントは、`IPv4` のループバック (localhost) IP アドレス `169.254.170.23` と `IPv6` の localhost IP アドレス `[fd00:ec2::23]` を使用します。
+ `IPv6` アドレスを無効にするか、または localhost `IPv6` IP アドレスを禁止すると、エージェントは起動できません。`IPv6` を使用できないノードでエージェントを起動するには、「[EKS Pod Identity エージェントで `IPv6` を無効にする](pod-id-agent-config-ipv6.md)」の手順に従って `IPv6` 設定を無効にします。

## Amazon EKS Pod Identity エージェントの作成
<a name="pod-id-agent-add-on-create"></a>

### エージェントの前提条件
<a name="pod-id-agent-prereqs"></a>
+ 既存の Amazon EKS クラスター。デプロイするには「[Amazon EKS の使用を開始する](getting-started.md)」を参照してください。クラスターバージョンとプラットフォームバージョンは、[EKS Pod Identity クラスターバージョン](pod-identities.md#pod-id-cluster-versions)に記載されているバージョン以降である必要があります。
+ ノードロールには、エージェントが EKS Auth API で `AssumeRoleForPodIdentity` アクションを実行する権限があります。[AWS マネージドポリシー: AmazonEKSWorkerNodePolicy](security-iam-awsmanpol.md#security-iam-awsmanpol-amazoneksworkernodepolicy) を使用するか、次のようなカスタムポリシーを追加できます。

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

  このアクションをタグで制限して、エージェントを使用するポッドが引き受けることができるロールを制限できます。
+ ノードは Amazon ECR にアクセスしてイメージをダウンロードできます。アドオンのコンテナイメージは、「[Amazon EKS アドオンの Amazon コンテナイメージレジストリの表示](add-ons-images.md)」に記載されているレジストリにあります。

  なお、イメージの場所を変更して、AWS マネジメントコンソール の **[オプションの設定]** や AWS CLI の `--configuration-values` で EKS アドオンの `imagePullSecrets` を提供することができます。
+ ノードは Amazon EKS Auth API にアクセスできます。プライベートクラスターでは、AWS PrivateLink の `eks-auth` エンドポイントが必要です。

### AWS コンソールでエージェントを設定する
<a name="setup_agent_with_shared_aws_console"></a>

1. [Amazon EKS コンソール](https://console.aws.amazon.com/eks/home#/clusters)を開きます。

1. 左のナビゲーションペインで、**[クラスター]** を選択し、次にアドオンを設定するEKS Pod Identity エージェントを選択します。

1. **[アドオン]** タブを選択してください。

1. **[その他のアドオンを入手]** を選択してください。

1. EKS Pod Identity のアドオンボックスの右上にあるボックスを選択し、**[次へ]** を選択します。

1. **[選択したアドオン設定を構成する]** ページの **[バージョン]** ドロップダウンリストで任意のバージョンを選択します。

1. (オプション) **[オプションの設定]** を展開して追加の設定を入力します。例えば、代替のコンテナイメージの場所と `ImagePullSecrets` を指定できます。許可されたキーのある JSON スキーマは、**[アドオン設定スキーマ]** に表示されます。

   設定キーと値を **[設定値]** に入力します。

1. [**次へ**] を選択します。

1. EKS Pod Identity がクラスター上で実行されていることを確認してください。

   ```
   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 Identity の関連付けを使用できるようになりました。詳細については、「[IAM ロールを Kubernetes サービスアカウントに割り当てる](pod-id-association.md)」を参照してください。

### AWS CLI でエージェントを設定する
<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 Identity エージェントは、*サービスアカウントの IAM ロール*用の `service-account-role-arn` を使用しません。EKS Pod Identity エージェントにはノードロールの権限を付与する必要があります。

1. EKS Pod Identity がクラスター上で実行されていることを確認してください。

   ```
   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 Identity の関連付けを使用できるようになりました。詳細については、「[IAM ロールを Kubernetes サービスアカウントに割り当てる](pod-id-association.md)」を参照してください。