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

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

Amazon EKS によって管理される Kubernetes クラスターは、ユーザーに代わって他の AWS のサービスを呼び出し、サービスで使用するリソースを管理します。Amazon EKS クラスターを使用するには、次の IAM ポリシーを持つ IAM ロールを作成する必要があります。

注記

2020 年 4 月 16 日までは、AmazonEKSServicePolicy も必須であり、推奨される名前は eksServiceRole でした。AWSServiceRoleForAmazonEKS サービスにリンクされたロールでは、このポリシーは必須でなくなりました。

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

次の手順を使用して、アカウントにすでに 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. [信頼関係]、[信頼関係の編集] を選択します。

  7. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[Cancel] を選択します。信頼関係が一致しない場合、ポリシーを [Policy Document] ウィンドウにコピーし、[Update Trust Policy] を選択します。

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

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

アカウントにクラスターロールがまだない場合は、AWS マネジメントコンソール または AWS CloudFormation を使用して作成できます。ロールの作成に使用するツールの名前を選択します。

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

IAM コンソールで Amazon EKS クラスターロールを作成するには

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

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

  3. サービスのリストから [EKS] を選択し、ユースケースに合った [EKS - Cluster (EKS - クラスター)] を選択して、[Next: Permissions (次へ: アクセス許可)] を選択します。

  4. [次へ: タグ] を選択します。

  5. (オプション) タグをキーと値のペアとしてアタッチして、メタデータをロールに追加します。IAM でのタグの使用の詳細については、『IAM ユーザーガイド』の IAM エンティティのタグ付けを参照してください。

  6. [Next: Review] を選択します。

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

AWS CloudFormation

AWS CloudFormation で Amazon EKS クラスターロールを作成するには

  1. 以下の AWS CloudFormation テンプレートをローカルシステムのテキストファイルに保存します。

    --- AWSTemplateFormatVersion: '2010-09-09' Description: 'Amazon EKS Cluster Role' Resources: eksClusterRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - eks.amazonaws.com Action: - sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonEKSClusterPolicy Outputs: RoleArn: Description: The role that Amazon EKS will use to create AWS resources for Kubernetes clusters Value: !GetAtt eksClusterRole.Arn Export: Name: !Sub "${AWS::StackName}-RoleArn"
    注記

    2020 年 4 月 16 日までは、ManagedPolicyArnsarn:aws:iam::aws:policy/AmazonEKSServicePolicy のエントリがありました。AWSServiceRoleForAmazonEKS サービスにリンクされたロールでは、このポリシーは必須でなくなりました。

  2. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  3. [スタックの作成] を選択します。

  4. [テンプレートの指定] で、[テンプレートファイルのアップロード] を選択し、[ファイルの選択] を選択します。

  5. 作成したファイルを選択し、[Next (次へ)] を選択します。

  6. [スタックの名前] に eksClusterRole などのロール名を入力し、[次へ] を選択します。

  7. [スタックオプションの設定] ページで、[Next (次へ)] を選択します。

  8. [Review (レビュー)] ページで、情報を確認して、スタックで IAM リソースが作成されることを認識し、[スタックの作成] を選択します。