Amazon EKS クラスター の IAM ロール - Amazon EKS

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

本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

Amazon EKS クラスター の IAM ロール

Amazon EKS クラスターの IAM ロールは各クラスターに必要です。Amazon EKS によって管理される Kubernetes クラスターはこのロールを使用してノードを管理し、レガシークラウドプロバイダーはこのロールを使用して Elastic Load Balancing によるロードバランサーをサービス用に作成します。

Amazon EKS クラスターを使用するには、事前に次の IAM ポリシーのいずれかを持つ IAM ロールを作成する必要があります。

  • AmazonEKSClusterPolicy

  • カスタム IAM ポリシー。以下の最小限の許可では、Kubernetes クラスターがノードを管理することはできますが、レガシークラウドプロバイダーが Elastic Load Balancing によるロードバランサーを作成することはできません。カスタム IAM ポリシーには、少なくとも以下の許可が必要です。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "ForAnyValue:StringLike": { "aws:TagKeys": "kubernetes.io/cluster/*" } } }, { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeAvailabilityZones", "kms:DescribeKey" ], "Resource": "*" } ] }
注記

2023 年 10 月 3 日より前は、各クラスターの IAM ロールには AmazonEKSClusterPolicy が必要でした。

2020 年 4 月 16 日までは、AmazonEKSServicePolicy および AmazonEKSClusterPolicy が必須であり、ロールに推奨される名前は eksServiceRole でした。AWSServiceRoleForAmazonEKS のサービスにリンクされたロールにより、2020 年 4 月 16 日以降に作成されたクラスターに対しては、AmazonEKSServicePolicy ポリシーは必要なくなりました。

既存のクラスターロールの確認

次の手順を使用して、アカウントに Amazon EKS クラスターロールが既に存在しているかどうかを確認できます。

IAM コンソールで eksClusterRole を確認するには
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左のナビゲーションペインで、[ロール] を選択します。

  3. ロールのリストで eksClusterRole を検索します。eksClusterRole が含まれているロールが存在しない場合は、Amazon EKS でのクラスターロールの作成を参照してロールを作成します。eksClusterRole が含まれているロールが存在する場合は、このロールを選択してアタッチされているポリシーを表示します。

  4. アクセス許可」 を選択します。

  5. AmazonEKSClusterPolicy 管理ポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、Amazon EKS クラスターロールは適切に設定されています。

  6. [Trust relationships] (信頼関係) を選択し、[Edit trust policy] (信頼ポリシーの編集) を選択します。

  7. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[キャンセル] を選択します。信頼関係が一致しない場合、ポリシーを [信頼ポリシーの編集] ウィンドウにコピーし、[ポリシーの更新] を選択します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Amazon EKS でのクラスターロールの作成

クラスターロールを作成するには、AWS Management Console または AWS CLI を使用できます。

AWS Management Console
IAM コンソールで Amazon EKS クラスターロールを作成するには
  1. https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. [ロール] を選択してから [ロールの作成] を選びます。

  3. [Trusted entity type] (信頼されたエンティティタイプ) の下で、[AWS service] ( のサービス) を選択します。

  4. [Use cases for other AWS のサービス] (他の ユースケース) ドロップダウンリストから、[EKS] を選択します。

  5. ユースケースに [EKS - Cluster] (EKS - クラスター) を選択し、[Next] (次へ) を選択します。

  6. [Add permissions] (アクセス許可を追加する) タブで、[Next] (次へ) を選択します。

  7. [ロール名] に、eksClusterRole などのロールの一意の名前を入力します。

  8. [Description] (説明) には、Amazon EKS - Cluster role のような説明文を入力します。

  9. [ロールの作成] を選択します。

AWS CLI
  1. 次の内容を cluster-trust-policy.json という名前のファイルにコピーします。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. ロールを作成します。eksClusterRole は、任意の名前で置き換えることができます。

    aws iam create-role \ --role-name eksClusterRole \ --assume-role-policy-document file://"cluster-trust-policy.json"
  3. 必要な IAM ポリシーをロールにアタッチします。

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \ --role-name eksClusterRole