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受管政策。

Amazon ECS_FullAccess

您可以將AmazonECS_FullAccess政策連接至身分IAM。

此政策會授予 Amazon ECS 資源的管理存取權,並授予IAM身分 (例如使用者、群組或角色) 存取權給ECS與 Amazon 整合 AWS 的服務,以使用所有 Amazon ECS功能。使用此政策允許存取 中提供的所有 Amazon ECS功能 AWS Management Console。

許可詳細資訊

AmazonECS_FullAccess 受管IAM政策包含下列許可。遵循授予最低權限的最佳實務,您可以使用 AmazonECS_FullAccess 受管政策作為範本,以建立您自己的自訂政策。如此一來,您就可以根據特定需求,從受管政策中取消或新增許可。

  • ecs – 允許主體完整存取所有 Amazon ECSAPI操作。

  • 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 和這些ECS叢集的後續管理建立 Amazon 叢集時,這是必要的。

  • cloudwatch – 允許主體建立、管理和描述 Amazon CloudWatch 警示。

  • codedeploy – 允許主體建立和管理應用程式部署,並檢視其組態、修訂和部署目標。

  • sns – 允許主體檢視 Amazon SNS主題的清單。

  • lambda - 允許委託人檢視 AWS Lambda 函數清單及其版本特定組態。

  • ec2 – 允許主體執行 Amazon EC2執行個體,並建立和管理路由、路由表、網際網路閘道、啟動群組、安全群組、虛擬私有雲端、Spot Fleets 和子網路。

  • elasticloadbalancing - 允許委託人建立、描述及刪除 Elastic Load Balancing 負載平衡器。主體也可以向負載平衡器的新建立目標群組、接聽程式和接聽程式規則新增標籤。

  • events – 允許主體建立、管理和刪除 Amazon EventBridge 規則及其目標。

  • iam– 允許主體列出IAM角色及其連接的政策。主體可以將角色傳遞給 AmazonECS,以委派管理連接至ECS任務的 Amazon EBS磁碟區。主體也可以列出 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": [ { "Sid": "ECSIntegrationsManagementPolicy", "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": [ "*" ] }, { "Sid": "SSMPolicy", "Effect": "Allow", "Action": [ "ssm:GetParameter", "ssm:GetParameters", "ssm:GetParametersByPath" ], "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*" }, { "Sid": "ManagedCloudformationResourcesCleanupPolicy", "Effect": "Allow", "Action": [ "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*" } } }, { "Sid": "TasksPassRolePolicy", "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } }, { "Sid": "InfrastructurePassRolePolicy", "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsInfrastructureRole" ], "Condition": { "StringEquals": { "iam:PassedToService": "ecs.amazonaws.com" } } }, { "Sid": "InstancePassRolePolicy", "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsInstanceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } }, { "Sid": "AutoScalingPassRolePolicy", "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsAutoscaleRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "application-autoscaling.amazonaws.com", "application-autoscaling.amazonaws.com.cn" ] } } }, { "Sid": "ServiceLinkedRoleCreationPolicy", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "ecs.amazonaws.com", "autoscaling.amazonaws.com", "ecs.application-autoscaling.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com" ] } } }, { "Sid": "ELBTaggingPolicy", "Effect": "Allow", "Action": [ "elasticloadbalancing:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "elasticloadbalancing:CreateAction": [ "CreateTargetGroup", "CreateRule", "CreateListener", "CreateLoadBalancer" ] } } } ] }

AmazonECSInfrastructureRolePolicyForVolumes

AmazonECSInfrastructureRolePolicyForVolumes 受管IAM政策會授予 Amazon 代表您ECS撥打電話 AWS API所需的許可。您可以在啟動 Amazon ECS任務和服務時,將此政策連接至您隨磁碟區組態提供的 IAM 角色。此角色可讓 Amazon ECS管理連接至任務的磁碟區。如需詳細資訊,請參閱 Amazon ECS基礎設施IAM角色

許可詳細資訊

AmazonECSInfrastructureRolePolicyForVolumes 受管IAM政策包含下列許可。遵循授予最低權限的標準安全建議,您可以使用 AmazonECSInfrastructureRolePolicyForVolumes 受管政策作為建立自訂政策的範本,該政策僅包含您所需的許可。

  • ec2:CreateVolume – 允許委託人建立 Amazon EBS磁碟區,前提是 和 都已加上標籤AmazonECSCreatedAmazonECSManaged。此許可是建立連接至 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 EBS磁碟區連接至託管相關聯 Amazon ECS任務的 Amazon EC2執行個體。

  • ec2:DescribeVolume – 允許委託人擷取 Amazon EBS磁碟區的相關資訊。管理 Amazon EBS磁碟區的生命週期需要此許可。

  • ec2:DescribeAvailabilityZones – 允許委託人擷取您帳戶中可用區域的相關資訊。這是管理EBS磁碟區生命週期的必要條件。

  • ec2:DetachVolume – 允許主體從 Amazon EC2執行個體分離 Amazon EBS磁碟區。當任務終止時,Amazon 需要此許可ECS才能將 Amazon EBS磁碟區與託管相關聯 Amazon ECS任務的 Amazon EC2執行個體分離。

  • ec2:DeleteVolume – 允許主體刪除 Amazon EBS磁碟區。Amazon 需要此許可ECS才能刪除不再由 Amazon ECS任務使用的 Amazon EBS磁碟區。

  • 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 ECS能夠代表您針對 Amazon EC2執行個體或外部執行個體執行動作。

此政策會授予管理許可,允許 Amazon ECS容器執行個體 AWS 代表您呼叫 。如需詳細資訊,請參閱Amazon ECS容器執行個體IAM角色

考量事項

使用 AmazonEC2ContainerServiceforEC2Role 受管IAM政策時,您應該考量下列建議和考量事項。

  • 遵循授予最低權限的標準安全建議,您可以修改 AmazonEC2ContainerServiceforEC2Role 受管政策,以符合您的特定需求。如果您的使用案例不需要受管政策中授予的任何許可,請建立自訂政策並僅新增您需要的許可。例如,專為 Spot 執行個體耗盡而提供的 UpdateContainerInstancesState 許可。如果您的使用案例不需要該許可,請使用自訂政策將其排除。如需詳細資訊,請參閱許可詳細資訊

  • 在您的容器執行個體上執行的容器可透過「執行個體中繼資料」,存取所有提供給容器執行個體角色的許可。我們建議您將容器執行個體角色中的許可限制為受管 AmazonEC2ContainerServiceforEC2Role 政策所提供的最小許可清單。如果任務中的容器需要未列出的額外許可,建議您為這些任務提供自己的IAM角色。如需詳細資訊,請參閱Amazon ECS任務IAM角色

    您可以防止 docker0 橋接器上的容器存取容器執行個體角色提供的許可。您可以執行此操作,同時仍允許 Amazon ECS任務IAM角色 提供的許可,方法是在容器執行個體上執行下列 iptables 命令。此規則生效時,容器無法查詢執行個體中繼資料。此命令假設使用預設 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,請使用下列命令。至於其他作業系統,請參閱該作業系統文件。

    • 對於 Amazon ECS最佳化的 Amazon Linux 2AMI:

      sudo iptables-save | sudo tee /etc/sysconfig/iptables && sudo systemctl enable --now iptables
    • 對於 Amazon ECS最佳化的 Amazon LinuxAMI:

      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容器代理程式用於 Spot 執行個體耗盡。

  • ecs:Submit* – 這包括 SubmitAttachmentStateChangesSubmitContainerStateChangeSubmitTaskStateChangeAPI動作。Amazon ECS容器代理程式會使用它們,將每個資源的狀態變更報告至 Amazon ECS控制平面。Amazon ECS容器代理程式不再使用 SubmitContainerStateChange許可,但仍保留此許可,以協助確保向後相容性。

  • ecr:GetAuthorizationToken - 允許委託人擷取授權字符。授權權杖代表您的IAM身分驗證憑證,可用於存取IAM主體可存取的任何 Amazon ECR登錄檔。收到的授權字符的有效期為 12 小時。

  • ecr:BatchCheckLayerAvailability – 將容器映像推送至 Amazon ECR私有儲存庫時,會檢查每個映像層,以確認是否已推送。如果已推送,則會略過映像層。

  • ecr:GetDownloadUrlForLayer – 從 Amazon ECR私有儲存庫提取容器映像時,這API就稱為一次,用於尚未快取的每個映像層。

  • ecr:BatchGetImage – 從 Amazon ECR私有儲存庫提取容器映像時,這API稱為一次,以擷取映像清單。

  • logs:CreateLogStream – 允許主體為指定的日誌群組建立 CloudWatch 日誌日誌串流。

  • logs:PutLogEvents - 允許委託人將批次日誌事件上傳到指定的日誌串流。

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 Events) 代表您執行任務。此政策可以附加到建立排程任務時指定的IAM角色。如需詳細資訊,請參閱Amazon ECS EventBridge IAM角色

許可詳細資訊

此政策包含以下許可。

  • ecs – 允許服務中的主體呼叫 Amazon ECS RunTask API。允許服務中的主體在呼叫 Amazon 時新增標籤 (TagResource)ECS RunTask API。

  • 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就稱為一次,用於尚未快取的每個映像層。

  • ecr:BatchGetImage – 從 Amazon ECR私有儲存庫提取容器映像時,這API稱為一次,以擷取映像清單。

  • logs:CreateLogStream – 允許主體為指定的日誌群組建立 CloudWatch 日誌日誌串流。

  • logs:PutLogEvents - 允許委託人將批次日誌事件上傳到指定的日誌串流。

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

提供 AWS Private Certificate Authority、Secrets Manager 和其他必要 AWS 服務的管理存取權,以代表您管理 Amazon ECS Service Connect TLS功能。

許可詳細資訊

AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 受管IAM政策包含下列許可。遵循授予最低權限的標準安全建議,AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity 受管政策可作為指南。如果您的使用案例不需要受管政策中授予的任何許可,請建立自訂政策並僅新增您需要的許可。

  • secretsmanager:CreateSecret – 允許主體建立秘密。這是 Service Connect 的必要項目TLS,Amazon 會在客戶的 Secrets Manager 秘密中ECS保留客戶的私有金鑰。

  • secretsmanager:TagResource – 允許主體在建立的秘密上附加標籤。這是 Service Connect 的必要項目TLS,因為 Amazon 會代表客戶ECS建立秘密,並將標籤與資源連接。這些標籤為客戶提供更簡單的方法來識別受管秘密,並限制這些秘密的動作。

  • secretsmanager:DescribeSecret – 允許主體描述秘密並擷取目前的版本階段。Amazon 必須ECS輪換 Amazon ECS Service Connect TLS材料。

  • secretsmanager:UpdateSecret – 允許主體更新秘密。Amazon 需要輪換 Amazon ECS Service Connect TLS材料ECS,並使用新材料更新秘密。

  • 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 – 允許委託人呼叫 IssueCertificate End entity certificate for Amazon ECS Service Connect 的 TLS。需要 ECS才能產生客戶上游服務的憑證。

  • acm-pca:GetCertificate – 允許委託人呼叫 GetCertificate End entity certificate for Amazon ECS Service Connect 的 TLS。

  • 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

您無法AWSApplicationAutoscalingECSServicePolicy連接至IAM實體。此政策會連接到服務連結角色,允許 Application Auto Scaling 代表您執行動作。如需詳細資訊,請參閱 Application Auto Scaling 的服務連結角色

AWSCodeDeployRoleForECS

您無法AWSCodeDeployRoleForECS連接至IAM實體。此政策會連接至服務連結角色, CodeDeploy 允許 代表您執行動作。如需詳細資訊,請參閱 AWS CodeDeploy 使用者指南 中的為 建立服務角色 CodeDeploy

AWSCodeDeployRoleForECSLimited

您無法AWSCodeDeployRoleForECSLimited連接至IAM實體。此政策會連接至服務連結角色, CodeDeploy 允許 代表您執行動作。如需詳細資訊,請參閱 AWS CodeDeploy 使用者指南 中的為 建立服務角色 CodeDeploy

Amazon 對 AWS 受管政策的ECS更新

檢視自此服務開始追蹤這些變更ECS以來,Amazon 受 AWS 管政策更新的詳細資訊。如需此頁面變更的自動提醒,請訂閱 Amazon ECS Document 歷史記錄頁面上的RSS摘要。

變更 描述 日期

新增許可至 Amazon ECS_FullAccess

AmazonECS_FullAccess 已更新政策,為名為 IAM的角色新增角色的iam:PassRole許可ecsInfrastructureRole。這是 建立的預設IAM角色 AWS Management Console ,旨在用作ECS基礎設施角色,允許 Amazon ECS管理連接至ECS任務的 Amazon EBS磁碟區。 2024 年 8 月 13 日

新增 A mazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity政策

已新增 mazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity政策,提供 AWS KMS、、Secrets Manager 的管理存取權 AWS Private Certificate Authority,並啟用 Amazon ECS Service Connect TLS功能以正常運作。

2024 年 1 月 22 日

新增政策 AmazonECSInfrastructureRolePolicyForVolumes

已新增AmazonECSInfrastructureRolePolicyForVolumes政策。此政策會授予 Amazon ECS呼叫 AWS API以管理與 Amazon ECS工作負載相關聯的 Amazon EBS磁碟區所需的許可。 2024 年 1 月 11 日

新增許可至 AmazonECSServiceRolePolicy

AmazonECSServiceRolePolicy管IAM政策已更新為新的events許可和其他 autoscalingautoscaling-plans許可。 2023 年 12 月 4 日

將許可新增至 AmazonEC2ContainerServiceEventsRole

AmazonECSServiceRolePolicy管IAM政策已更新,以允許存取DiscoverInstancesRevisionAPI操作 AWS Cloud Map 。 2023 年 10 月 4 日

將許可新增至 AmazonEC2ContainerServiceforEC2Role

AmazonEC2ContainerServiceforEC2Role政策已修改為新增ecs:TagResource許可,其中包括將許可限制為新建立的叢集和已註冊的容器執行個體的條件。 2023 年 3 月 6 日

新增許可至 Amazon ECS_FullAccess

AmazonECS_FullAccess 政策已修改以新增elasticloadbalancing:AddTags許可,其中包括將許可限制為新建立的負載平衡器、目標群組、規則和接聽程式的條件。此許可不允許將標籤新增至任何已建立的 Elastic Load Balancing 資源。 2023 年 1 月 4 日

Amazon ECS開始追蹤變更

Amazon ECS開始追蹤其 AWS 受管政策的變更。

2021 年 6 月 8 日