ハイブリッドノードの認証情報を準備する - アマゾン EKS

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

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

ハイブリッドノードの認証情報を準備する

Amazon EKS Hybrid Nodes は、AWS SSM ハイブリッドアクティベーションまたは AWS IAM Roles Anywhere によってプロビジョニングされた一時的な IAM 認証情報を使用して、Amazon EKS クラスターで認証します。Amazon EKS Hybrid Nodes CLI (nodeadm) を用いて、AWS SSM ハイブリッドアクティベーションまたは AWS IAM Roles Anywhere を使用する必要があります。AWS SSM ハイブリッドアクティベーションと AWS IAM Roles Anywhere の両方を使用しないでください。認証局 (CA) とオンプレミス環境の証明書を持つ既存の公開鍵基盤 (PKI) がない場合は、AWS SSM ハイブリッドアクティベーションを使用することをお勧めします。既存の PKI と証明書がオンプレミスにある場合は、AWS IAM Roles Anywhere を使用します。

ハイブリッドノードの IAM ロール

ハイブリッドノードを Amazon EKS クラスターに接続する前に、SSM ハイブリッドアクティベーションで使用する AWS IAM ロールまたはハイブリッドノードの認証情報用の AWS IAM Roles Anywhere を作成する必要があります。クラスターの作成後、Amazon EKS アクセスエントリまたは aws-auth ConfigMap エントリでこのロールを使用して、IAM ロールを Kubernetes ロールベースのアクセスコントロール (RBAC) にマッピングします。ハイブリッドノードの IAM ロールと Kubernetes RBAC の関連付けの詳細については、「ハイブリッドノードのクラスターアクセスを準備する」を参照してください。

ハイブリッドノードの IAM ロールには、以下のアクセス許可が必要です。

  • ハイブリッドノードをクラスターに接続するために使用するクラスターに関する情報を収集するための eks:DescribeCluster アクションを、nodeadm が使用するためのアクセス許可。eks:DescribeCluster アクションを有効にしない場合は、nodeadm init の実行時に nodeadm に渡すノード設定で、Kubernetes API エンドポイント、クラスター CA バンドル、およびサービス IPv4 CIDR を渡す必要があります。

  • kubelet が「AmazonEC2ContainerRegistryPullOnly」 ポリシーで定義されているように、 Amazon Elastic Container Registry (Amazon ECR) のコンテナイメージを使用するためのアクセス許可。

  • AWS SSM を使用している場合、AmazonSSMManagedInstanceCore ポリシーで定義されているように、nodeadm init が AWS SSM ハイブリッドアクティベーションを使用するためのアクセス許可。

  • AWS SSM を使用している場合、nodeadm uninstall がインスタンスを登録解除するために ssm:DeregisterManagedInstance アクションと ssm:DescribeInstanceInformation アクションを使用するためのアクセス許可。

  • (オプション) Amazon EKS Pod Identity エージェントが eks-auth:AssumeRoleForPodIdentity アクションを使用してポッドの認証情報を取得するためのアクセス許可。

AWS SSM ハイブリッドアクティベーションのセットアップ

AWS SSM ハイブリッドアクティベーションを設定する前に、ハイブリッドノードの IAM ロールを作成して設定する必要があります。詳細については、「ハイブリッドノードの IAM ロールを作成する」を参照してください。「AWS Systems Manager ユーザーガイド」の「Systems Manager にハイブリッドノードを登録するためのハイブリッドアクティベーションの作成」の指示に従って、ハイブリッドノード用の AWS SSM ハイブリッドアクティベーションを作成します。受け取ったアクティベーションコードと ID は、ホストを Amazon EKS クラスターのハイブリッドノードとして登録する際に、nodeadm で使用されます。ハイブリッドノード用の Amazon EKS クラスターを作成し準備した後は、このステップに戻ることができます。

重要

アクティベーションの作成方法に応じて、Systems Manager はすぐにアクティベーションコードと ID をコンソールまたはコマンドウィンドウに返します。この情報をコピーして、安全な場所に保管します。コンソールから離れたり、コマンドウィンドウを閉じたりすると、この情報は失われる可能性があります。紛失した場合は、新しいアクティベーションを作成する必要があります。

デフォルトでは、AWS SSM ハイブリッドアクティベーションは 24 時間アクティブになります。または、ハイブリッドアクティベーションを作成する際に、2024-08-01T00:00:00 のようなタイムスタンプ形式で --expiration-date を指定することもできます。認証情報プロバイダーとして AWS SSM を使用する場合、ハイブリッドノードのノード名は設定できず、AWS SSM によって自動生成されます。AWS SSM マネージドインスタンスは、Fleet Manager の AWS Systems Manager コンソールで表示および管理できます。追加コストなしで、アカウントにつき AWS リージョンごとに最大 1,000 のスタンダードハイブリッドアクティベーションノードを登録できます。ただし、1,000 を超えるハイブリッドノードを登録するには、アドバンストインスタンス層のアクティブ化が必要です。これには、Amazon EKS Hybrid Nodes の料金に含まれていない、アドバンストインスタンス層の利用料金が発生します。詳細については、「AWS Systems Manager の料金」を参照してください。

ハイブリッドノードの IAM ロールを使用して AWS SSM ハイブリッドアクティベーションを作成する方法については、以下の例を参照してください。ハイブリッドノードの認証情報に AWS SSM ハイブリッドアクティベーションを使用する場合、ハイブリッドノードの名前は mi-012345678abcdefgh 形式になり、AWS SSM によってプロビジョニングされた一時的な認証情報は 1 時間有効です。AWS SSM を認証情報プロバイダーとして使用する場合、ノード名または認証情報の期間を変更することはできません。一時的な認証情報は AWS SSM によって自動的にローテーションされ、ローテーションはノードやアプリケーションのステータスには影響しません。

ハイブリッドノードの IAM ロールの AWS SSM ssm:DeregisterManagedInstance アクセス許可の範囲が、お使いの AWS SSM ハイブリッドアクティベーションに関連付けられたインスタンスの登録解除のみに制限されるよう、EKS クラスターごとに 1 つの AWS SSM ハイブリッドアクティベーションを使用することをおすすめします。このページの例では、EKS クラスター ARN を含むタグが使用され、AWS SSM ハイブリッドアクティベーションを EKS クラスターにマッピングするために使用できます。または、任意のタグと方法を使用して、アクセス許可の境界と要件に基づいて AWS SSM アクセス許可の範囲を絞り込むこともできます。以下のコマンドの REGISTRATION_LIMIT オプションは、AWS SSM ハイブリッドアクティベーションを使用できるマシンの数を制限するために使用される整数です (10 など)。

aws ssm create-activation \ --region AWS_REGION \ --default-instance-name eks-hybrid-nodes \ --description "Activation for EKS hybrid nodes" \ --iam-role AmazonEKSHybridNodesRole \ --tags Key=EKSClusterARN,Value=arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME \ --registration-limit REGISTRATION_LIMIT

AWS SSM ハイブリッドアクティベーションで使用可能な構成設定の詳細については、「ハイブリッドアクティベーションを作成して Systems Manager にノードを登録する」の手順を確認してください。

AWS IAM Roles Anywhere の設定

「IAM Roles Anywhere ユーザーガイド」の「IAM Roles Anywhere の開始方法」の手順に従って、ハイブリッドノードの IAM ロールの一時的な IAM 認証情報に使用するトラストアンカーとプロファイルを設定します。プロファイルを作成する際は、ロールを追加せずにプロファイルを作成できます。プロファイルを作成してから、ハイブリッドノードの IAM ロールを作成するステップに戻り、作成したプロファイルにロールを追加することもできます。または、このページの後半にある AWS CloudFormation ステップを使用して、ハイブリッドノードの IAM Roles Anywhere セットアップを完了することもできます。

ハイブリッドノードの IAM ロールをプロファイルに追加するときは、AWS IAM Roles Anywhere コンソールの [プロファイルの編集] ページの下部にある [カスタムロール] セッション名パネルで [カスタムロールセッション名を受け入れる] を選択します。これは CreateProfile API の acceptRoleSessionName フィールドに対応します。これにより、ブートストラッププロセス中に nodeadm に渡す設定内で、ハイブリッドノードのカスタムノード名を指定できます。nodeadm init プロセス中にカスタムノード名を渡す必要があります。プロファイルの作成後、カスタムロールセッション名を受け入れるようにプロファイルを更新できます。

AWS IAM Roles Anywhere では、AWS IAM Roles Anywhere プロファイルの durationSeconds フィールドを通して認証情報の有効期間を設定できます。デフォルトの期間は 1 時間で、最大は 12 時間です。ハイブリッドノードの IAM ロールでの MaxSessionDuration 設定は、AWS IAM Roles Anywhere プロファイルの durationSeconds 設定よりも大きくする必要があります。MaxSessionDuration の詳細については、「UpdateRole API documentation」を参照してください。

認証機関 (CA) から生成するマシンごとの証明書とキーは、ファイル名を証明書は server.pem、キーは server.key として、各ハイブリッドノードの /etc/iam/pki ディレクトリに配置する必要があります。

ハイブリッドノードの IAM ロールを作成する

このセクションのステップを実行するには、AWS コンソールまたは AWS CLI を使用する IAM プリンシパルに以下のアクセス許可が必要です。

  • iam:CreatePolicy

  • iam:CreateRole

  • iam:AttachRolePolicy

  • AWS IAM Roles Anywhere を使用している場合

    • rolesanywhere:CreateTrustAnchor

    • rolesanywhere:CreateProfile

    • iam:PassRole

AWS CloudFormation

まだである場合は、AWS CLI をインストールして設定します。「AWS CLI の最新バージョンのインストールまたは更新」を参照してください。

AWS SSM ハイブリッドアクティベーションのステップ

CloudFormation スタックは、上記のアクセス許可を持つハイブリッドノードの IAM ロールを作成します。CloudFormation テンプレートは、AWS SSM ハイブリッドアクティベーションを作成しません。

  1. ハイブリッドノード用の AWS SSM CloudFormation テンプレートをダウンロードします。

    curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ssm-cfn.yaml'
  2. 以下のオプションを使用して cfn-ssm-parameters.json を作成します。

    1. ROLE_NAME をハイブリッドノードの IAM ロールの名前に置き換えます。デフォルトでは、名前を指定しない場合、CloudFormation テンプレートは作成するロールの名前として AmazonEKSHybridNodesRole を使用します。

    2. TAG_KEY を、AWS SSM ハイブリッドアクティベーションの作成時に使用した AWS SSM リソースのタグキーに置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。CloudFormation テンプレートでは、TAG_KEY はデフォルトで EKSClusterARN になります。

    3. TAG_VALUE を、AWS SSM ハイブリッドアクティベーションの作成時に使用した SSM AWS リソースタグ値に置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。EKSClusterARN のデフォルトの TAG_KEY を使用している場合は、EKS クラスター ARN を TAG_VALUE として渡します。EKS クラスター ARN の形式は arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME になります。

      { "Parameters": { "RoleName": "ROLE_NAME", "SSMDeregisterConditionTagKey": "TAG_KEY", "SSMDeregisterConditionTagValue": "TAG_VALUE" } }
  3. CloudFormation スタックをデプロイします。STACK_NAME は、その CloudFormation スタックに付けた任意の名前に置き換えてください。

    aws cloudformation deploy \ --stack-name STACK_NAME \ --template-file hybrid-ssm-cfn.yaml \ --parameter-overrides file://cfn-ssm-parameters.json \ --capabilities CAPABILITY_NAMED_IAM

AWS IAM Roles Anywhere のステップ

CloudFormation スタックは、設定した認証機関 (CA) を使用して AWS IAM Roles Anywhere のトラストアンカーを作成し、AWS IAM Roles Anywhere プロファイルを作成し、前述のアクセス許可を使用して、ハイブリッドノードの IAM ロールを作成します。

  1. 認証機関 (CA) のセットアップ

    1. AWS Private CA リソースを使用するには、AWS Private Certificate Authority コンソールを開きます。「AWS Private CA ユーザーガイド」の指示に従ってください。

    2. 外部 CA を使用するには、CA が提供する手順に従ってください。証明書本文は後のステップで提出します。

    3. パブリック CA から発行された証明書をトラストアンカーとして使用することはできません。

  2. ハイブリッドノード用の AWS IAM Roles Anywhere CloudFormation テンプレートをダウンロードします

    curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ira-cfn.yaml'
  3. 以下のオプションを使用して cfn-iamra-parameters.json を作成します。

    1. ROLE_NAME をハイブリッドノードの IAM ロールの名前に置き換えます。デフォルトでは、名前を指定しない場合、CloudFormation テンプレートは作成するロールの名前として AmazonEKSHybridNodesRole を使用します。

    2. CERT_ATTRIBUTE を、ホストを一意に識別するマシンごとの証明書属性に置き換えます。使用する証明書属性は、ハイブリッドノードをクラスターに接続するときに nodeadm 設定に使用する nodeName と一致する必要があります。詳細については、「ハイブリッドノード nodeadm 参照」を参照してください。デフォルトでは、CloudFormation テンプレートは ${aws:PrincipalTag/x509Subject/CN}CERT_ATTRIBUTE として使用します。これは、マシンごとの証明書の CN フィールドに対応します。または、$(aws:PrincipalTag/x509SAN/Name/CN}CERT_ATTRIBUTE として渡すこともできます。

    3. CA_CERT_BODY を、CA の証明書本文から改行を取り除いたものに置き換えます。CA_CERT_BODY は、プライバシー強化メール (PEM) 形式である必要がありす。PEM 形式の CA 証明書がある場合は、CA 証明書本文を cfn-iamra-parameters.json ファイルに配置する前に、改行と BEGIN CERTIFICATE 行と END CERTIFICATE 行を削除します。

      { "Parameters": { "RoleName": "ROLE_NAME", "CertAttributeTrustPolicy": "CERT_ATTRIBUTE", "CABundleCert": "CA_CERT_BODY" } }
  4. CloudFormation テンプレートをデプロイする。STACK_NAME は、その CloudFormation スタックに付けた任意の名前に置き換えてください。

    aws cloudformation deploy \ --stack-name STACK_NAME \ --template-file hybrid-ira-cfn.yaml \ --parameter-overrides file://cfn-iamra-parameters.json --capabilities CAPABILITY_NAMED_IAM

AWS CLI

まだである場合は、AWS CLI をインストールして設定します。「AWS CLI の最新バージョンのインストールまたは更新」を参照してください。

EKS DescribeCluster ポリシーを作成する

  1. 次の内容で、eks-describe-cluster-policy.json という名前のファイルを作成します。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "*" } ] }
  2. 次のコマンドを使用してポリシーを作成します。

    aws iam create-policy \ --policy-name EKSDescribeClusterPolicy \ --policy-document file://eks-describe-cluster-policy.json

AWS SSM ハイブリッドアクティベーションのステップ

  1. 次の内容で、eks-hybrid-ssm-policy.json という名前のファイルを作成します。このポリシーは、ssm:DescribeInstanceInformationssm:DeregisterManagedInstance の 2 つのアクションのアクセス許可を付与します。このポリシーは、ssm:DeregisterManagedInstance へのアクセス許可の範囲を、信頼ポリシーで指定したリソースタグに基づき、AWS SSM ハイブリッドアクティベーションに関連付けられた AWS SSM マネージドインスタンスに制限します。

    1. AWS_REGION を、AWS SSM ハイブリッドアクティベーションの AWS リージョンに置き換えます。

    2. AWS_ACCOUNT_ID を AWS アカウント ID に置き換えます。

    3. TAG_KEY を、AWS SSM ハイブリッドアクティベーションの作成時に使用した AWS SSM リソースのタグキーに置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。CloudFormation テンプレートでは、TAG_KEY はデフォルトで EKSClusterARN になります。

    4. TAG_VALUE を、AWS SSM ハイブリッドアクティベーションの作成時に使用した SSM AWS リソースタグ値に置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。EKSClusterARN のデフォルトの TAG_KEY を使用している場合は、EKS クラスター ARN を TAG_VALUE として渡します。EKS クラスター ARN の形式は arn:aws:eks:AWS_REGION:AWS_ACCOUNT_ID:cluster/CLUSTER_NAME になります。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:DescribeInstanceInformation", "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:DeregisterManagedInstance", "Resource": "arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:managed-instance/*", "Condition": { "StringEquals": { "ssm:resourceTag/TAG_KEY": "TAG_VALUE" } } } ] }
  2. 次のコマンドを使用してポリシーを作成します。

    aws iam create-policy \ --policy-name EKSHybridSSMPolicy \ --policy-document file://eks-hybrid-ssm-policy.json
  3. eks-hybrid-ssm-trust.json という名前のファイルを作成します。AWS_REGION を AWS SSM ハイブリッドアクティベーションの AWS リージョンに、AWS_ACCOUNT_ID をお使いの AWS アカウント ID に置き換えます。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:*" } } } ] }
  4. 次のコマンドを使用してロールを作成します。

    aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-ssm-trust.json
  5. 前のステップで作成した EKSDescribeClusterPolicyEKSHybridSSMPolicy をアタッチします。AWS_ACCOUNT_ID を AWS アカウント ID に置き換えます。

    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSDescribeClusterPolicy
    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSHybridSSMPolicy
  6. AmazonEC2ContainerRegistryPullOnlyAmazonSSMManagedInstanceCore AWS マネージドポリシーをアタッチします。

    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

AWS IAM Roles Anywhere のステップ

AWS IAM Roles Anywhere を使用するには、ハイブリッドノードの IAM ロールを作成する前に、AWS IAM Roles Anywhere のトラストアンカーを設定する必要があります。手順については、「AWS IAM Roles Anywhere の設定」を参照してください。

  1. eks-hybrid-iamra-trust.json という名前のファイルを作成します。TRUST_ANCHOR ARN を、AWS IAM Roles Anywhere の設定 のステップで作成したトラストアンカーの ARN に置き換えます。この信頼ポリシーの条件は、AWS IAM Roles Anywhere がハイブリッドノードの IAM ロールを引き受けて一時的な IAM 認証情報を交換する機能を、ロールセッション名がハイブリッドノードにインストールされている x509 証明書の CN と一致する場合のみに制限します。別の方法として、他の証明書属性を使用してノードを一意に識別することもできます。信頼ポリシーで使用する証明書属性は、nodeadm 設定で設定した nodeName に対応している必要があります。詳細については、「ハイブリッドノード nodeadm 参照」を参照してください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:TagSession", "sts:SetSourceIdentity" ], "Condition": { "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } }, { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}" }, "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } } ] }
  2. 次のコマンドを使用してロールを作成します。

    aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-iamra-trust.json
  3. 前のステップで作成した EKSDescribeClusterPolicy をアタッチします。AWS_ACCOUNT_ID を AWS アカウント ID に置き換えます。

    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSDescribeClusterPolicy
  4. AmazonEC2ContainerRegistryPullOnly AWS マネージドポリシーをアタッチします。

    aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly

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

EKS DescribeCluster ポリシーを作成する

  1. Amazon IAM コンソールを開きます。

  2. 左のナビゲーションペインの [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] を選択します。

  4. [アクセス許可を指定] ページの [サービスの選択] パネルで、[EKS] を選択します。

    1. DescribeCluster でアクションをフィルタリングし、DescribeCluster の Read アクションを選択します。

    2. [Next] を選択します。

  5. [確認と作成] ページで以下を行います。

    1. ポリシーのポリシー名を、たとえば EKSDescribeClusterPolicy のように入力します。

    2. [Create policy] を選択します。

AWS SSM ハイブリッドアクティベーションのステップ

  1. Amazon IAM コンソールを開きます。

  2. 左のナビゲーションペインの [ポリシー] を選択します。

  3. [ポリシー] ページで、[ポリシーの作成] を選択します。

  4. [アクセス許可を指定] ページの [ポリシーエディタ] の右上のナビゲーションで、[JSON] を選択します。以下のスニペットを貼り付けます。AWS_REGION を AWS SSM ハイブリッドアクティベーションの AWS リージョンに置き換え、AWS_ACCOUNT_ID をお使いの AWS アカウント ID に置き換えます。TAG_KEYTAG_VALUE を、AWS SSM ハイブリッドアクティベーションの作成時に使用した AWS SSM リソースのタグキーに置き換えます。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:DescribeInstanceInformation", "Resource": "*" }, { "Effect": "Allow", "Action": "ssm:DeregisterManagedInstance", "Resource": "arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:managed-instance/*", "Condition": { "StringEquals": { "ssm:resourceTag/TAG_KEY": "TAG_VALUE" } } } ] }
    1. [Next] を選択します。

  5. [確認と作成] ページで以下を行います。

    1. ポリシーのポリシー名を、たとえば EKSHybridSSMPolicy のように入力します。

    2. [ポリシーの作成] を選択します。

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

  7. [ロール] ページで、[ロールの作成] を選択します。

  8. [信頼されたエンティティを選択] ページで、以下の操作を実行します。

    1. [信頼されたエンティティのタイプ] セクションで [カスタム信頼ポリシー] を選択します。以下をカスタム信頼ポリシーエディタに貼り付けます。AWS_REGION を AWS SSM ハイブリッドアクティベーションの AWS リージョンに、AWS_ACCOUNT_ID をお使いの AWS アカウント ID に置き換えます。

      { "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"AWS_ACCOUNT_ID" }, "ArnEquals":{ "aws:SourceArn":"arn:aws:ssm:AWS_REGION:AWS_ACCOUNT_ID:*" } } } ] }
    2. [次へ] を選択します。

  9. [アクセス許可を追加] ページで、カスタムポリシーをアタッチするか、以下の操作を行います。

    1. [フィルターポリシー] ボックスに、EKSDescribeClusterPolicy または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。

    2. [フィルターポリシー] ボックスに、EKSHybridSSMPolicy または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。

    3. [フィルタポリシー] ボックスに AmazonEC2ContainerRegistryPullOnly と入力します。検索結果の AmazonEC2ContainerRegistryPullOnly の左にあるチェックボックスを選択します。

    4. [フィルタポリシー] ボックスに AmazonSSMManagedInstanceCore と入力します。検索結果の AmazonSSMManagedInstanceCore の左にあるチェックボックスを選択します。

    5. [Next] を選択します。

  10. [名前を付けて、レビューし、作成する] ページで、以下の操作を実行します。

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

    2. [Description] (説明) では、現在のテキストを「Amazon EKS - Hybrid Nodes role」などの説明文に置き換えます。

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

AWS IAM Roles Anywhere のステップ

AWS IAM Roles Anywhere を使用するには、ハイブリッドノードの IAM ロールを作成する前に、AWS IAM Roles Anywhere のトラストアンカーを設定する必要があります。手順については、「AWS IAM Roles Anywhere の設定」を参照してください。

  1. Amazon IAM コンソールを開きます。

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

  3. [ロール] ページで、[ロールの作成] を選択します。

  4. [信頼されたエンティティを選択] ページで、以下の操作を実行します。

    1. [信頼されたエンティティのタイプ] セクションで [カスタム信頼ポリシー] を選択します。以下をカスタム信頼ポリシーエディタに貼り付けます。TRUST_ANCHOR ARN を、AWS IAM Roles Anywhere の設定 のステップで作成したトラストアンカーの ARN に置き換えます。この信頼ポリシーの条件は、AWS IAM Roles Anywhere がハイブリッドノードの IAM ロールを引き受けて一時的な IAM 認証情報を交換する機能を、ロールセッション名がハイブリッドノードにインストールされている x509 証明書の CN と一致する場合のみに制限します。別の方法として、他の証明書属性を使用してノードを一意に識別することもできます。信頼ポリシーで使用する証明書属性は、nodeadm 設定で設定した nodeName に対応している必要があります。詳細については、「ハイブリッドノード nodeadm 参照」を参照してください。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": [ "sts:TagSession", "sts:SetSourceIdentity" ], "Condition": { "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } }, { "Effect": "Allow", "Principal": { "Service": "rolesanywhere.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}" }, "ArnEquals": { "aws:SourceArn": "TRUST_ANCHOR_ARN" } } } ] }
    2. [次へ] を選択します。

  5. [アクセス許可を追加] ページで、カスタムポリシーをアタッチするか、以下の操作を行います。

    1. [フィルターポリシー] ボックスに、EKSDescribeClusterPolicy または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。

    2. [フィルタポリシー] ボックスに AmazonEC2ContainerRegistryPullOnly と入力します。検索結果の AmazonEC2ContainerRegistryPullOnly の左にあるチェックボックスを選択します。

    3. [Next] を選択します。

  6. [名前を付けて、レビューし、作成する] ページで、以下の操作を実行します。

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

    2. [Description] (説明) では、現在のテキストを「Amazon EKS - Hybrid Nodes role」などの説明文に置き換えます。

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