

# ロードバランサー用の Amazon ECS インフラストラクチャの IAM ロール
<a name="AmazonECSInfrastructureRolePolicyForLoadBalancers"></a>

ロードバランサー用 Amazon ECS インフラストラクチャの IAM ロールは、Amazon ECS がユーザーに代わって、クラスター内のロードバランサーリソースを管理できるようにするためのものであり、次の場合に使用します。
+ Amazon ECS でブルー/グリーンデプロイを使用したい場合。インフラストラクチャロールにより、Amazon ECS でデプロイのロードバランサーリソースを管理できるようになります。
+ デプロイ操作中に、Amazon ECS でターゲットグループやリスナーなどのロードバランサーリソースを作成、変更、または削除する必要がある場合。

Amazon ECS がこの役割を引き受け、ユーザーに代わってアクションを実行すると、イベントが AWS CloudTrail に表示されます。Amazon ECS がこのロールを使用してブルー/グリーンデプロイのロードバランサーリソースを管理する場合、CloudTrail ログ `roleSessionName` は、`ECSNetworkingWithELB` または `ecs-service-scheduler` になります。この名前を使用して、**[ユーザー名]**でフィルタリングすることで CloudTrail コンソールでイベントを検索できます。

Amazon ECS は、ロードバランサー管理に必要となるアクセス許可を含む管理ポリシーを提供します。詳細については、「*AWS マネージドポリシーリファレンスガイド*」の「[AmazonECSInfrastructureRolePolicyForLoadBalancers](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECSInfrastructureRolePolicyForLoadBalancers.html)」を参照してください。

## ロードバランサー用の Amazon ECS インフラストラクチャロールの作成
<a name="create-infrastructure-role-loadbalancers"></a>

すべての *[ユーザー入力]* は、お客様の情報で置き換えてください。

1. IAM ロールに使用する信頼ポリシーが含まれている `ecs-infrastructure-trust-policy.json` という名前のファイルを作成します。ファイルには次の内容が含まれます。

------
#### [ JSON ]

****  

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

------

1. 前のステップで作成した信頼ポリシーを使用して、`ecsInfrastructureRoleForLoadBalancers` という名前のロールを作成するには、次の AWS CLI コマンドを使用します。

   ```
   aws iam create-role \
         --role-name ecsInfrastructureRoleForLoadBalancers \
         --assume-role-policy-document file://ecs-infrastructure-trust-policy.json
   ```

1. AWS 管理 `AmazonECSInfrastructureRolePolicyForLoadBalancers` ポリシー `ecsInfrastructureRoleForLoadBalancers` をロールにアタッチします。

   ```
   aws iam attach-role-policy \
         --role-name ecsInfrastructureRoleForLoadBalancers \
         --policy-arn arn:aws:iam::aws:policy/AmazonECSInfrastructureRolePolicyForLoadBalancers
   ```

IAM コンソールの**[カスタム信頼ポリシー]**ワークフローを使用してロールを作成することもできます。詳細については、「*IAM ユーザーガイド*」の「[カスタム信頼ポリシーを使用してロールを作成する (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)」を参照してください。

**重要**  
Amazon ECS がブルー/グリーンデプロイのロードバランサーリソースを管理するためにインフラストラクチャロールを使用している場合は、ロールを削除または変更する前に以下の点を確認してください。  
アクティブなデプロイの進行中に、ロールが削除されない。
ロールの信頼ポリシーは、Amazon ECS アクセス (`ecs.amazonaws.com`) を削除するように変更されていません。
アクティブなデプロイの進行中に、管理ポリシー `AmazonECSInfrastructureRolePolicyForLoadBalancers` が削除されない。
ブルー/グリーンデプロイ中にロールを削除または変更すると、デプロイが失敗し、サービスが不整合な状態になる可能性があります。

ファイルを作成したら、Amazon ECS にロールを渡すためのアクセス許可をユーザーに付与する必要があります。

## インフラストラクチャロールを Amazon ECS に渡すためのアクセス許可
<a name="pass_infrastructure_role_to_service_loadbalancers"></a>

ロードバランサー用の ECS インフラストラクチャの IAM ロールを使用するには、そのロールを Amazon ECS に渡すためのユーザー権限を付与する必要があります。ユーザーに、次の `iam:PassRole` 権限をアタッチします。*ecsInfrastructureRoleForLoadBalancers* を作成したインフラストラクチャロールの名前に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "iam:PassRole",
            "Effect": "Allow",
            "Resource": ["arn:aws:iam::*:role/ecsInfrastructureRoleForLoadBalancers"],
            "Condition": {
                "StringEquals": {"iam:PassedToService": "ecs.amazonaws.com"}
            }
        }
    ]
}
```

------

`iam:Passrole` およびユーザー権限の更新の詳細については、「*AWS Identity and Access Management ユーザーガイド*」の「[AWS サービスにロールを渡すアクセス許可をユーザーに付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)」と「[IAM ユーザーのアクセス許可を変更する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html)」を参照してください。