Amazon Elastic Container Service に関する AWS 管理ポリシー - Amazon ECS

Amazon Elastic Container Service に関する AWS 管理ポリシー

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

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

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

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

AmazonECS_FullAccess

AmazonECS_FullAccess ポリシーは IAM ID に添付できます。

このポリシーは、Amazon ECS リソースへの管理アクセスを許可し、IAM ID(ユーザー、グループ、ロールなど)にAWSサービスは、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:ListMeshes", "appmesh:ListVirtualNodes", "appmesh:DescribeVirtualNode", "autoscaling:UpdateAutoScalingGroup", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:Describe*", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "lambda:ListFunctions", "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:RunInstances", "ec2:RequestSpotFleet", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateRule", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeleteRule", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:DescribeTargetGroups", "ecs:*", "events:DescribeRule", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHealthCheck", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListNamespaces", "servicediscovery:ListServices", "servicediscovery:UpdateService", "servicediscovery:DeleteService" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter" ], "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": [ "ecs.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com", "ecs.application-autoscaling.amazonaws.com", "autoscaling.amazonaws.com" ] } } } ] }

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

AWSApplicationAutoscalingECSServicePolicy

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

AWSCodeDeployRoleForECS

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

AWSCodeDeployRoleForECSLimited

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

Amazon ECS での AWS 管理ポリシーに関する更新

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

変更 説明 日付

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

Amazon ECS が AWS 管理ポリシーの変更の追跡を開始しました。

2021 年 6 月 8 日