AWS Amazon Elastic Container Service の マネージドポリシー - Amazon Elastic Container Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Amazon Elastic Container Service の マネージドポリシー

ユーザー、グループ、ロールにアクセス許可を追加するには、自分でポリシーを作成するよりも、 AWS 管理ポリシーを使用する方が簡単です。チームに必要な許可のみを提供する IAM カスタマーマネージドポリシーを作成するには、時間と専門知識が必要です。すぐに使用を開始するには、 AWS マネージドポリシーを使用できます。これらのポリシーは一般的なユースケースを対象としており、 AWS アカウントで利用できます。 AWS 管理ポリシーの詳細については、IAM ユーザーガイドの「 AWS 管理ポリシー」を参照してください。

AWS のサービスは、 AWS マネージドポリシーを維持および更新します。 AWS 管理ポリシーのアクセス許可は変更できません。サービスは、新しい機能をサポートするために、 AWS 管理ポリシーに許可を追加することがあります。この種の更新は、ポリシーがアタッチされているすべてのアイデンティティ (ユーザー、グループ、ロール) に影響を与えます。新しい機能が起動されたとき、または新しいオペレーションが利用可能になったときに、サービスが AWS マネージドポリシーを更新する可能性が最も高くなります。サービスは AWS マネージドポリシーからアクセス許可を削除しないため、ポリシーの更新によって既存のアクセス許可が破棄されることはありません。

さらに、 は、複数のサービスにまたがる職務機能の管理ポリシー AWS をサポートしています。例えば、 ReadOnlyAccess AWS 管理ポリシーは、すべての AWS サービスとリソースへの読み取り専用アクセスを提供します。サービスが新しい機能を起動すると、 は新しいオペレーションとリソースに読み取り専用アクセス許可 AWS を追加します。ジョブ機能のポリシーの一覧および詳細については、「IAM ユーザーガイド」の「AWS のジョブ機能のマネージドポリシー」を参照してください。

Amazon ECS および Amazon ECR では、ユーザー、グループ、ロール、Amazon EC2 インスタンス、および Amazon ECS タスクにアタッチして、リソースや API オペレーションで異なる制御レベルを使用できる複数の管理ポリシーと信頼関係を提供しています。これらのポリシーを直接適用することも、独自のポリシーを作成する開始点として使用することもできます。Amazon ECR 管理ポリシーの詳細については、「Amazon ECR 管理ポリシー」を参照してください。

AmazonECS _FullAccess

AmazonECS_FullAccess ポリシーは IAM ID にアタッチできます。

このポリシーは、Amazon ECS リソースへの管理アクセスを許可し、Amazon ECS が統合されている AWS サービスへのアクセスを IAM アイデンティティ (ユーザー、グループ、ロールなど) に付与して、すべての Amazon ECS 機能を使用することができます。このポリシーを使用すると、 AWS Management Console で利用可能な Amazon ECS のすべての機能にアクセスできます。これらの機能は、。

許可の詳細

AmazonECS_FullAccess 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小権限の付与のベストプラクティスに従い、AmazonECS_FullAccess 管理ポリシーを、独自のカスタムポリシーを作成するためのテンプレートとして使用できます。これにより、特定の要件に基づいて、管理ポリシーに権限を追加し、管理ポリシーから権限を追加、または権限を取り上げることができます。

  • ecs — プリンシパルにすべての Amazon ECS API オペレーションへのフルアクセスを許可します。

  • application-autoscaling — プリンシパルが Application Auto Scaling リソースを作成、説明、管理できるようにします。これは、Amazon ECS サービスの自動スケーリングサービスを有効にする場合に必要です。

  • appmesh — プリンシパルが App Mesh サービスメッシュと仮想ノードを表示し、App Mesh 仮想ノードを記述できるようにします。これは、Amazon ECS サービスをApp Mesh と統合する場合に必要です。

  • autoscaling — プリンシパルが Amazon EC2 Auto Scaling リソースを作成、管理、記述できるようにします。これは、クラスターの自動スケーリング機能を使用する場合に Amazon EC2 Auto Scaling グループを管理する場合に必要です。

  • cloudformation — プリンシパルが AWS CloudFormation スタックを作成および管理できるようにします。これは、 AWS Management Console を使用して Amazon ECS クラスターを作成し、それらのクラスターのその後の管理に必要です。

  • cloudwatch — プリンシパルが Amazon CloudWatch アラームを作成、管理、および記述できるようにします。

  • codedeploy — プリンシパルがアプリケーションのデプロイを作成および管理し、設定、リビジョン、デプロイターゲットを表示できるようにします。

  • sns — プリンシパルが Amazon SNS トピックのリストを表示できるようにします。

  • lambda — プリンシパルが AWS Lambda 関数とそのバージョン固有の構成のリストを表示できるようにします。

  • ec2 — プリンシパルが Amazon EC2 インスタンスを実行し、ルート、ルートテーブル、インターネットゲートウェイ、起動グループ、セキュリティグループ、仮想プライベートクラウド、スポットフリート、サブネットを作成および管理できるようにします。

  • elasticloadbalancing — プリンシパルが Elastic Load Balancing ロードバランサーを作成、説明、削除できるようにします。プリンシパルは、ロードバランサーの新しく作成されたターゲットグループ、リスナー、リスナーのルールにタグを追加することもできます。

  • events — プリンシパルが Amazon EventBridge ルールとそのターゲットを作成、管理、削除できるようにします。

  • iam — プリンシパルに IAM ロールとアタッチされたポリシーの一覧表示を許可します。プリンシパルは、Amazon EC2 インスタンスで利用できるインスタンスプロファイルを一覧表示することもできます。

  • logs — プリンシパルが Amazon CloudWatch Logs ロググループを作成および記述できるようにします。プリンシパルは、これらのロググループのログイベントを一覧表示することもできます。

  • route53 — プリンシパルが Amazon Route 53 ホストゾーンの作成、管理、削除できるようにします。プリンシパルは、Amazon Route 53 ヘルスチェックの設定と情報を表示することもできます。ホストゾーンの設定の詳細については、「ホストゾーンの使用」を参照してください。

  • servicediscovery — プリンシパルが AWS Cloud Map サービスを作成、管理、削除し、プライベート DNS 名前空間を作成できるようにします。

AmazonECS_FullAccess ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "appmesh:DescribeVirtualGateway", "appmesh:DescribeVirtualNode", "appmesh:ListMeshes", "appmesh:ListVirtualGateways", "appmesh:ListVirtualNodes", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:Describe*", "autoscaling:UpdateAutoScalingGroup", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetApplications", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:ContinueDeployment", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:GetDeploymentGroup", "codedeploy:GetDeploymentTarget", "codedeploy:ListApplicationRevisions", "codedeploy:ListApplications", "codedeploy:ListDeploymentConfigs", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:ListDeploymentTargets", "codedeploy:RegisterApplicationRevision", "codedeploy:StopDeployment", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotFleetRequests", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:Describe*", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RequestSpotFleet", "ec2:RunInstances", "ecs:*", "elasticfilesystem:DescribeAccessPoints", "elasticfilesystem:DescribeFileSystems", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateRule", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeleteRule", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:DescribeTargetGroups", "events:DeleteRule", "events:DescribeRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "fsx:DescribeFileSystems", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "lambda:ListFunctions", "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHealthCheck", "route53:GetHostedZone", "route53:ListHostedZonesByName", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:DeleteService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListNamespaces", "servicediscovery:ListServices", "servicediscovery:UpdateService", "sns:ListTopics" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath" ], "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup" ], "Resource": ["*"], "Condition": { "StringLike": {"ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*"} } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["*"], "Condition": { "StringLike": {"iam:PassedToService": "ecs-tasks.amazonaws.com"} } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/ecsInstanceRole*"], "Condition": { "StringLike": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": ["arn:aws:iam::*:role/ecsAutoscaleRole*"], "Condition": { "StringLike": { "iam:PassedToService": [ "application-autoscaling.amazonaws.com", "application-autoscaling.amazonaws.com.cn" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "autoscaling.amazonaws.com", "ecs.amazonaws.com", "ecs.application-autoscaling.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com" ] } } }, { "Effect": "Allow", "Action": ["elasticloadbalancing:AddTags"], "Resource": "*", "Condition": { "StringEquals": { "elasticloadbalancing:CreateAction": [ "CreateTargetGroup", "CreateRule", "CreateListener", "CreateLoadBalancer" ] } } } ] }

AmazonECSInfrastructureRolePolicyForVolumes

AmazonECSInfrastructureRolePolicyForVolumes マネージド IAM ポリシーは、ユーザーに代わって AWS API コールを実行するために Amazon ECS が必要とするアクセス許可を付与します。このポリシーは、Amazon ECS タスクおよびサービスの起動時にボリューム設定で指定した IAM ロールにアタッチできます。このロールにより、Amazon ECS はタスクにアタッチされたボリュームを管理できます。詳細については、「Amazon ECS インフラストラクチャ IAM ロール」を参照してください。

許可の詳細

AmazonECSInfrastructureRolePolicyForVolumes 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小特権を付与する標準的なセキュリティアドバイスに従って、 AmazonECSInfrastructureRolePolicyForVolumes管理ポリシーを、必要なアクセス許可のみを含む独自のカスタムポリシーを作成するためのテンプレートとして使用できます。

  • ec2:CreateVolume — プリンシパルが AmazonECSCreatedおよび AmazonECSManaged タグでタグ付けされている場合に限り、プリンシパルが Amazon EBS ボリュームを作成できるようにします。このアクセス許可は、Amazon ECS タスクにアタッチされた Amazon EBS ボリュームを作成し、このポリシーによって Amazon ECS に提供されるアクセス許可を最小限に抑えるために必要です。

  • ec2:CreateTags — プリンシパルが の一部として Amazon EBS ボリュームにタグを追加できるようにしますec2:CreateVolume。このアクセス許可は、Amazon ECS がユーザーに代わって作成した Amazon EBS ボリュームにカスタマー指定のタグを追加するために必要です。

  • ec2:AttachVolume — プリンシパルが Amazon EBS ボリュームを Amazon EC2 インスタンスにアタッチできるようにします。このアクセス許可は、Amazon ECS が、関連付けられた Amazon ECS タスクをホストする Amazon EC2 インスタンスに Amazon EBS ボリュームをアタッチするために必要です。

  • ec2:DescribeVolume — プリンシパルが Amazon EBS ボリュームに関する情報を取得できるようにします。このアクセス許可は、Amazon EBS ボリュームのライフサイクルを管理するために必要です。

  • ec2:DescribeAvailabilityZones — プリンシパルがアカウントのアベイラビリティーゾーンに関する情報を取得できるようにします。これは、EBS ボリュームのライフサイクルを管理するために必要です。

  • ec2:DetachVolume — プリンシパルが Amazon EC2 インスタンスから Amazon EBS ボリュームをデタッチできるようにします。このアクセス許可は、タスクの終了時に、Amazon ECS が関連する Amazon ECS タスクをホストしている Amazon EC2 インスタンスから Amazon EBS ボリュームをデタッチするために必要です。

  • ec2:DeleteVolume — プリンシパルが Amazon EBS ボリュームを削除できるようにします。このアクセス許可は、Amazon ECS タスクで使用されなくなった Amazon EBS ボリュームを削除するために Amazon ECS で必要です。

  • ec2:DeleteTags — プリンシパルが Amazon EBS ボリュームからAmazonECSManagedタグを削除できるようにします。このアクセス許可は、Amazon ECS が Amazon ECS ワークロードに関連付けられなくなった Amazon EBS ボリュームへのアクセスを削除するために必要です。これは、タスクのシャットダウン後に Amazon EBS ボリュームが削除されない場合にのみ適用されます。

AmazonECSInfrastructureRolePolicyForVolumes ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateEBSManagedVolume", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ArnLike": { "aws:RequestTag/AmazonECSCreated": "arn:aws:ecs:*:*:task/*" }, "StringEquals": { "aws:RequestTag/AmazonECSManaged": "true" } } }, { "Sid": "TagOnCreateVolume", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ArnLike": { "aws:RequestTag/AmazonECSCreated": "arn:aws:ecs:*:*:task/*" }, "StringEquals": { "ec2:CreateAction": "CreateVolume", "aws:RequestTag/AmazonECSManaged": "true" } } }, { "Sid": "DescribeVolumesForLifecycle", "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeAvailabilityZones" ], "Resource": "*" }, { "Sid": "ManageEBSVolumeLifecycle", "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "StringEquals": { "aws:ResourceTag/AmazonECSManaged": "true" } } }, { "Sid": "ManageVolumeAttachmentsForEC2", "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:*:*:instance/*" }, { "Sid": "DeleteEBSManagedVolume", "Effect": "Allow", "Action": "ec2:DeleteVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ArnLike": { "aws:ResourceTag/AmazonECSCreated": "arn:aws:ecs:*:*:task/*" }, "StringEquals": { "aws:ResourceTag/AmazonECSManaged": "true" } } } ] }

AmazonEC2ContainerServiceforEC2Role

Amazon ECS は、Amazon EC2 インスタンスまたは外部インスタンスに対して、ユーザーに代わってアクションを実行することを Amazon ECS に許可するサービスロールにこのポリシーをアタッチします。

このポリシーは、Amazon ECS コンテナインスタンスが AWS ユーザーに代わって を呼び出すことを許可する管理アクセス許可を付与します。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

考慮事項

AmazonEC2ContainerServiceforEC2Role が管理する IAM ポリシーを使用するときは、次の推奨事項と考慮事項を検討する必要があります。

  • 最小権限を付与する標準のセキュリティアドバイスに従って、AmazonEC2ContainerServiceforEC2Role 管理ポリシーを変更して、特定のニーズに合わせることができます。管理ポリシーで付与されたアクセス許可のいずれかがユースケースに必要でない場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。例えば、UpdateContainerInstancesState アクセス許可は、スポットインスタンスのドレインに提供されます。その権限がユースケースに必要ない場合、カスタムポリシーを使用して除外します。詳細については、「許可の詳細」を参照してください。

  • コンテナインスタンスで実行しているコンテナは、インスタンスのメタデータを通じてコンテナインスタンスのロールに提供されているすべての権限にアクセスできます。コンテナインスタンスのロールのアクセス許可は、以下に提供されるマネージド型 AmazonEC2ContainerServiceforEC2Role ポリシーのアクセス許可のミニマリストに制限することをお勧めします。タスクのコンテナでリストされていない追加のアクセス許可が必要な場合は、独自の IAM ロールを使用してタスクを提供することをお勧めします。詳細については、「タスク IAM ロール」を参照してください。

    コンテナを防ぐには、docker0 ブリッジからコンテナインスタンスロールに指定されたアクセス許可にアクセスしないようにします。これは、次の iptables コマンドをコンテナインスタンスで実行することで タスク IAM ロール が提供するアクセス許可を許可して、コンテナは、有効なこのルールでインスタンスメタデータをクエリできません。このコマンドはデフォルトの Docker のブリッジ設定を前提としており、host ネットワークモードを使用してコンテナでは動作しません。詳細については、「ネットワークモード」を参照してください。

    sudo yum install -y iptables-services; sudo iptables --insert DOCKER USER 1 --in-interface docker+ --destination 169.254.169.254/32 --jump DROP

    再起動後も有効にするには、コンテナインスタンスでこの iptables ルールを保存する必要があります。Amazon ECS 最適化 AMI の場合は、次のコマンドを使用します。他のオペレーティングシステムについては、その OS のドキュメントを参照してください。

    • Amazon ECS に最適化された Amazon Linux 2 AMI の場合:

      sudo iptables-save | sudo tee /etc/sysconfig/iptables && sudo systemctl enable --now iptables
    • Amazon ECS に最適化された Amazon Linux AMI の場合:

      sudo service iptables save

許可の詳細

AmazonEC2ContainerServiceforEC2Role 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小権限を付与する標準のセキュリティアドバイスに従って、AmazonEC2ContainerServiceforEC2Role 管理ポリシーをガイドとして使用できます。ユースケースの管理ポリシーで付与されているアクセス許可が不要な場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。

  • ec2:DescribeTags — Amazon EC2 インスタンスに関連付けられているタグにプリンシパルが記述することを許可します。このアクセス許可は、リソースタグの伝播をサポートするために Amazon ECS コンテナエージェントによって使用されます。詳細については、「リソースのタグ付け方法」を参照してください。

  • ecs:CreateCluster — Amazon ECS クラスターの作成をプリンシパルに許可します。このアクセス許可は、Amazon ECS コンテナエージェントによって default クラスターが存在しない場合、このクラスタを作成するために使用されます。

  • ecs:DeregisterContainerInstance — クラスターから Amazon ECS コンテナインスタンスの登録解除をプリンシパルできるようにします。Amazon ECS コンテナエージェントはこの API オペレーションを呼び出しませんが、このアクセス許可は下位互換性を確保するために残っています。

  • ecs:DiscoverPollEndpoint — このアクションは、Amazon ECS コンテナエージェントが更新のポーリングに使用するエンドポイントを返します。

  • ecs:Poll — Amazon ECS コンテナエージェントが Amazon ECS コントロールプレーンと通信し、タスクの状態の変更を報告できるようにします。

  • ecs:RegisterContainerInstance — プリンシパルがコンテナインスタンスをクラスターに登録できるようにします。このアクセス許可は、Amazon ECS コンテナエージェントが Amazon EC2 インスタンスをクラスターに登録し、リソースタグの伝播をサポートするために使用されます。

  • ecs:StartTelemetrySession — Amazon ECS コンテナエージェントが Amazon ECS コントロールプレーンと通信し、各コンテナおよびタスクのヘルス情報とメトリックスをレポートできるようにします。

  • ecs:TagResource – Amazon ECS コンテナエージェントが作成時にクラスターにタグを付け、コンテナインスタンスがクラスターに登録されたときにタグ付けすることを許可します。

  • ecs:UpdateContainerInstancesState — プリンシパルが Amazon ECS コンテナインスタンスのステータスを変更できるようにします。このアクセス許可は、スポットインスタンスのドレイン用に Amazon ECS コンテナエージェントによって使用されます。詳細については、「スポットインスタンスのドレイン」を参照してください。

  • ecs:Submit* — これにはSubmitAttachmentStateChangesSubmitContainerStateChange、および SubmitTaskStateChange API アクションが含まれています。これらは、Amazon ECS コンテナエージェントによって使用され、各リソースの状態変化を Amazon ECS コントロールプレーンに報告します。アクセスSubmitContainerStateChange許可は Amazon ECS コンテナエージェントによって使用されなくなりましたが、下位互換性を確保するために残っています。

  • ecr:GetAuthorizationToken — プリンシパルが認証トークンの取得できるようにします。認証トークンは IAM 認証情報を表し、IAM プリンシパルによってアクセスされる Amazon ECR レジストリへのアクセスに使用できます。受け取る認証トークンは 12 時間有効です。

  • ecr:BatchCheckLayerAvailability — コンテナイメージが Amazon ECR プライベートリポジトリにプッシュされると、イメージレイヤーごとにすでにプッシュされているかどうかが確認されます。その場合、そのイメージレイヤーはスキップされます。

  • ecr:GetDownloadUrlForLayer — コンテナイメージが Amazon ECR プライベートリポジトリからプルされると、この API は、キャッシュされていない各イメージレイヤーに対して 1 回呼び出されます。

  • ecr:BatchGetImage— コンテナイメージが Amazon ECR プライベートリポジトリから取得されると、この API が 1 回呼び出され、イメージマニフェストが取得されます。

  • logs:CreateLogStream — プリンシパルが指定されたロググループの CloudWatch Logs ログストリームを作成できるようにします。

  • logs:PutLogEvents — ログイベントの Batch を指定されたログストリームにアップロードすることをプリンシパルに許可します。

AmazonEC2ContainerServiceforEC2Role ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeTags", "ecs:CreateCluster", "ecs:DeregisterContainerInstance", "ecs:DiscoverPollEndpoint", "ecs:Poll", "ecs:RegisterContainerInstance", "ecs:StartTelemetrySession", "ecs:UpdateContainerInstancesState", "ecs:Submit*", "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ecs:TagResource", "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": [ "CreateCluster", "RegisterContainerInstance" ] } } } ] }

AmazonEC2ContainerServiceEventsRole

このポリシーは、Amazon EventBridge (以前の CloudWatch イベント) がユーザーに代わってタスクを実行できるようにするアクセス許可を付与します。このポリシーは、スケジュールされたタスクの作成時に指定された IAM ロールにアタッチできます。詳細については、「Amazon ECS EventBridge IAM ロール」を参照してください。

アクセス許可の詳細

このポリシーには、以下のアクセス許可が含まれています。

  • ecs — サービスのプリンシパルが Amazon ECS RunTask API を呼び出すことを許可します。サービス内のプリンシパルが Amazon ECS RunTask API を呼び出すときにタグ (TagResource) を追加できるようにします。

  • iam — IAM サービスロールを Amazon ECS タスクに渡すことを許可します。

AmazonEC2ContainerServiceEventsRole ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ecs:RunTask"], "Resource": ["*"] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": ["*"], "Condition": { "StringLike": {"iam:PassedToService": "ecs-tasks.amazonaws.com"} } }, { "Effect": "Allow", "Action": "ecs:TagResource", "Resource": "*", "Condition": { "StringEquals": { "ecs:CreateAction": ["RunTask"] } } } ] }

AmazonECSTaskExecutionRolePolicy

AmazonECSTaskExecutionRolePolicy マネージド IAM ポリシーは、Amazon ECS コンテナエージェントと AWS Fargate コンテナエージェントがユーザーに代わって AWS API コールを実行するために必要なアクセス許可を付与します。このポリシーは、タスク実行 IAM ロールに追加できます。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

許可の詳細

AmazonECSTaskExecutionRolePolicy 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小権限を付与する標準のセキュリティアドバイスに従って、AmazonECSTaskExecutionRolePolicy 管理ポリシーをガイドとして使用できます。管理ポリシーで付与されているアクセス許可のいずれかがユースケースに必要でない場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。

  • ecr:GetAuthorizationToken — プリンシパルが認証トークンの取得できるようにします。認証トークンは IAM 認証情報を表し、IAM プリンシパルによってアクセスされる Amazon ECR レジストリへのアクセスに使用できます。受け取る認証トークンは 12 時間有効です。

  • ecr:BatchCheckLayerAvailability — コンテナイメージが Amazon ECR プライベートリポジトリにプッシュされると、イメージレイヤーごとにすでにプッシュされているかどうかが確認されます。プッシュされた場合、そのイメージレイヤーはスキップされます。

  • ecr:GetDownloadUrlForLayer— コンテナイメージが Amazon ECR プライベートリポジトリからプルされると、この API は、キャッシュされていない各イメージレイヤーに対して 1 回呼び出されます。

  • ecr:BatchGetImage— コンテナイメージが Amazon ECR プライベートリポジトリから取得されると、この API が 1 回呼び出され、イメージマニフェストが取得されます。

  • logs:CreateLogStream — プリンシパルが指定されたロググループの CloudWatch Logs ログストリームを作成できるようにします。

  • logs:PutLogEvents — ログイベントの Batch を指定されたログストリームにアップロードすることをプリンシパルに許可します。

AmazonECSTaskExecutionRolePolicy ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] }

AmazonECSServiceRolePolicy

AmazonECSServiceRolePolicy マネージド IAM ポリシーにより、Amazon Elastic Container Service でクラスターを管理できるようになります。このポリシーは、タスク実行 IAM ロールに追加できます。詳細については、「Amazon ECS タスク実行IAM ロール」を参照してください。

許可の詳細

AmazonECSServiceRolePolicy 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小権限を付与する標準のセキュリティアドバイスに従って、AmazonECSServiceRolePolicy 管理ポリシーをガイドとして使用できます。管理ポリシーで付与されているアクセス許可のいずれかがユースケースに必要でない場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。

  • autoscaling — プリンシパルが Amazon EC2 Auto Scaling リソースを作成、管理、記述できるようにします。これは、クラスターの自動スケーリング機能を使用する場合に Amazon EC2 Auto Scaling グループを管理する場合に必要です。

  • autoscaling-plans — プリンシパルが、オートスケーリングプランの作成、削除、記述を行えるようにします。

  • cloudwatch — プリンシパルが Amazon CloudWatch アラームを作成、管理、および記述できるようにします。

  • ec2 — プリンシパルが Amazon EC2 インスタンスに対して実行され、ネットワークインターフェイスとタグを作成および管理できるようにします。

  • elasticloadbalancing — プリンシパルが Elastic Load Balancing ロードバランサーを作成、説明、削除できるようにします。プリンシパルはターゲットグループを追加および記述することもできます。

  • logs — プリンシパルが Amazon CloudWatch Logs ロググループを作成および記述できるようにします。プリンシパルは、これらのロググループのログイベントを一覧表示することもできます。

  • route53 — プリンシパルが Amazon Route 53 ホストゾーンの作成、管理、削除できるようにします。プリンシパルは、Amazon Route 53 ヘルスチェックの設定と情報を表示することもできます。ホストゾーンの設定の詳細については、「ホストゾーンの使用」を参照してください。

  • servicediscovery — プリンシパルが AWS Cloud Map サービスを作成、管理、削除し、プライベート DNS 名前空間を作成できるようにします。

  • events — プリンシパルが Amazon EventBridge ルールとそのターゲットを作成、管理、削除できるようにします。

AmazonECSServiceRolePolicy ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECSTaskManagement", "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:Describe*", "ec2:DetachNetworkInterface", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:Describe*", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:Get*", "route53:List*", "route53:UpdateHealthCheck", "servicediscovery:DeregisterInstance", "servicediscovery:Get*", "servicediscovery:List*", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus" ], "Resource": "*" }, { "Sid": "AutoScaling", "Effect": "Allow", "Action": [ "autoscaling:Describe*" ], "Resource": "*" }, { "Sid": "AutoScalingManagement", "Effect": "Allow", "Action": [ "autoscaling:DeletePolicy", "autoscaling:PutScalingPolicy", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup", "autoscaling:PutLifecycleHook", "autoscaling:DeleteLifecycleHook", "autoscaling:CompleteLifecycleAction", "autoscaling:RecordLifecycleActionHeartbeat" ], "Resource": "*", "Condition": { "Null": { "autoscaling:ResourceTag/AmazonECSManaged": "false" } } }, { "Sid": "AutoScalingPlanManagement", "Effect": "Allow", "Action": [ "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans", "autoscaling-plans:DescribeScalingPlanResources" ], "Resource": "*" }, { "Sid": "EventBridge", "Effect": "Allow", "Action": [ "events:DescribeRule", "events:ListTargetsByRule" ], "Resource": "arn:aws:events:*:*:rule/ecs-managed-*" }, { "Sid": "EventBridgeRuleManagement", "Effect": "Allow", "Action": [ "events:PutRule", "events:PutTargets" ], "Resource": "*", "Condition": { "StringEquals": { "events:ManagedBy": "ecs.amazonaws.com" } } }, { "Sid": "CWAlarmManagement", "Effect": "Allow", "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm" ], "Resource": "arn:aws:cloudwatch:*:*:alarm:*" }, { "Sid": "ECSTagging", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*" }, { "Sid": "CWLogGroupManagement", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*" }, { "Sid": "CWLogStreamManagement", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*:log-stream:*" }, { "Sid": "ExecuteCommandSessionManagement", "Effect": "Allow", "Action": [ "ssm:DescribeSessions" ], "Resource": "*" }, { "Sid": "ExecuteCommand", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ecs:*:*:task/*", "arn:aws:ssm:*:*:document/AmazonECS-ExecuteInteractiveCommand" ] }, { "Sid": "CloudMapResourceCreation", "Effect": "Allow", "Action": [ "servicediscovery:CreateHttpNamespace", "servicediscovery:CreateService" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "AmazonECSManaged" ] } } }, { "Sid": "CloudMapResourceTagging", "Effect": "Allow", "Action": "servicediscovery:TagResource", "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/AmazonECSManaged": "*" } } }, { "Sid": "CloudMapResourceDeletion", "Effect": "Allow", "Action": [ "servicediscovery:DeleteService" ], "Resource": "*", "Condition": { "Null": { "aws:ResourceTag/AmazonECSManaged": "false" } } }, { "Sid": "CloudMapResourceDiscovery", "Effect": "Allow", "Action": [ "servicediscovery:DiscoverInstances", "servicediscovery:DiscoverInstancesRevision" ], "Resource": "*" } ] }

AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity

ユーザーに代わって Amazon ECS Service Connect TLS 機能を管理するために必要な、 AWS Private Certificate Authority、Secrets Manager、およびその他の AWS のサービスへの管理アクセスを提供します。

許可の詳細

AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 管理 IAM ポリシーには以下のアクセス許可が含まれています。最小権限を付与する標準のセキュリティアドバイスに従って、AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 管理ポリシーをガイドとして使用できます。管理ポリシーで付与されているアクセス許可のいずれかがユースケースに必要でない場合、カスタムポリシーを作成し、必要なアクセス許可のみを追加します。

  • secretsmanager:CreateSecret — プリンシパルにシークレットの作成を許可します。Service Connect TLS では必須であり、Amazon ECS は顧客のプライベートキーを顧客の Secrets Manager シークレットに保持します。

  • secretsmanager:TagResource — プリンシパルが作成したシークレットにタグをアタッチできるようにします。Amazon ECS は顧客に代わってシークレットを作成し、タグをリソースにアタッチするため、Service Connect TLS には必須です。これらのタグを使用すると、カスタマーは マネージドシークレットを識別し、これらのシークレットに対するアクションを制限しやすくなります。

  • secretsmanager:DescribeSecret — プリンシパルがシークレットを記述し、現在のバージョンステージを取得できるようにします。Amazon ECS が Amazon ECS Service Connect TLS マテリアルのローテーションを実行するために必要です。

  • secretsmanager:UpdateSecret – プリンシパルにシークレットの更新を許可します。Amazon ECS が Amazon ECS Service Connect TLS マテリアルのローテーションを実行し、新しいマテリアルでシークレットを更新するために必要です。

  • secretsmanager:GetSecretValue – プリンシパルがシークレット値を取得できるようにします。Amazon ECS が Amazon ECS Service Connect TLS マテリアルのローテーションを実行するために必要です。

  • secretsmanager:PutSecretValue – プリンシパルにシークレット値の入力を許可します。Amazon ECS が Amazon ECS Service Connect TLS マテリアルのローテーションを実行するために必要です。

  • secretsmanager:UpdateSecretVersionStage — プリンシパルがシークレットバージョンステージを更新できるようにします。Amazon ECS が Amazon ECS Service Connect TLS マテリアルのローテーションを実行するために必要です。

  • acm-pca:IssueCertificate — Amazon ECS Service Connect TLS End entity certificateの を呼び IssueCertificate出すことをプリンシパルに許可します。ECS が顧客のアップストリームサービスの証明書を生成するために必要です。

  • acm-pca:GetCertificate — Amazon ECS Service Connect TLS GetCertificate End entity certificateの を呼び出すことをプリンシパルに許可します。

  • acm-pca:GetCertificateAuthorityCertificate — プリンシパルが認証機関証明書を取得できるようにします。顧客のダウンストリームサービスがアップストリームエンドエンティティ証明書を信頼できるように、Amazon ECS Service Connect TLS に必要です。

  • acm-pca:DescribeCertificateAuthority – プリンシパルが認証機関に関する詳細を取得できるようにします。Amazon ECS Service Connect TLS が署名アルゴリズムなどの情報を再利用して CSR (証明書署名リクエスト) を作成するために必要です。

AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity ポリシーの例を次に示します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateSecret", "Effect": "Allow", "Action": "secretsmanager:CreateSecret", "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*", "Condition": { "ArnLike": { "aws:RequestTag/AmazonECSCreated": [ "arn:aws:ecs:*:*:service/*/*", "arn:aws:ecs:*:*:task-set/*/*" ] }, "StringEquals": { "aws:RequestTag/AmazonECSManaged": "true", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "TagOnCreateSecret", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*", "Condition": { "ArnLike": { "aws:RequestTag/AmazonECSCreated": [ "arn:aws:ecs:*:*:service/*/*", "arn:aws:ecs:*:*:task-set/*/*" ] }, "StringEquals": { "aws:RequestTag/AmazonECSManaged": "true", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "RotateTLSCertificateSecret", "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:UpdateSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:DeleteSecret", "secretsmanager:RotateSecret", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "arn:aws:secretsmanager:*:*:secret:ecs-sc!*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "ecs-sc", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "ManagePrivateCertificateAuthority", "Effect": "Allow", "Action": [ "acm-pca:GetCertificate", "acm-pca:GetCertificateAuthorityCertificate", "acm-pca:DescribeCertificateAuthority" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/AmazonECSManaged": "true" } } }, { "Sid": "ManagePrivateCertificateAuthorityForIssuingEndEntityCertificate", "Effect": "Allow", "Action": [ "acm-pca:IssueCertificate" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/AmazonECSManaged": "true", "acm-pca:TemplateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1" } } } ] }

AWSApplicationAutoscalingECSServicePolicy

IAM エンティティに AWSApplicationAutoscalingECSServicePolicy をアタッチすることはできません。このポリシーは、ユーザーに代わって Application Auto Scaling がアクションを実行することを許可する、サービスにリンクされたロールにアタッチされます。詳細については、「Application Auto Scaling のサービスにリンクされたロール」を参照してください。

AWSCodeDeployRoleForECS

IAM エンティティに AWSCodeDeployRoleForECS をアタッチすることはできません。このポリシーは、 がユーザーに代わって CodeDeploy アクションを実行することを許可する、サービスにリンクされたロールにアタッチされます。詳細については、「 ユーザーガイド」の「 のサービスロール CodeDeployの作成AWS CodeDeploy 」を参照してください。

AWSCodeDeployRoleForECSLimited

IAM エンティティに AWSCodeDeployRoleForECSLimited をアタッチすることはできません。このポリシーは、 がユーザーに代わって CodeDeploy アクションを実行することを許可する、サービスにリンクされたロールにアタッチされます。詳細については、「 ユーザーガイド」の「 のサービスロール CodeDeployの作成AWS CodeDeploy 」を参照してください。

AWS マネージドポリシーに対する Amazon ECS の更新

Amazon ECS の AWS マネージドポリシーの更新に関する詳細を、このサービスがこれらの変更の追跡を開始した以降の分について表示します。このページの変更に関する自動通知を入手するには、Amazon ECS ドキュメントの履歴ページから、RSS フィードにサブスクライブしてください。

変更 説明 日付

新しい AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity ポリシーを追加する

AWS KMS、、Secrets Manager への管理アクセスを提供し AWS Private Certificate Authority、AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity Service Connect TLS 機能が正しく動作できるようにする新しい AmazonECS ポリシーを追加しました。

2024 年 1 月 22 日

新しいポリシー AmazonECSInfrastructureRolePolicyForVolumes を追加する

AmazonECSInfrastructureRolePolicyForVolumes ポリシーが追加されました。このポリシーは、Amazon ECS ワークロードに関連付けられた Amazon EBS ボリュームを管理する API AWS コールを実行するために Amazon ECS が必要とするアクセス許可を付与します。 2024 年 1 月 11 日

AmazonECSServiceRolePolicy にアクセス許可を追加する

AmazonECSServiceRolePolicy マネージド IAM ポリシーが、新しいeventsアクセス許可と追加の autoscalingおよび autoscaling-plans アクセス許可で更新されました。 2023 年 12 月 4 日

AmazonEC2ContainerServiceEventsRole にアクセス許可を追加する

AmazonECSServiceRolePolicy マネージド IAM ポリシーが更新され、 DiscoverInstancesRevision API オペレーションへのアクセスが許可されました AWS Cloud Map 。 2023 年 10 月 4 日

AmazonEC2ContainerServiceforEC2Role にアクセス許可を追加する

AmazonEC2ContainerServiceforEC2Role ポリシーが変更され、 アクセスecs:TagResource許可が追加されました。これには、新しく作成されたクラスターと登録されたコンテナインスタンスのみにアクセス許可を制限する条件が含まれます。 2023 年 3 月 6 日

AmazonECS _FullAccess へのアクセス許可を追加する

AmazonECS_FullAccess ポリシーが変更され、 アクセスelasticloadbalancing:AddTags許可が追加されました。これには、新しく作成されたロードバランサー、ターゲットグループ、ルール、および作成されたリスナーのみにアクセス許可を制限する条件が含まれます。この権限では、既に作成されている Elastic Load Balancing リソースにタグを追加することはできません。 2023 年 1 月 4 日

Amazon ECS が変更の追跡を開始しました。

Amazon ECS が AWS マネージドポリシーの変更の追跡を開始しました。

2021 年 6 月 8 日