

# Amazon ECS コンソールに必要なアクセス許可
<a name="console-permissions"></a>

最小権限の付与のベストプラクティスに従い、`AmazonECS_FullAccess` 管理ポリシーを、独自のカスタムポリシーを作成するためのテンプレートとして使用できます。これにより、特定の要件に基づいて、管理ポリシーに権限を追加し、管理ポリシーから権限を追加、または権限を取り上げることができます。詳細については、「*AWS マネージドポリシーリファレンスガイド*」の「[AmazonECS\_FullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonECS_FullAccess.html)」を参照してください。

## IAM ロールを作成するための許可
<a name="console-create-roles"></a>

以下のアクションでは、操作を完了するために追加のアクセス許可が必要です。
+ 外部インスタンスの登録 - 詳細は、[Amazon ECS Anywhere IAM ロール](iam-role-ecsanywhere.md) を参照してください。
+ タスク定義の登録 - 詳細は、[Amazon ECS タスク実行IAM ロール](task_execution_IAM_role.md) を参照してください。
+ タスクのスケジューリングに使用する EventBridge ルールの作成 - 詳細は、[Amazon ECS EventBridge IAM ロール](CWE_IAM_role.md) を参照してください。

Amazon ECS コンソールで使用する前に IAM でロールを作成することで、これらのアクセス許可を追加できます。ロールを作成しない場合、Amazon ECS コンソールがユーザーに代わってロールを作成します。

## 外部インスタンスをクラスターに登録するために必要なアクセス許可
<a name="register-external-instance"></a>

外部インスタンスをクラスターに登録し、新しい外部インスタンス (`ecsExternalInstanceRole`) ロールを作成する場合は、追加のアクセス許可が必要です。

以下に示す追加のアクセス許可が必要です。
+ `iam` — プリンシパルが IAM ロールとそれにアタッチするポリシーを作成し、一覧表示できるようにします。
  + iam:AttachRolePolicy
  + iam:CreateRole
  + am:CreateInstanceProfile
  + iam:AddRoleToInstanceProfile
  + iam:ListInstanceProfilesForRole
  + iam:GetRole
+ `ssm` — プリンシパルが外部インスタンスを Systems Manager に登録できるようにします。

**注記**  
既存の `ecsExternalInstanceRole` を選択するには、`iam:GetRole` および `iam:PassRole` のアクセス許可が必要です。

次のポリシーには必要なアクセス許可が含まれており、アクションは `ecsExternalInstanceRole` ロールに限定されます。

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

****  

```
{
"Statement": [
      {
          "Effect": "Allow",
          "Action": [
              "iam:AttachRolePolicy",
              "iam:CreateRole",
              "iam:CreateInstanceProfile",
              "iam:AddRoleToInstanceProfile",
              "iam:ListInstanceProfilesForRole",
              "iam:GetRole"
          ],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      },
      {
          "Effect": "Allow",
          "Action": ["iam:PassRole","ssm:CreateActivation"],
          "Resource": "arn:aws:iam::*:role/ecsExternalInstanceRole"
      }
    ]
}
```

------

## タスク定義を登録するために必要なアクセス許可
<a name="register-task-def"></a>

タスク定義を登録し、新しいタスク実行 (`ecsTaskExecutionRole`) ロールを作成する場合は、追加のアクセス許可が必要です。

以下に示す追加のアクセス許可が必要です。
+ `iam` — プリンシパルが IAM ロールとそれにアタッチするポリシーを作成し、一覧表示できるようにします。
  + iam:AttachRolePolicy
  + iam:CreateRole
  + iam:GetRole

**注記**  
既存の `ecsTaskExecutionRole` を選択するには、`iam:GetRole` のアクセス許可が必要です。

次のポリシーには必要なアクセス許可が含まれており、アクションは `ecsTaskExecutionRole` ロールに限定されます。

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

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsTaskExecutionRole"
        }
    ]
}
```

------

## Amazon Q Developer を使用して、コンソールで推奨事項を提供するために必要なアクセス許可
<a name="amazon-q-permission"></a>

 Amazon Q Developer が Amazon ECS で推奨事項を提供するには、IAM ユーザーまたはロールの正しい IAM アクセス許可を有効にする必要があります。`codewhisperer:GenerateRecommendations` アクセス許可を追加する必要があります。

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

****  

```
{
"Statement": [
      {
            "Sid": "AmazonQDeveloperPermissions",
            "Effect": "Allow",
            "Action": ["codewhisperer:GenerateRecommendations"],
            "Resource": "*"
        }
    ]
}
```

------

 Amazon ECS コンソールでインラインチャットを使用するには、IAM ユーザーまたはロールの正しい IAM アクセス許可を有効にする必要があります。`q:SendMessage` アクセス許可を追加する必要があります。

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

****  

```
{
"Statement": [
    {
        "Sid": "AmazonQDeveloperInlineChatPermissions",
        "Effect": "Allow",
        "Action": ["q:SendMessage"],
        "Resource": "*"
    }
  ]
}
```

------

## スケジュールされたタスクの EventBridge ルールを作成するために必要なアクセス許可
<a name="schedule-task"></a>

タスクをスケジュールし、新しい CloudWatch Events ロール (`ecsEventsRole`) ロールを作成する場合は、追加のアクセス許可が必要です。

以下に示す追加のアクセス許可が必要です。
+ `iam` — プリンシパルが IAM ロールとそれにアタッチするポリシーを作成して一覧表示し、Amazon ECS がそのロールを他のサービスに渡してロールを引き継ぐことができるようにします。

**注記**  
既存の `ecsEventsRole` を選択するには、`iam:GetRole` および `iam:PassRole` のアクセス許可が必要です。

次のポリシーには必要なアクセス許可が含まれており、アクションは `ecsEventsRole` ロールに限定されます。

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

****  

```
{
 "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "iam:AttachRolePolicy",
            "iam:CreateRole",
            "iam:GetRole",
            "iam:PassRole"
        ],
        "Resource": "arn:aws:iam::*:role/ecsEventsRole"
        }
    ]
}
```

------

## サービスデプロイを表示するために必要なアクセス許可
<a name="service-deployments"></a>

 最小権限のベストプラクティスに従うと、コンソールでサービスデプロイを表示するには、アクセス許可を追加する必要があります。

次のアクションへのアクセスが必要です。
+ ListServiceDeployments
+ DescribeServiceDeployments
+ DescribeServiceRevisions

次のリソースへのアクセスが必要です。
+ サービス
+ サービスデプロイ
+ サービスリビジョン

次のポリシー例には必要なアクセス許可が含まれており、アクションは指定されたサービスに限定されます。

`account`、`cluster-name`、および `service-name` を独自の値に置き換えます。

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

****  

```
{
"Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "ecs:ListServiceDeployments",
            "ecs:DescribeServiceDeployments",
            "ecs:DescribeServiceRevisions"
        ],
        "Resource": [
            "arn:aws:ecs:us-east-1:123456789012:service/cluster-name/service-name",
            "arn:aws:ecs:us-east-1:123456789012:service-deployment/cluster-name/service-name/*",
            "arn:aws:ecs:us-east-1:123456789012:service-revision/cluster-name/service-name/*"
            ]
        }
   ]
}
```

------

## Amazon ECS ライフサイクルイベントを Container Insights で表示するには、以下のアクセス許可が必要です。
<a name="required-permissions-view"></a>

ライフサイクルイベントを表示するには、以下のアクセス権限が必要です。次のアクセス許可をインラインポリシーとしてロールに追加します。詳細については、「[IAM ポリシーの追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。
+ events:DescribeRule
+ events:ListTargetsByRule
+ logs:DescribeLogGroups

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:DescribeRule",
        "events:ListTargetsByRule",
        "logs:DescribeLogGroups"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Amazon ECS ライフサイクルイベントを Container Insights で表示するために必要なアクセス許可
<a name="required-permissions-configure"></a>

ライフサイクルイベントを設定するには、以下のアクセス権限が必要です。
+ events:PutRule
+ events:PutTargets
+ logs:CreateLogGroup

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "events:PutRule",
        "events:PutTargets",
        "logs:CreateLogGroup"
      ],
      "Resource": "*"
    }
  ]
}
```

------