このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
Amazon EKS ノードの IAM ロール
Amazon EKS ノード kubelet
デーモンが、ユーザーに代わって AWS API への呼び出しを実行します。ノードは、IAM インスタンスプロファイルおよび関連ポリシーを通じて、これらの API コールのアクセス許可を受け取ります。ノードを起動してクラスターに登録する前に、起動するときに使用するノード用の IAM ロールを作成する必要があります。この要件は、Amazon が提供する Amazon EKS 最適化 AMI で起動されたノード、または使用する予定の他のノード AMI で起動されたノードに適用されます。さらに、この要件はマネージド型ノードグループとセルフマネージド型ノードの両方に適用されます。
注記
クラスターの作成に使用したロールは使用できません。
ノードを使用するには、次の アクセス許可を持つ IAM ロールを作成する必要があります。
-
kubelet
が VPC 内の Amazon EC2 リソースを記述するためのアクセス許可 (AmazonEKSWorkerNodePolicy
ポリシーで規定されているなど)。このポリシーは、Amazon EKS Pod Identity エージェントのアクセス許可も提供します。 -
kubelet
が Amazon Elastic Container Registry (Amazon ECR) のコンテナイメージを使用するためのアクセス許可 (AmazonEC2ContainerRegistryReadOnly
ポリシーで規定されているなど)。ネットワーキング用の組み込みアドオンは Amazon ECR のコンテナイメージを使用するポッドを実行するため、Amazon Elastic Container Registry (Amazon ECR) のコンテナイメージを使用する許可が必要です。 -
(オプション) Amazon EKS Pod Identity エージェントが
eks-auth:AssumeRoleForPodIdentity
アクションを使用してポッドの認証情報を取得するためのアクセス許可。AmazonEKSWorkerNodePolicy を使用しない場合、EKS Pod Identity を使用するには EC2 アクセス許可に加えてこのアクセス権許可も提供する必要があります。 -
(オプション) IRSA または EKS Pod Identity を使用して VPC CNI ポッドにアクセス許可を与えない場合は、インスタンスロールで VPC CNI へのアクセス許可を与える必要があります。
AmazonEKS_CNI_Policy
マネージドポリシー (IPv4
ファミリーを使用してクラスターを作成した場合) または作成した IPv6 ポリシー (IPv6
ファミリーを使用してクラスターを作成した場合) のいずれかを使用できます。ただし、このロールにポリシーをアタッチするのではなく、Amazon VPC CNI アドオン専用の別のロールにポリシーをアタッチすることをお勧めします。Amazon VPC CNI アドオン用に別のロールを作成する方法の詳細については、「IRSA を使用するように Amazon VPC CNI プラグインを設定する」を参照してください。
注記
2023 年 10 月 3 日より前は、各マネージドノードグループの IAM ロールに AmazonEKSWorkerNodePolicy
と AmazonEC2ContainerRegistryReadOnly
が必要でした。
Amazon EC2 ノードグループには、Fargate プロファイルとは異なる IAM ロールが必要です。詳細については、「Amazon EKS Pod 実行 IAM ロール」を参照してください。
既存のノードロールの確認
以下の手順を使用して、アカウントに既に Amazon EKS ノードロールがあるかどうかを確認できます。
IAM コンソールで eksNodeRole
を確認するには
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左のナビゲーションペインで、[ロール] を選択します。
-
ロールのリストで
eksNodeRole
、AmazonEKSNodeRole
、またはNodeInstanceRole
を検索します。これらの名前のいずれかを持つロールが存在しない場合、「Amazon EKS ノードでの IAM ロールの作成」を参照してロールを作成してください。eksNodeRole
、AmazonEKSNodeRole
、あるいはNodeInstanceRole
を含むロールが存在する場合、そのロールを選択して、アタッチされているポリシーを表示します。 -
[許可] を選択します。
-
AmazonEKSWorkerNodePolicy および AmazonEC2ContainerRegistryReadOnly のマネージドポリシーがロールにアタッチされていること、またはカスタムポリシーが最小限の許可でアタッチされていることを確認します。
注記
AmazonEKS_CNI_Policy ポリシーがロールに添付されている場合は、それを削除して、代わりに
aws-node
Kubernetes サービスアカウントにマップされている IAM ロールに添付することをお勧めします。詳細については、「IRSA を使用するように Amazon VPC CNI プラグインを設定する」を参照してください。 -
[信頼関係] を選択し、[信頼ポリシーの編集] を選択します。
-
信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[キャンセル] を選択します。信頼関係が一致しない場合、ポリシーを [信頼ポリシーの編集] ウィンドウにコピーし、[ポリシーの更新] を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Amazon EKS ノードでの IAM ロールの作成
AWS Management Console または AWS CLI を使用して、ノードの IAM ロールを作成できます。