Amazon EKS ワーカーノード IAM ロール - Amazon EKS

Amazon EKS ワーカーノード IAM ロール

Amazon EKS ワーカーノード kubelet デーモンは、ユーザーに代わって AWS API への呼び出しを実行します。ワーカーノードは、IAM インスタンスプロファイルおよび関連ポリシーを通じて、これらの API コールのアクセス許可を受け取ります。ワーカーノードを起動してクラスターに登録する前に、起動するときに使用するワーカーノード用の IAM ロールを作成する必要があります。この要件は Amazon が提供する Amazon EKS 最適化 AMI、または使用する予定の他のワーカーノード AMI で起動したワーカーノードに適用されます。ワーカーノードを使用するには、次の IAM ポリシーを持つ IAM ロールを作成する必要があります。

既存のワーカーノードロールの確認

以下の手順を使用して、アカウントにすでに Amazon EKS ワーカーノードロールがあるかどうかを確認できます。

IAM コンソールで NodeInstanceRole を確認するには

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

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. ロールのリストで NodeInstanceRole を検索します。NodeInstanceRole を含むロールがない場合は、「Amazon EKS ワーカーノード IAM ロールの作成」を参照してロールを作成します。NodeInstanceRole を含むロールがある場合は、ロールを選択して、アタッチされたポリシーを表示します。

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

  5. AmazonEKSWorkerNodePolicyAmazonEKS_CNI_Policy、および AmazonEC2ContainerRegistryReadOnly 管理ポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、Amazon EKS ワーカーノードロールは適切に設定されています。

  6. [信頼関係]、[信頼関係の編集] を選択します。

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

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

Amazon EKS ワーカーノード IAM ロールの作成

AWS マネジメントコンソール の使用開始」または「eksctl の開始方法」トピックの手順に従ってワーカーノードを作成した場合、ワーカーノードのロールはすでにあるため、手動で作成する必要はありません。アカウントに Amazon EKS ワーカーノードロールがまだない場合は、AWS マネジメントコンソール または AWS CloudFormation を使用してそのロールを作成できます。ロールの作成に使用するツールの名前を選択します。

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

IAM コンソールで Amazon EKS ワーカーノードロールを作成するには

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

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

  3. サービスのリストから [EC2] を選択し、[Next: Permissions (次へ: アクセス許可)] を選択します。

  4. [Filter policies (フィルタポリシー)] ボックスに「AmazonEKSWorkerNodePolicy」と入力します。[AmazonEKSWorkerNodePolicy] の左側にあるチェックボックスをオンにします。

  5. [Filter policies (フィルタポリシー)] ボックスに「AmazonEKS_CNI_Policy」と入力します。[AmazonEKS_CNI_Policy] の左側にあるチェックボックスをオンにします。

  6. [Filter policies (フィルタポリシー)] ボックスに「AmazonEC2ContainerRegistryReadOnly」と入力します。[AmazonEC2ContainerRegistryReadOnly] の左側にあるチェックボックスをオンにします。

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

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

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

  10. [ロール名] にロールの一意の名前 (NodeInstanceRole など) を入力します。[ロールの説明] で、現在のテキストを「Amazon EKS - Node Group Role」などの説明テキストに置き換え、[ロールの作成] を選択します。

AWS CloudFormation

AWS CloudFormation を使用して Amazon EKS ワーカーノードロールを作成するには

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

  2. [スタックの作成] を選択し、[With new resources (standard) 新しいリソースを使用 (標準)] を選択します。

  3. [Specify template (テンプレートを指定)] で、[Amazon S3 URL] を選択します。

  4. 以下の URL を [Amazon S3 URL] テキストエリアに貼り付け、[Next (次へ)] を選択します。

    https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-04-21/amazon-eks-nodegroup-role.yaml
  5. [Specify stack details (スタックの詳細の指定)] ページで、[スタックの名前] に「eks-node-group-instance-role」などの名前を入力し、[Next (次へ)] を選択します。

  6. (オプション) [Configure stack options (スタックオプションの設定)] ページで、スタックリソースをタグ付けできます。[次へ] を選択します。

  7. [確認] ページで、[機能] セクションのチェックボックスをオンにして、[スタックの作成] を選択します。

  8. スタックが作成されたら、コンソールで選択し、[出力] を選択します。

  9. 作成された IAM ロールの [NodeInstanceRole] 値を記録します。これは、ノードグループを作成するときに必要です。