View a markdown version of this page

Amazon EKS 自動モードl クラスター IAM ロール - Amazon EKS

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

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

Amazon EKS 自動モードl クラスター IAM ロール

Amazon EKS クラスター IAM ロールはクラスターごとに必要です。Amazon EKS によって管理される Kubernetes クラスターはこのロールを使用して、ストレージ、ネットワーキング、コンピューティングの自動スケーリングのルーチンタスクを自動化します。

Amazon EKS クラスターを使用するにはEKS 自動モードl に必要なポリシーを持つ IAM ロールを作成する必要があります。推奨の AWS IAM マネージドポリシーをアタッチするか、同等のアクセス許可を持つカスタムポリシーを作成することができます。

EKS Auto リソースのカスタム AWS タグ

デフォルトでは、EKS Auto Mode に関連するマネージドポリシーでは、ユーザー定義タグを Auto Mode でプロビジョニングされた AWS リソースに適用することはできません。ユーザー定義タグを AWS リソースに適用する場合は、AWS リソースのタグを作成および変更するのに十分なアクセス許可を持つクラスター IAM ロールに追加のアクセス許可をアタッチする必要があります。以下は、無制限のタグ付けアクセスを許可するポリシーの例です。

{ "Version":"2012-10-17", "Statement": [ { "Sid": "Compute", "Effect": "Allow", "Action": [ "ec2:CreateFleet", "ec2:RunInstances", "ec2:CreateLaunchTemplate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-node-class-name": "*", "aws:RequestTag/eks:kubernetes-node-pool-name": "*" } } }, { "Sid": "Storage", "Effect": "Allow", "Action": [ "ec2:CreateVolume", "ec2:CreateSnapshot" ], "Resource": [ "arn:aws:ec2:*:*:volume/*", "arn:aws:ec2:*:*:snapshot/*" ], "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "Networking", "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" }, "StringLike": { "aws:RequestTag/eks:kubernetes-cni-node-name": "*" } } }, { "Sid": "LoadBalancer", "Effect": "Allow", "Action": [ "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateRule", "ec2:CreateSecurityGroup" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldProtection", "Effect": "Allow", "Action": [ "shield:CreateProtection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } }, { "Sid": "ShieldTagResource", "Effect": "Allow", "Action": [ "shield:TagResource" ], "Resource": "arn:aws:shield::*:protection/*", "Condition": { "StringEquals": { "aws:RequestTag/eks:eks-cluster-name": "${aws:PrincipalTag/eks:eks-cluster-name}" } } } ] }

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

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

  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左のナビゲーションペインで、[ロール] を選択してください。

  3. ロールのリストで AmazonEKSAutoClusterRole を検索します。AmazonEKSAutoClusterRole を含むロールが存在しない場合は次のセッションの手順を参照してロールを作成します。AmazonEKSAutoClusterRole が含まれているロールが存在する場合はこのロールを選択してアタッチされているポリシーを表示します。

  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", "sts:TagSession" ] } ] }
注記

AWS ではこのロールの名前 AmazonEKSAutoClusterRole は必要ありません。

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

クラスターロールを作成するにはAWS マネジメントコンソール または AWS CLI を使用できます。

AWS マネジメントコンソール

  1. https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

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

  3. [信頼できるエンティティタイプ] の下で、[AWS サービス] を選択してください。

  4. [他の AWS サービスのユースケース] ドロップダウンリストから、[EKS] を選択してください。

  5. ユースケースに [EKS - Cluster] (EKS - クラスター)を 選択し、[ 次へ] (次へ)を 選択してください。

  6. [アクセス許可を追加] タブで、ポリシーを選択し、[次へ] を選択してください。

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

  8. [Description] (説明) にはAmazon EKS - Cluster role のような説明文を入力してください。

  9. [ロールの作成] を選択してください。

AWS CLI

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

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

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

AmazonEKSClusterPolicy:

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

AmazonEKSコンピュートポリシー:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSComputePolicy

AmazonEKSブロックストレージポリシー:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSBlockStoragePolicy

AmazonEKSロードバランシングポリシー:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSLoadBalancingPolicy

Amazon EKSネットワーキングポリシー:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEKSNetworkingPolicy