

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

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# Amazon EKS コネクタの IAM ロール
<a name="connector-iam-role"></a>

Kubernetes クラスターを接続して AWS マネジメントコンソール に表示することができます。Kubernetes クラスターに接続するには、IAM ロールを作成します。

## 既存の EKS Connector ロールの確認
<a name="check-connector-role"></a>

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

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

1. 左のナビゲーションペインで、**[ロール]** を選択してください。

1. ロールのリストで `AmazonEKSConnectorAgentRole` を検索します。`AmazonEKSConnectorAgentRole` が含まれているロールが存在しない場合は、[Amazon EKS コネクタエージェントロールの作成](#create-connector-role) を参照してロールを作成します。`AmazonEKSConnectorAgentRole` が含まれているロールが存在する場合はこのロールを選択してアタッチされているポリシーを表示します。

1. **[許可]** を選択してください。

1. **AmazonEKSConnectorAgentPolicy** 管理ポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、Amazon EKS Connector ロールは適切に設定されています。

1. **[信頼関係]** を選択し、**[信頼ポリシーの編集]** を選択してください。

1. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、**[キャンセル]** を選択してください。信頼関係が一致しない場合、ポリシーを **[信頼ポリシーの編集]** ウィンドウにコピーし、**[ポリシーの更新]** を選択します。

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

## Amazon EKS コネクタエージェントロールの作成
<a name="create-connector-role"></a>

コネクタエージェントロールを作成するには、AWS マネジメントコンソール または AWS CloudFormation を使用できます。

 AWS CLI  

1. IAM ロールに使用する次の JSON が含まれる `eks-connector-agent-trust-policy.json` という名前のファイルを作成します。

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

1. 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": "*"
           }
       ]
   }
   ```

1. 前のリストアイテムで作成した信頼ポリシーとポリシーを使用して、Amazon EKS Connector エージェントロールを作成します。

   ```
   aws iam create-role \
        --role-name AmazonEKSConnectorAgentRole \
        --assume-role-policy-document file://eks-connector-agent-trust-policy.json
   ```

1. Amazon EKS Connector エージェントのロールにポリシーを添付します。

   ```
   aws iam put-role-policy \
        --role-name AmazonEKSConnectorAgentRole \
        --policy-name AmazonEKSConnectorAgentPolicy \
        --policy-document file://eks-connector-agent-policy.json
   ```

 AWS CloudFormation  

1. 以下の AWS CloudFormation テンプレートを、テキストファイルとしてローカルシステムに保存します。
**注記**  
このテンプレートでは、ここで作成されなければ `registerCluster` API が呼び出されたときに作成される、サービスにリンクされたロールも作成されます。詳細については、「[ロールを使用して Kubernetes クラスターを Amazon EKS に接続する](using-service-linked-roles-eks-connector.md)」を参照してください。

   ```
   ---
   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
   ```

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

1. 新しいリソースを使用して **[スタックを作成]** を選択します (標準)。

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

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

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

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

1. [**Review (レビュー)**] ページの情報から、スタックにより IAM リソースが作成されることを確認し、[**Create stack (スタックの作成)**] を選択します。