Amazon EKS コネクタの IAM ロール
Kubernetes クラスターを接続して AWS Management Console で表示することができます。Kubernetes クラスターに接続するには、IAM ロールを作成します。
既存の EKS Connector ロールの確認
以下の手順を使用して、アカウントに既に Amazon EKS コネクタロールがあるかどうかを確認できます。
-
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左のナビゲーションペインで、[ロール] を選択します。
-
ロールのリストで
AmazonEKSConnectorAgentRole
を検索します。AmazonEKSConnectorAgentRole
が含まれているロールが存在しない場合は、Amazon EKS コネクタエージェントロールの作成 を参照してロールを作成します。AmazonEKSConnectorAgentRole
が含まれているロールが存在する場合は、このロールを選択してアタッチされているポリシーを表示します。 -
[許可] を選択します。
-
AmazonEKSConnectorAgentPolicy 管理ポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、Amazon EKS Connector ロールは適切に設定されています。
-
[信頼関係] を選択し、[信頼ポリシーの編集] を選択します。
-
信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[キャンセル] を選択します。信頼関係が一致しない場合、ポリシーを [信頼ポリシーの編集] ウィンドウにコピーし、[ポリシーの更新] を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Amazon EKS コネクタエージェントロールの作成
コネクタエージェントロールを作成するには、AWS Management Console または AWS CloudFormation を使用できます。
- AWS CLI
-
-
IAM ロールに使用する次の JSON が含まれる
eks-connector-agent-trust-policy.json
という名前のファイルを作成します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
IAM ロールに使用する次の JSON が含まれる
eks-connector-agent-policy.json
という名前のファイルを作成します。{ "Version": "2012-10-17", "Statement": [ { "Sid": "SsmControlChannel", "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel" ], "Resource": "arn:aws:eks:*:*:cluster/*" }, { "Sid": "ssmDataplaneOperations", "Effect": "Allow", "Action": [ "ssmmessages:CreateDataChannel", "ssmmessages:OpenDataChannel", "ssmmessages:OpenControlChannel" ], "Resource": "*" } ] }
-
前のリストアイテムで作成した信頼ポリシーとポリシーを使用して、Amazon EKS Connector エージェントロールを作成します。
aws iam create-role \ --role-name AmazonEKSConnectorAgentRole \ --assume-role-policy-document file://eks-connector-agent-trust-policy.json
-
Amazon EKS Connector エージェントのロールにポリシーを添付します。
aws iam put-role-policy \ --role-name AmazonEKSConnectorAgentRole \ --policy-name AmazonEKSConnectorAgentPolicy \ --policy-document file://eks-connector-agent-policy.json
-
- AWS CloudFormation
-
-
以下の AWS CloudFormation テンプレートを、テキストファイルとしてローカルシステムに保存します。
注記
このテンプレートでは、ここで作成されなければ
registerCluster
API が呼び出されたときに作成される、サービスにリンクされたロールも作成されます。詳細については、「ロールを使用して Kubernetes クラスターを Amazon EKS に接続する」を参照してください。--- AWSTemplateFormatVersion: '2010-09-09' Description: 'Provisions necessary resources needed to register clusters in EKS' Parameters: {} Resources: EKSConnectorSLR: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: eks-connector.amazonaws.com EKSConnectorAgentRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: [ 'sts:AssumeRole' ] Principal: Service: 'ssm.amazonaws.com' EKSConnectorAgentPolicy: Type: AWS::IAM::Policy Properties: PolicyName: EKSConnectorAgentPolicy Roles: - {Ref: 'EKSConnectorAgentRole'} PolicyDocument: Version: '2012-10-17' Statement: - Effect: 'Allow' Action: [ 'ssmmessages:CreateControlChannel' ] Resource: - Fn::Sub: 'arn:${AWS::Partition}:eks:*:*:cluster/*' - Effect: 'Allow' Action: [ 'ssmmessages:CreateDataChannel', 'ssmmessages:OpenDataChannel', 'ssmmessages:OpenControlChannel' ] Resource: "*" Outputs: EKSConnectorAgentRoleArn: Description: The agent role that EKS connector uses to communicate with AWS services. Value: !GetAtt EKSConnectorAgentRole.Arn
-
AWS CloudFormation コンソール
を開きます。 -
新しいリソースを使用して [スタックを作成] を選択します (標準)。
-
[テンプレートの指定] で、[テンプレートファイルのアップロード] を選択し、[ファイルの選択] を選択します。
-
作成したファイルを選択し、[Next (次へ)] を選択します。
-
[スタックの名前] に
eksConnectorAgentRole
などのロール名を入力し、[次へ] を選択します。 -
[スタックオプションの設定] ページで、[Next (次へ)] を選択します。
-
[Review (レビュー)] ページの情報から、スタックにより IAM リソースが作成されることを確認し、[Create stack (スタックの作成)] を選択します。
-