Políticas gerenciadas pela AWS para o Amazon Elastic Container Service - Amazon Elastic Container Service

Políticas gerenciadas pela AWS para o Amazon Elastic Container Service

Para adicionar permissões a usuários, grupos e perfis, é mais fácil usar políticas gerenciadas pela AWS do que gravar políticas por conta própria. É necessário tempo e experiência para criar políticas gerenciadas pelo cliente do IAM que fornecem à sua equipe apenas as permissões de que precisam. Para começar rapidamente, é possível usar nossas políticas gerenciadas pela AWS. Essas políticas abrangem casos de uso comuns e estão disponíveis na sua conta da AWS. Para obter mais informações sobre políticas gerenciadas pela AWS, consulte Políticas gerenciadas pela AWS no Guia do usuário do IAM.

Os serviços da AWS mantêm e atualizam políticas gerenciadas pela AWS. Não é possível alterar as permissões em políticas gerenciadas pela AWS. Os serviços ocasionalmente acrescentam permissões adicionais a uma política gerenciada pela AWS para oferecer suporte a novos recursos. Esse tipo de atualização afeta todas as identidades (usuários, grupos e funções) em que a política está anexada. É mais provável que os serviços atualizem uma política gerenciada pela AWS quando um novo recurso for iniciado ou novas operações se tornarem disponíveis. Os serviços não removem permissões de uma política gerenciada pela AWS, portanto, as atualizações de políticas não suspendem suas permissões existentes.

Além disso, a AWS oferece suporte a políticas gerenciadas para funções de trabalho que abrangem vários serviços. Por exemplo, a política gerenciada pela denominada ReadOnlyAccess AWS fornece acesso somente leitura a todos os serviços e recursos da AWS. Quando um serviço executa um novo atributo, a AWS adiciona permissões somente leitura para novas operações e recursos. Para obter uma lista e descrições das políticas de funções de trabalho, consulte Políticas gerenciadas pela AWS para funções de trabalho no Guia do usuário do IAM.

O Amazon ECS e o Amazon ECR fornecem várias políticas gerenciadas e relacionamentos de confiança que você pode anexar aos usuários, aos grupos, aos perfis, às instâncias do Amazon EC2 e às tarefas do Amazon ECS que permitem diferentes níveis de controle sobre recursos e operações de API. É possível aplicar essas políticas diretamente ou usá-las como ponto de partida para criar suas próprias políticas. Para obter mais informações sobre políticas gerenciadas pelo Amazon ECR, consulte Políticas gerenciadas pelo Amazon ECR.

AmazonECS_FullAccess

É possível anexar a política AmazonECS_FullAccess a suas identidades do IAM.

Essa política concede acesso administrativo a recursos do Amazon ECS e concede a uma identidade do IAM (como usuário, grupo ou função) acesso aos serviços da AWS aos quais o Amazon ECS está integrado para usar todos os recursos do Amazon ECS. O uso dessa política permite o acesso a todos os recursos do Amazon ECS que estão disponíveis no AWS Management Console.

Detalhes da permissão

A política do IAM gerenciada AmazonECS_FullAccess deve incluir as permissões a seguir. Ao seguir a prática recomendada de conceder privilégio mínimo, é possível usar a política gerenciada AmazonECS_FullAccess como um modelo para criar sua própria política personalizada. Dessa forma, você pode retirar ou adicionar permissões à política gerenciada com base nos seus requisitos específicos.

  • ecs: permite às entidades principais acesso total a todas as operações de API do Amazon ECS.

  • application-autoscaling: permite que as entidades principais criem, descrevam e gerenciem recursos do Application Auto Scaling. Isso é necessário quando for habilitada a autoescalabilidade de serviços para os serviços do Amazon ECS.

  • appmesh: permite que as entidades principais listem malhas de serviço e nós virtuais do App Mesh e descrevam nós virtuais do App Mesh. Isso é necessário na integração dos serviços do Amazon ECS com o App Mesh.

  • autoscaling: permite que as entidades principais criem, gerenciem e descrevam recursos do Amazon EC2 Auto Scaling. Isso é necessário ao gerenciar grupos do Amazon EC2 Auto Scaling quando for usado o recurso de ajuste de escala automático do cluster.

  • cloudformation: permite que as entidades principais criem e gerenciem pilhas do AWS CloudFormation. Isso é necessário na criação de clusters do Amazon ECS usando o AWS Management Console e no gerenciamento subsequente destes clusters.

  • cloudwatch: permite que as entidades principais criem, gerenciem e descrevam alarmes do Amazon CloudWatch.

  • codedeploy: permite que as entidades principais criem e gerenciem implantações de aplicações e visualizem suas configurações, revisões e destinos de implantação.

  • sns: permite que as entidades diretores visualizem uma lista de tópicos do Amazon SNS.

  • lambda: permite que as entidades principais visualizem uma lista de funções do AWS Lambda e suas configurações específicas de versão.

  • ec2: permite que as entidades principais executem instâncias do Amazon EC2, além de criar e gerenciar rotas, tabelas de rotas, gateways da Internet, executar grupos, grupos de segurança, nuvens privadas virtuais, frotas spot e sub-redes.

  • elasticloadbalancing: permite que as entidades principais criem, descrevam e excluam balanceadores de carga do Elastic Load Balancing. As entidades principais também poderão adicionar tags a grupos de destino, receptores e regras de receptor recém-criados para balanceadores de carga.

  • events: permite que as entidades principais criem, gerenciem e excluam regras do Amazon EventBridge e seus destinos.

  • iam: permite que as entidades principais listem funções do IAM e suas políticas anexadas. As entidades principais podem passar perfis para o Amazon ECS para delegar o gerenciamento dos volumes do Amazon EBS anexados às tarefas do ECS. As entidades principais também podem listar perfis da instância disponíveis para as instâncias do Amazon EC2.

  • logs: permite que as entidades principais criem, gerenciem e descrevam grupos de log do Amazon CloudWatch Logs. As entidades principais também podem listar eventos de log para esses grupos de log.

  • route53: permite que as entidades principais criem, gerenciem e excluam zonas hospedadas do Amazon Route 53. As entidades principais também podem visualizar a configuração e as informações da verificação de integridade do Amazon Route 53. Para obter mais informações sobre zonas hospedadas, consulte Trabalhar com zonas hospedadas.

  • servicediscovery: permite que as entidades principais criem, gerenciem e excluam serviços do AWS Cloud Map e criem namespaces privados do DNS.

Veja abaixo um exemplo de política 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

A política do IAM AmazonECSInfrastructureRolePolicyForVolumes gerenciada concede as permissões necessárias para que o Amazon ECS faça chamadas de API da AWS em seu nome. Você pode anexar essa política ao perfil do IAM fornecido com a configuração do volume ao iniciar tarefas e serviços do Amazon ECS. O perfil permite que o Amazon ECS gerencie volumes anexados às suas tarefas. Para obter mais informações, consulte Amazon ECS infrastructure IAM role.

Detalhes da permissão

A política do IAM gerenciada AmazonECSInfrastructureRolePolicyForVolumes deve incluir as permissões a seguir. Ao seguir o aviso de segurança padrão para concessão de privilégio mínimo, você pode usar a política gerenciada AmazonECSInfrastructureRolePolicyForVolumes como modelo para criar sua própria política personalizada que inclua somente as permissões necessárias.

  • ec2:CreateVolume: permite que uma entidade principal crie um volume do Amazon EBS se, e somente se, ele estiver marcado com as tags AmazonECSCreated e AmazonECSManaged. Essa permissão é necessária para criar volumes do Amazon EBS anexados às tarefas do Amazon ECS e minimizar as permissões fornecidas ao Amazon ECS por essa política.

  • ec2:CreateTags: permite que uma entidade principal adicione tags a um volume do Amazon EBS como parte de ec2:CreateVolume. Essa permissão é exigida pelo Amazon ECS para adicionar tags especificadas pelo cliente aos volumes do Amazon EBS criados em seu nome.

  • ec2:AttachVolume: permite que uma entidade principal anexe um volume do Amazon EBS a uma instância do Amazon EC2. Essa permissão é exigida pelo Amazon ECS para anexar volumes do Amazon EBS à instância do Amazon EC2 que hospeda a tarefa associada do Amazon ECS.

  • ec2:DescribeVolume: permite que uma entidade principal recupere informações sobre os volumes do Amazon EBS. Essa permissão é necessária para gerenciar o ciclo de vida dos volumes do Amazon EBS.

  • ec2:DescribeAvailabilityZones: permite que uma entidade principal recupere informações sobre zonas de disponibilidade na sua conta. Isso é necessário para gerenciar o ciclo de vida dos volumes do EBS.

  • ec2:DetachVolume: permite que uma entidade principal desanexe um volume do Amazon EBS da instância do Amazon EC2. Essa permissão é exigida pelo Amazon ECS para desanexar o volume do Amazon EBS da instância do Amazon EC2 que está hospedando a tarefa associada do Amazon ECS quando ela é encerrada.

  • ec2:DeleteVolume: permite que uma entidade principal exclua um volume do Amazon EBS. Essa permissão é exigida pelo Amazon ECS para excluir volumes do Amazon EBS que não são mais usados pela tarefa do Amazon ECS.

  • ec2:DeleteTags: permite que uma entidade principal exclua a tag AmazonECSManaged de um volume do Amazon EBS. Essa permissão é exigida pelo Amazon ECS para remover o acesso a um volume do Amazon EBS depois que ele não estiver mais associado a uma workload do Amazon ECS. Isso só é aplicável quando um volume do Amazon EBS não é excluído após o encerramento da tarefa.

Veja abaixo um exemplo de política 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

O Amazon ECS anexa essa política a uma função de serviço que permite que o Amazon ECS execute ações em seu nome contra instâncias do Amazon EC2 ou instâncias externas.

Essa política concede permissões administrativas que permitem que as instâncias de contêineres do Amazon ECS façam chamadas para a AWS em seu nome. Para ter mais informações, consulte Função do IAM de instância de contêiner do Amazon ECS.

Considerações

Você deve considerar as seguintes recomendações e considerações quando usar a política do IAM gerenciada AmazonEC2ContainerServiceforEC2Role.

  • Ao seguir o aviso de segurança padrão de concessão de privilégios mínimos, você pode modificar a política gerenciada AmazonEC2ContainerServiceforEC2Role para atender às suas necessidades específicas. Se qualquer permissão concedida na política gerenciada não for necessária para seu caso de uso, crie uma política personalizada e adicione apenas as permissões necessárias. Por exemplo, a permissão UpdateContainerInstancesState é fornecida para drenagem de instâncias spot. Se essa permissão não for necessária para o seu caso de uso, exclua-a usando uma política personalizada. Para ter mais informações, consulte Detalhes da permissão.

  • Os contêineres em execução nas instâncias de contêiner têm acesso a todas as permissões dadas à função da instância de contêiner por meio de instance metadata. Recomendamos que você limite as permissões na função de instância de contêiner à lista mínima de permissões fornecidas na política gerenciada AmazonEC2ContainerServiceforEC2Role mostrada. Caso os contêineres das tarefas precisem de permissões adicionais não listadas aqui, recomendamos que estas tarefas sejam fornecidas com as próprias funções do IAM. Para ter mais informações, consulte Perfil do IAM para tarefas do Amazon ECS.

    É possível impedir que contêineres na ponte docker0 acessem as permissões fornecidas para o perfil de instância de contêiner. Isso pode ser feito enquanto ainda concede as permissões fornecidas pelo Perfil do IAM para tarefas do Amazon ECS ao executar o seguinte comando iptables nas instâncias de contêiner. Os contêineres não podem consultar metadados de instância com essa regra em vigor. Esse comando pressupõe a configuração de ponte do Docker padrão e não funciona para contêineres que usam o modo de rede host. Para ter mais informações, consulte Modo de rede.

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

    Você deve salvar essa regra iptables em sua instância de contêiner para ela sobreviver uma reinicialização. Para a AMI otimizada para Amazon ECS, use o seguinte comando. Para outros sistemas operacionais, consulte a documentação do SO em questão.

    • Para a AMI do Amazon Linux 2 otimizada para o Amazon ECS:

      sudo iptables-save | sudo tee /etc/sysconfig/iptables && sudo systemctl enable --now iptables
    • Para a AMI do Amazon Linux otimizada para o Amazon ECS:

      sudo service iptables save

Detalhes da permissão

A política do IAM gerenciada AmazonEC2ContainerServiceforEC2Role deve incluir as permissões a seguir. Ao seguir o aviso de segurança padrão de concessão de privilégios mínimos, a política gerenciada AmazonEC2ContainerServiceforEC2Role pode ser usada como um guia. Se qualquer permissão concedida na política gerenciada não for necessária para seu caso de uso, crie uma política personalizada e adicione apenas as permissões necessárias.

  • ec2:DescribeTags: permite que uma entidade principal descreva as etiquetas associadas a uma instância do Amazon EC2. Essa permissão é usada pelo agente de contêiner do Amazon ECS para oferecer suporte à propagação da etiqueta de recurso. Para ter mais informações, consulte Como os recursos são marcados.

  • ecs:CreateCluster: permite que uma entidade principal crie um cluster do Amazon ECS. Essa permissão é usada pelo agente de contêiner do Amazon ECS para criar um cluster default, se nenhum já existir.

  • ecs:DeregisterContainerInstance: permite que uma entidade principal cancele o registro de uma instância de contêiner do Amazon ECS de um cluster. O agente de contêiner do Amazon ECS não chama essa operação de API, mas essa permissão permanece para garantir a compatibilidade com versões anteriores.

  • ecs:DiscoverPollEndpoint: essa ação retorna endpoints que o agente de contêiner do Amazon ECS usa para pesquisar atualizações.

  • ecs:Poll: permite que o agente de contêiner do Amazon ECS se comunique com o ambiente de gerenciamento do Amazon ECS para relatar alterações no estado da tarefa.

  • ecs:RegisterContainerInstance: permite que uma entidade principal cancele o registro de uma instância de contêiner com um cluster. Essa permissão é usada pelo agente de contêiner do Amazon ECS para registrar a instância do Amazon EC2 em um cluster e para oferecer suporte à propagação de tags de recurso.

  • ecs:StartTelemetrySession: permite que o agente de contêiner do Amazon ECS se comunique com o ambiente de gerenciamento do Amazon ECS para relatar informações e métricas de integridade para cada contêiner e tarefa.

  • ecs:TagResource: permite que o agente de contêiner do Amazon ECS marque o cluster na criação e marque as instâncias de contêiner quando elas são registradas em um cluster.

  • ecs:UpdateContainerInstancesState: permite que uma entidade principal modifique o status de uma instância de contêiner do Amazon ECS. Essa permissão é usada pelo agente de contêiner do Amazon ECS para drenagem de instâncias spot.

  • ecs:Submit*: isso inclui as ações da API SubmitAttachmentStateChanges, SubmitContainerStateChange e SubmitTaskStateChange. Elas são usadas pelo agente de contêiner do Amazon ECS para relatar alterações de estado de cada recurso ao ambiente de gerenciamento do Amazon ECS. A permissão SubmitContainerStateChange não é mais usada pelo agente de contêiner do Amazon ECS, mas permanece para garantir a compatibilidade com versões anteriores.

  • ecr:GetAuthorizationToken: permite que uma entidade principal recupere um token de autorização. O token de autorização representa as credenciais de autenticação do IAM e pode ser usado para acessar qualquer registro do Amazon ECR ao qual a entidade principal do IAM tem acesso. O token de autorização recebido é válido por 12 horas.

  • ecr:BatchCheckLayerAvailability: quando uma imagem de contêiner é enviada para um repositório privado do Amazon ECR, cada camada de imagem é conferida para verificar se ela já foi enviada. Se já tiver sido, a camada da imagem será ignorada.

  • ecr:GetDownloadUrlForLayer: quando uma imagem de contêiner é extraída de um repositório privado do Amazon ECR, essa API é chamada uma vez para cada camada de imagem que ainda não está armazenada em cache.

  • ecr:BatchGetImage: quando uma imagem de contêiner é extraída de um repositório privado do Amazon ECR, essa API é chamada uma vez para recuperar o manifesto da imagem.

  • logs:CreateLogStream: permite que uma entidade principal crie um fluxo de log do CloudWatch Logs para um grupo de logs especificado.

  • logs:PutLogEvents: permite que uma entidade principal carregue um lote de eventos de log em um fluxo de log especificado.

Veja abaixo um exemplo de política 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

Essa política concede permissões que possibilitam que o Amazon EventBridge (anteriormente conhecido como CloudWatch Events) execute tarefas em seu nome. Essa política pode ser anexada à função do IAM especificada quando você cria tarefas programadas. Para ter mais informações, consulte Perfil do IAM para EventBridge do Amazon ECS.

Detalhes das permissões

Esta política inclui as seguintes permissões:

  • ecs: permite que uma entidade principal de um serviço chame a API RunTask do Amazon ECS. Permite que uma entidade principal em um serviço adicione tags (TagResource) quando chamarem a API RunTask do Amazon ECS.

  • iam: permite passar qualquer função de serviço do IAM para qualquer tarefa do Amazon ECS.

Veja abaixo um exemplo de política 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

A política do IAM AmazonECSTaskExecutionRolePolicy gerenciada concede as permissões necessárias para que o agente de contêiner do Amazon ECS e os agentes de contêiner do AWS Fargate façam chamadas de API da AWS em seu nome. Essa política pode ser adicionada à função do IAM de execução de tarefas. Para ter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.

Detalhes da permissão

A política do IAM gerenciada AmazonECSTaskExecutionRolePolicy deve incluir as permissões a seguir. Ao seguir o aviso de segurança padrão de concessão de privilégios mínimos, a política gerenciada AmazonECSTaskExecutionRolePolicy pode ser usada como um guia. Se qualquer permissão concedida na política gerenciada não for necessária para o seu caso de uso, crie uma política personalizada e adicione apenas as permissões necessárias.

  • ecr:GetAuthorizationToken: permite que uma entidade principal recupere um token de autorização. O token de autorização representa as credenciais de autenticação do IAM e pode ser usado para acessar qualquer registro do Amazon ECR ao qual a entidade principal do IAM tem acesso. O token de autorização recebido é válido por 12 horas.

  • ecr:BatchCheckLayerAvailability: quando uma imagem de contêiner é enviada para um repositório privado do Amazon ECR, cada camada de imagem é conferida para verificar se ela já foi enviada. Se ela tiver sido enviada, a camada de imagem será ignorada.

  • ecr:GetDownloadUrlForLayer: quando uma imagem de contêiner é extraída de um repositório privado do Amazon ECR, essa API é chamada uma vez para cada camada de imagem que ainda não está armazenada em cache.

  • ecr:BatchGetImage: quando uma imagem de contêiner é extraída de um repositório privado do Amazon ECR, essa API é chamada uma vez para recuperar o manifesto da imagem.

  • logs:CreateLogStream: permite que uma entidade principal crie um fluxo de log do CloudWatch Logs para um grupo de logs especificado.

  • logs:PutLogEvents: permite que uma entidade principal carregue um lote de eventos de log em um fluxo de log especificado.

Veja abaixo um exemplo de política AmazonECSTaskExecutionRolePolicy.

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

AmazonECSServiceRolePolicy

A política do IAM gerenciada AmazonECSServiceRolePolicy permite que o Amazon Elastic Container Service gerencie seu cluster. Essa política pode ser adicionada à função do IAM de execução de tarefas. Para ter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.

Detalhes da permissão

A política do IAM gerenciada AmazonECSServiceRolePolicy deve incluir as permissões a seguir. Ao seguir o aviso de segurança padrão de concessão de privilégios mínimos, a política gerenciada AmazonECSServiceRolePolicy pode ser usada como um guia. Se qualquer permissão concedida na política gerenciada não for necessária para o seu caso de uso, crie uma política personalizada e adicione apenas as permissões necessárias.

  • autoscaling: permite que as entidades principais criem, gerenciem e descrevam recursos do Amazon EC2 Auto Scaling. Isso é necessário ao gerenciar grupos do Amazon EC2 Auto Scaling quando for usado o recurso de ajuste de escala automático do cluster.

  • autoscaling-plans: permite que as entidades principais criem, excluam e descrevam planos de escalabilidade automática.

  • cloudwatch: permite que as entidades principais criem, gerenciem e descrevam alarmes do Amazon CloudWatch.

  • ec2: permite que entidades principais executem instâncias do Amazon EC2, além de criar e gerenciar interfaces e tags de rede.

  • elasticloadbalancing: permite que as entidades principais criem, descrevam e excluam balanceadores de carga do Elastic Load Balancing. A entidades principais também poderão adicionar e descrever grupos de destino.

  • logs: permite que as entidades principais criem, gerenciem e descrevam grupos de log do Amazon CloudWatch Logs. As entidades principais também podem listar eventos de log para esses grupos de log.

  • route53: permite que as entidades principais criem, gerenciem e excluam zonas hospedadas do Amazon Route 53. As entidades principais também podem visualizar a configuração e as informações da verificação de integridade do Amazon Route 53. Para obter mais informações sobre zonas hospedadas, consulte Trabalhar com zonas hospedadas.

  • servicediscovery: permite que as entidades principais criem, gerenciem e excluam serviços do AWS Cloud Map e criem namespaces privados do DNS.

  • events: permite que as entidades principais criem, gerenciem e excluam regras do Amazon EventBridge e seus destinos.

Veja abaixo um exemplo de política 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

Fornece acesso administrativo à AWS Private Certificate Authority, ao Secrets Manager e a outros serviços da AWS necessários para gerenciar os recursos de TLS do Amazon ECS Service Connect em seu nome.

Detalhes da permissão

A política do IAM gerenciada AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity deve incluir as permissões a seguir. Ao seguir o aviso de segurança padrão de concessão de privilégios mínimos, a política gerenciada AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity pode ser usada como um guia. Se qualquer permissão concedida na política gerenciada não for necessária para o seu caso de uso, crie uma política personalizada e adicione apenas as permissões necessárias.

  • secretsmanager:CreateSecret: permite que a entidade principal crie o segredo. É necessário para o TLS do Service Connect. O Amazon ECS mantém a chave privada do cliente no segredo do Secrets Manager do cliente.

  • secretsmanager:TagResource: permite que a entidade principal anexe uma tag ao segredo criado. É necessário para o TLS do Service Connect, porque o Amazon ECS cria o segredo em nome do cliente e anexa a tag ao recurso. Essas tags fornecem uma maneira mais fácil para o cliente identificar o segredo gerenciado e restringir as ações nesses segredos.

  • secretsmanager:DescribeSecret: permite que a entidade principal descreva o segredo e recupere o estágio atual da versão. É necessário para que o Amazon ECS faça a rotação de materiais de TLS do Amazon ECS Service Connect.

  • secretsmanager:UpdateSecret: permite que a entidade principal atualize o segredo. É necessário para que o Amazon ECS faça a rotação de materiais de TLS do Amazon ECS Service Connect e atualize o segredo com novos materiais.

  • secretsmanager:GetSecretValue: permite que a entidade principal obtenha o valor do segredo. É necessário para que o Amazon ECS faça a rotação de materiais de TLS do Amazon ECS Service Connect.

  • secretsmanager:PutSecretValue: permite que a entidade principal coloque o valor do segredo. É necessário para que o Amazon ECS faça a rotação de materiais de TLS do Amazon ECS Service Connect.

  • secretsmanager:UpdateSecretVersionStage: permite que a entidade principal atualize o estágio da versão do segredo. É necessário para que o Amazon ECS faça a rotação de materiais de TLS do Amazon ECS Service Connect.

  • acm-pca:IssueCertificate: permite que a entidade principal chame IssueCertificate para o End entity certificate do TLS do Amazon ECS Service Connect. É necessário para que o ECS gere um certificado para o serviço upstream do cliente.

  • acm-pca:GetCertificate: permite que a entidade principal chame GetCertificate para o End entity certificate do TLS do Amazon ECS Service Connect.

  • acm-pca:GetCertificateAuthorityCertificate: permite que a entidade principal obtenha o certificado das autoridades de certificação. É necessário no TLS do Amazon ECS Service Connect para que o serviço downstream do cliente possa confiar no certificado upstream da entidade final.

  • acm-pca:DescribeCertificateAuthority: permite que a entidade principal obtenha detalhes sobre a autoridade de certificação. É necessário para que o TLS do Amazon ECS Service Connect reutilize informações, como algoritmo de assinatura, para criar a CSR (solicitação de assinatura de certificado).

Veja abaixo um exemplo de política 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

Não é possível anexar AWSApplicationAutoscalingECSServicePolicy às entidades do IAM. Essa política é anexada a uma função vinculada ao serviço que permite que o Application Auto Scaling execute ações em seu nome. Para obter mais informações, consulte Funções vinculadas ao serviço para o Application Auto Scaling.

AWSCodeDeployRoleForECS

Não é possível anexar AWSCodeDeployRoleForECS às entidades do IAM. Essa política é anexada a uma função vinculada ao serviço que permite que o CodeDeploy execute ações em seu nome. Para obter mais informações, consulte Criar uma função de serviço para o CodeDeploy no Guia do usuário do AWS CodeDeploy.

AWSCodeDeployRoleForECSLimited

Não é possível anexar AWSCodeDeployRoleForECSLimited às entidades do IAM. Essa política é anexada a uma função vinculada ao serviço que permite que o CodeDeploy execute ações em seu nome. Para obter mais informações, consulte Criar uma função de serviço para o CodeDeploy no Guia do usuário do AWS CodeDeploy.

Atualizações do Amazon ECS para políticas gerenciadas pela AWS

Visualize detalhes sobre atualizações de políticas gerenciadas pela AWS para o Amazon ECS desde que este serviço passou a rastrear essas mudanças. Para obter alertas automáticos sobre alterações feitas nesta página, inscreva-se no feed RSS na página Histórico de documentos do Amazon ECS.

Alteração Descrição Data

Adicionou permissões a AmazonECS_FullAccess

A política AmazonECS_FullAccess foi atualizada para adicionar permissões iam:PassRole para perfis do IAM para um perfil chamado ecsInfrastructureRole. Este é o perfil padrão do IAM criado pelo AWS Management Console, destinado a ser usado como um perfil de infraestrutura do ECS que permite ao Amazon ECS gerenciar volumes do Amazon EBS anexados às tarefas do ECS. 13 de agosto de 2024

Adicionar nova política AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity

Foi adicionada uma nova política AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity que fornece acesso administrativo ao AWS KMS, à AWS Private Certificate Authority e ao Secrets Manager e permite que os recursos de TLS do Amazon ECS Service Connect funcionem adequadamente.

22 de janeiro de 2024

Adicionar nova política AmazonECSInfrastructureRolePolicyForVolumes

A política AmazonECSInfrastructureRolePolicyForVolumes foi adicionada. A política concede as permissões necessárias ao Amazon ECS para fazer chamadas de API da AWS a fim de gerenciar volumes do Amazon EBS associados às workloads do Amazon ECS. 11 de janeiro de 2024

Adicionar permissões ao AmazonECSServiceRolePolicy

A política do IAM gerenciada AmazonECSServiceRolePolicy foi atualizada com novas permissões de events e permissões adicionais de autoscaling e autoscaling-plans. 4 de dezembro de 2023

Adicionar permissões a AmazonEC2ContainerServiceEventsRole

A política do IAM gerenciada AmazonECSServiceRolePolicy foi atualizada para permitir o acesso à API DiscoverInstancesRevision do AWS Cloud Map. 4 de outubro de 2023

Adicione permissões ao AmazonEC2ContainerServiceforEC2Role

A política AmazonEC2ContainerServiceforEC2Role foi modificada para adicionar a permissão ecs:TagResource, que inclui uma condição que limita a permissão somente aos clusters recém-criados e às instâncias de contêiner registradas. 6 de março de 2023

Adicionar permissão a AmazonECS_FullAccess

A política AmazonECS_FullAccess foi modificada para adicionar a permissão elasticloadbalancing:AddTags, que inclui uma condição que limita a permissão somente aos balanceadores de carga recém-criados, aos grupos de destino, às regras e aos receptores criados. Essa permissão não permite que sejam adicionadas tags a qualquer recurso já criado do Elastic Load Balancing. 4 de janeiro de 2023

O Amazon ECS passou a rastrear as alterações

O Amazon ECS passou a rastrear as alterações para as políticas gerenciadas da AWS.

8 de junho de 2021