このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある 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 の料金
ハイブリッドノードの 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 ハイブリッドアクティベーションを作成しません。
-
ハイブリッドノード用の AWS SSM CloudFormation テンプレートをダウンロードします。
curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ssm-cfn.yaml'
-
以下のオプションを使用して
cfn-ssm-parameters.json
を作成します。-
ROLE_NAME
をハイブリッドノードの IAM ロールの名前に置き換えます。デフォルトでは、名前を指定しない場合、CloudFormation テンプレートは作成するロールの名前としてAmazonEKSHybridNodesRole
を使用します。 -
TAG_KEY
を、AWS SSM ハイブリッドアクティベーションの作成時に使用した AWS SSM リソースのタグキーに置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance
の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。CloudFormation テンプレートでは、TAG_KEY
はデフォルトでEKSClusterARN
になります。 -
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" } }
-
-
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 ロールを作成します。
-
認証機関 (CA) のセットアップ
-
AWS Private CA リソースを使用するには、AWS Private Certificate Authority コンソール
を開きます。「AWS Private CA ユーザーガイド」の指示に従ってください。 -
外部 CA を使用するには、CA が提供する手順に従ってください。証明書本文は後のステップで提出します。
-
パブリック CA から発行された証明書をトラストアンカーとして使用することはできません。
-
-
ハイブリッドノード用の AWS IAM Roles Anywhere CloudFormation テンプレートをダウンロードします
curl -OL 'https://raw.githubusercontent.com/aws/eks-hybrid/refs/heads/main/example/hybrid-ira-cfn.yaml'
-
以下のオプションを使用して
cfn-iamra-parameters.json
を作成します。-
ROLE_NAME
をハイブリッドノードの IAM ロールの名前に置き換えます。デフォルトでは、名前を指定しない場合、CloudFormation テンプレートは作成するロールの名前としてAmazonEKSHybridNodesRole
を使用します。 -
CERT_ATTRIBUTE
を、ホストを一意に識別するマシンごとの証明書属性に置き換えます。使用する証明書属性は、ハイブリッドノードをクラスターに接続するときにnodeadm
設定に使用する nodeName と一致する必要があります。詳細については、「ハイブリッドノード nodeadm 参照」を参照してください。デフォルトでは、CloudFormation テンプレートは${aws:PrincipalTag/x509Subject/CN}
をCERT_ATTRIBUTE
として使用します。これは、マシンごとの証明書の CN フィールドに対応します。または、$(aws:PrincipalTag/x509SAN/Name/CN}
をCERT_ATTRIBUTE
として渡すこともできます。 -
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" } }
-
-
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 ポリシーを作成する
-
次の内容で、
eks-describe-cluster-policy.json
という名前のファイルを作成します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "eks:DescribeCluster" ], "Resource": "*" } ] }
-
次のコマンドを使用してポリシーを作成します。
aws iam create-policy \ --policy-name EKSDescribeClusterPolicy \ --policy-document file://eks-describe-cluster-policy.json
AWS SSM ハイブリッドアクティベーションのステップ
-
次の内容で、
eks-hybrid-ssm-policy.json
という名前のファイルを作成します。このポリシーは、ssm:DescribeInstanceInformation
とssm:DeregisterManagedInstance
の 2 つのアクションのアクセス許可を付与します。このポリシーは、ssm:DeregisterManagedInstance
へのアクセス許可の範囲を、信頼ポリシーで指定したリソースタグに基づき、AWS SSM ハイブリッドアクティベーションに関連付けられた AWS SSM マネージドインスタンスに制限します。-
AWS_REGION
を、AWS SSM ハイブリッドアクティベーションの AWS リージョンに置き換えます。 -
AWS_ACCOUNT_ID
を AWS アカウント ID に置き換えます。 -
TAG_KEY
を、AWS SSM ハイブリッドアクティベーションの作成時に使用した AWS SSM リソースのタグキーに置き換えます。タグキーとタグ値の組み合わせは、ssm:DeregisterManagedInstance
の条件で使用されます。これにより、ハイブリッドノードの IAM ロールは、ユーザーの AWS SSM ハイブリッドアクティベーションに関連付けられている AWS SSM マネージドインスタンスの登録解除のみ許可されるようになります。CloudFormation テンプレートでは、TAG_KEY
はデフォルトでEKSClusterARN
になります。 -
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" } } } ] }
-
-
次のコマンドを使用してポリシーを作成します。
aws iam create-policy \ --policy-name EKSHybridSSMPolicy \ --policy-document file://eks-hybrid-ssm-policy.json
-
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:*" } } } ] }
-
次のコマンドを使用してロールを作成します。
aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-ssm-trust.json
-
前のステップで作成した
EKSDescribeClusterPolicy
とEKSHybridSSMPolicy
をアタッチします。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
-
AmazonEC2ContainerRegistryPullOnly
とAmazonSSMManagedInstanceCore
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 の設定」を参照してください。
-
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" } } } ] }
-
次のコマンドを使用してロールを作成します。
aws iam create-role \ --role-name AmazonEKSHybridNodesRole \ --assume-role-policy-document file://eks-hybrid-iamra-trust.json
-
前のステップで作成した
EKSDescribeClusterPolicy
をアタッチします。AWS_ACCOUNT_ID
を AWS アカウント ID に置き換えます。aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::AWS_ACCOUNT_ID:policy/EKSDescribeClusterPolicy
-
AmazonEC2ContainerRegistryPullOnly
AWS マネージドポリシーをアタッチします。aws iam attach-role-policy \ --role-name AmazonEKSHybridNodesRole \ --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPullOnly
AWS マネジメントコンソール
EKS DescribeCluster ポリシーを作成する
-
Amazon IAM コンソール
を開きます。 -
左のナビゲーションペインの [ポリシー] を選択します。
-
[ポリシー] ページで、[ポリシーの作成] を選択します。
-
[アクセス許可を指定] ページの [サービスの選択] パネルで、[EKS] を選択します。
-
DescribeCluster でアクションをフィルタリングし、DescribeCluster の Read アクションを選択します。
-
[Next] を選択します。
-
-
[確認と作成] ページで以下を行います。
-
ポリシーのポリシー名を、たとえば
EKSDescribeClusterPolicy
のように入力します。 -
[Create policy] を選択します。
-
AWS SSM ハイブリッドアクティベーションのステップ
-
Amazon IAM コンソール
を開きます。 -
左のナビゲーションペインの [ポリシー] を選択します。
-
[ポリシー] ページで、[ポリシーの作成] を選択します。
-
[アクセス許可を指定] ページの [ポリシーエディタ] の右上のナビゲーションで、[JSON] を選択します。以下のスニペットを貼り付けます。
AWS_REGION
を AWS SSM ハイブリッドアクティベーションの AWS リージョンに置き換え、AWS_ACCOUNT_ID
をお使いの AWS アカウント ID に置き換えます。TAG_KEY
とTAG_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" } } } ] }
-
[Next] を選択します。
-
-
[確認と作成] ページで以下を行います。
-
ポリシーのポリシー名を、たとえば
EKSHybridSSMPolicy
のように入力します。 -
[ポリシーの作成] を選択します。
-
-
左のナビゲーションペインで、[ロール] を選択します。
-
[ロール] ページで、[ロールの作成] を選択します。
-
[信頼されたエンティティを選択] ページで、以下の操作を実行します。
-
[信頼されたエンティティのタイプ] セクションで [カスタム信頼ポリシー] を選択します。以下をカスタム信頼ポリシーエディタに貼り付けます。
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:*" } } } ] }
-
[次へ] を選択します。
-
-
[アクセス許可を追加] ページで、カスタムポリシーをアタッチするか、以下の操作を行います。
-
[フィルターポリシー] ボックスに、
EKSDescribeClusterPolicy
または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。 -
[フィルターポリシー] ボックスに、
EKSHybridSSMPolicy
または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。 -
[フィルタポリシー] ボックスに
AmazonEC2ContainerRegistryPullOnly
と入力します。検索結果のAmazonEC2ContainerRegistryPullOnly
の左にあるチェックボックスを選択します。 -
[フィルタポリシー] ボックスに
AmazonSSMManagedInstanceCore
と入力します。検索結果のAmazonSSMManagedInstanceCore
の左にあるチェックボックスを選択します。 -
[Next] を選択します。
-
-
[名前を付けて、レビューし、作成する] ページで、以下の操作を実行します。
-
[ロール名] に、
AmazonEKSHybridNodesRole
などのロールの一意の名前を入力します。 -
[Description] (説明) では、現在のテキストを「
Amazon EKS - Hybrid Nodes role
」などの説明文に置き換えます。 -
[ロールの作成] を選択します。
-
AWS IAM Roles Anywhere のステップ
AWS IAM Roles Anywhere を使用するには、ハイブリッドノードの IAM ロールを作成する前に、AWS IAM Roles Anywhere のトラストアンカーを設定する必要があります。手順については、「AWS IAM Roles Anywhere の設定」を参照してください。
-
Amazon IAM コンソール
を開きます。 -
左のナビゲーションペインで、[ロール] を選択します。
-
[ロール] ページで、[ロールの作成] を選択します。
-
[信頼されたエンティティを選択] ページで、以下の操作を実行します。
-
[信頼されたエンティティのタイプ] セクションで [カスタム信頼ポリシー] を選択します。以下をカスタム信頼ポリシーエディタに貼り付けます。
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" } } } ] }
-
[次へ] を選択します。
-
-
[アクセス許可を追加] ページで、カスタムポリシーをアタッチするか、以下の操作を行います。
-
[フィルターポリシー] ボックスに、
EKSDescribeClusterPolicy
または上記で作成したポリシーの名前を入力します。検索結果でポリシー名の左にあるチェックボックスを選択します。 -
[フィルタポリシー] ボックスに
AmazonEC2ContainerRegistryPullOnly
と入力します。検索結果のAmazonEC2ContainerRegistryPullOnly
の左にあるチェックボックスを選択します。 -
[Next] を選択します。
-
-
[名前を付けて、レビューし、作成する] ページで、以下の操作を実行します。
-
[ロール名] に、
AmazonEKSHybridNodesRole
などのロールの一意の名前を入力します。 -
[Description] (説明) では、現在のテキストを「
Amazon EKS - Hybrid Nodes role
」などの説明文に置き換えます。 -
[ロールの作成] を選択します。
-