

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

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

# Amazon EKS アドオンの IAM ロール
<a name="add-ons-iam"></a>

特定の Amazon EKS アドオンでは、AWS API を呼び出す IAM ロールおよび許可が必要です。例えば、Amazon VPC CNI アドオンは特定の AWS API を呼び出して、アカウント内のネットワークリソースを設定します。これらのアドオンには、 IAM を使用してアクセス許可を付与する必要があります。具体的には、アドオンを実行しているポッドのサービスアカウントを、特定の IAM ポリシーを持つ IAM ロールに関連付ける必要があります。

クラスターワークロードに AWS アクセス許可を付与する際の推奨方法は、Amazon EKS 機能 Pod Identity を使用することです。**Pod Identity の関連付け**を使用して、アドオンのサービスアカウントを IAM ロールにマッピングできます。ポッドが関連付けられたサービスアカウントを使用する場合、Amazon EKS はポッドのコンテナに環境変数を設定します。環境変数は、AWS CLI を含む AWS SDK が EKS Pod Identity の認証情報を使用するように設定します。詳細については、「[EKS Pod Identity が Pod に AWS サービスへのアクセス権を付与する仕組みを学ぶ](pod-identities.md)」を参照してください。

Amazon EKS アドオンは、アドオンに対応する Pod Identity の関連付けのライフサイクルを管理するのに役立ちます。例えば、Amazon EKS アドオンと必要な Pod Identity の関連付けを 1 回の API コールで作成または更新できます。Amazon EKS には、推奨される IAM ポリシーを取得するための API も用意されています。

1. [Amazon EKS Pod Identity エージェントが](pod-id-agent-setup.md)クラスターで設定されていることを確認します。

1. インストールするアドオンに、`describe-addon-versions` AWS CLI オペレーションを使用して IAM アクセス許可が必要かどうかを確認します。`requiresIamPermissions` フラグが `true` の場合、`describe-addon-configurations` オペレーションを使用してアドオンに必要なアクセス許可を決定する必要があります。レスポンスには、推奨されるマネージド IAM ポリシーのリストが含まれます。

1. `describe-addon-configuration` CLI オペレーションを使用して、Kubernetes サービスアカウントの名前と IAM ポリシーを取得します。提案されたポリシーの範囲をセキュリティ要件に照らして評価します。

1. 提案されたアクセス許可ポリシーと Pod Identity に必要な信頼ポリシーを使用して IAM ロールを作成します。詳細については、「[Pod Identity の関連付けを作成する (AWS コンソール)](pod-id-association.md#pod-id-association-create)」を参照してください。

1. CLI を使用して Amazon EKS アドオンを作成または更新します。少なくとも 1 つの Pod Identity の関連付けを指定します。Pod Identity の関連付けは、Kubernetes サービスアカウントの名前、および IAM ロールの ARN です。
   + アドオン API を使用して作成された Pod Identity の関連付けは、それぞれのアドオンによって所有されます。アドオンを削除すると、Pod Identity の関連付けも削除されます。AWS CLI または API を使用してアドオンを削除するときに、`preserve` オプションを使用してこのカスケード削除を防ぐことができます。必要に応じて、Pod Identity の関連付けを直接更新または削除することもできます。アドオンは、既存の Pod Identity の関連付けの所有権を引き受けることはできません。既存の関連付けを削除し、アドオンの作成または更新オペレーションを使用して再作成する必要があります。
   + Amazon EKS では、Pod Identity の関連付けを使用してアドオンの IAM アクセス許可を管理することをお勧めします。前の方法であるサービスアカウント (IRSA) の IAM ロールは引き続きサポートされています。アドオンの IRSA `serviceAccountRoleArn` と Pod Identity の関連付けの両方を指定できます。EKS Pod Identity エージェントがクラスターにインストールされている場合、`serviceAccountRoleArn` は無視され、EKS は指定された Pod Identity の関連付けを使用します。Pod Identity が有効になっていない場合、`serviceAccountRoleArn` が使用されます。
   + 既存のアドオンの Pod Identity の関連付けを更新すると、Amazon EKS はアドオンポッドのローリング再起動を開始します。