Amazon ECS Anywhere IAM ロール
オンプレミスサーバーまたは仮想マシン (VM) をクラスタ-に登録する場合、サーバーまたは VM は AWS APIと通信するために IAM ロールを必要とします。IAM ロールの作成は AWS アカウントごとに一度のみ行う必要があります。ただし、この IAM ロールは、クラスターに登録する各サーバーまたは VM に関連付ける必要があります。このロールはECSAnywhereRole
。このロールを手動で作成することもできます。または、Amazon ECS は、AWS Management Console に外部インスタンスを登録するときに、ユーザーに代わってロールを作成することもできます。IAM コンソールの検索を使用して ecsAnywhereRole
を検索すると、アカウントにすでにそのロールがあるかどうかを確認できます。詳細については、IAM ユーザーガイドの「IAM コンソールの検索」を参照してください。
AWSには、ECS Anywhere IAM ロールの作成時に使用できる 2 つの管理対象 IAM ポリシー、AmazonSSMManagedInstanceCore
およびAmazonEC2ContainerServiceforEC2Role
ポリシーが用意されています。AmazonEC2ContainerServiceforEC2Role
ポリシーには、必要以上に多くのアクセスを提供するアクセス許可が含まれています。したがって、特定のユースケースに応じて、必要なポリシーからのアクセス許可のみを追加するカスタムポリシーを作成することをお勧めします。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。
タスク実行 IAM ロールは、ユーザーに代わって AWS API コールを実行するアクセス許可を Amazon ECS コンテナエージェントに付与します。タスク実行 IAM ロールを使用する場合は、タスク定義で指定する必要があります。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。
次のいずれかの条件が適用される場合は、タスクの実行ロールが必要です。
-
コンテナログを CloudWatch Logs に送信するには、
awslogs
ログドライバーを使用します。 -
タスク定義では、Amazon ECR プライベートリポジトリでホストされるコンテナイメージを指定します。ただし、外部インスタンスに関連付けられている
ECSAnywhereRole
ロールに、Amazon ECR からイメージをプルするために必要なアクセス許可が含まれている場合は、タスク実行ロールにそれらを含める必要はありません。
Amazon ECS Anywhere ロールを作成する
すべての [ユーザー入力]
は、お客様の情報で置き換えてください。
-
以下のポリシーを持つ、
ssm-trust-policy.json
という名前のローカルファイルを作成します。{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": [ "ssm.amazonaws.com" ]}, "Action": "sts:AssumeRole" } }
-
次の AWS CLI コマンドを使用して、ロールを作成し、信頼ポリシーをアタッチします。
aws iam create-role --role-name
ecsAnywhereRole
--assume-role-policy-document file://ssm-trust-policy.json -
次のコマンドを使用して AWS マネージドポリシーをアタッチします。
aws iam attach-role-policy --role-name
ecsAnywhereRole
--policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore aws iam attach-role-policy --role-nameecsAnywhereRole
--policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role
IAM のカスタム信頼ポリシーワークフローを使用してロールを作成することもできます。詳細については、IAM ユーザーガイドの「カスタム信頼ポリシーを使用してロールを作成する (コンソール)」を参照してください。