Políticas administradas por AWS para Amazon Elastic Container Service - Amazon Elastic Container Service

Políticas administradas por AWS para Amazon Elastic Container Service

Para agregar permisos a usuarios, grupos y roles, es más fácil utilizar las políticas administradas de AWS que escribirlas uno mismo. Se necesita tiempo y experiencia para crear políticas administradas por el cliente de IAM que le brinden a su equipo solo los permisos necesarios. Para comenzar a hacerlo con rapidez, puede utilizar nuestras políticas administradas de AWS. Estas políticas cubren casos de uso comunes y están disponibles en su cuenta de AWS. Para obtener más información sobre las políticas administradas por AWS, consulte Políticas administradas por AWS en la Guía del usuario de IAM.

Los servicios de AWS mantienen y actualizan las políticas administradas por AWS. No puede cambiar los permisos en las políticas administradas de AWS. En ocasiones, los servicios agregan permisos adicionales a una política administrada por AWS para admitir características nuevas. Este tipo de actualización afecta a todas las identidades (usuarios, grupos y roles) donde se asocia la política. Es más probable que los servicios actualicen una política administrada por AWScuando se lanza una nueva característica o cuando se ponen a disposición nuevas operaciones. Los servicios no quitan los permisos de una política administrada de AWS, por lo tanto, las actualizaciones de las políticas no deteriorarán los permisos existentes.

Además, AWS admite políticas administradas para funciones de trabajo que abarcan varios servicios. Por ejemplo, la política administrada de AWS ReadOnlyAccess proporciona acceso de solo lectura a todos los servicios y los recursos de AWS. Cuando un servicio lanza una nueva característica, AWS agrega permisos de solo lectura para las operaciones y los recursos nuevos. Para obtener una lista y descripciones de las políticas de funciones de trabajo, consulte Políticas administradas de AWS para funciones de trabajo en la Guía del usuario de IAM.

Amazon ECS y Amazon ECR proporcionan varias políticas administradas y relaciones de confianza que se pueden asociar a usuarios, grupos, roles, instancias de Amazon EC2 y tareas de Amazon ECS para permitir diferentes niveles de control sobre los recursos y las operaciones de la API. Puede aplicar estas políticas directamente o puede usarlas como punto de partida para crear las suyas propias. Para obtener más información acerca de las políticas administradas por Amazon ECR, consulte Políticas administradas por Amazon ECR.

AmazonECS_FullAccess

Puede adjuntar la política AmazonECS_FullAccess a las identidades de IAM.

Esta política otorga acceso administrativo a los recursos de Amazon ECS y le otorga a una identidad de IAM (como un usuario, grupo o rol) acceso a los servicios de AWS con los que Amazon ECS está integrado para utilizar todas las características de Amazon ECS. El uso de esta política permite acceder a todas las características de Amazon ECS que están disponibles en la AWS Management Console.

Detalles de los permisos

La política de IAM administrada AmazonECS_FullAccess debe incluir los siguientes permisos. Siguiendo la práctica recomendada de concesión de privilegios mínimos, puede usar la política administrada AmazonECS_FullAccess como plantilla para crear su propia política personalizada. De esta forma, puede quitar permisos de la política administrada o agregar otros en función de sus requisitos específicos.

  • ecs: permite a las entidades principales tener acceso completo a todas las operaciones de las API de Amazon ECS.

  • application-autoscaling: permite a los usuarios principales crear, describir y administrar recursos de Application Auto Scaling. Esto es necesario cuando se habilita el escalado automático del servicio para los servicios de Amazon ECS.

  • appmesh: permite a los usuarios principales enumerar las mallas de servicio y los nodos virtuales de App Mesh y describir estos nodos. Esto se debe hacer cuando se integran los servicios de Amazon ECS con App Mesh.

  • autoscaling: permite a los usuarios principales crear, administrar y describir recursos de Amazon EC2 Auto Scaling. Esto se debe hacer cuando se administran grupos de Amazon EC2 Auto Scaling y se utiliza la característica de escalado automático de clústeres.

  • cloudformation: permite a los usuarios principales crear y administrar pilas de AWS CloudFormation. Esto se debe hacer cuando se crean clústeres de Amazon ECS mediante la AWS Management Console y posteriormente se administran.

  • cloudwatch: permite a los usuarios principales crear, administrar y describir alarmas de Amazon CloudWatch.

  • codedeploy: permite a las entidades principales crear y administrar implementaciones de aplicaciones, y consultar sus configuraciones, revisiones y destinos de implementación.

  • sns: permite a los usuarios principales consultar una lista de temas de Amazon SNS.

  • lambda: permite a los usuarios principales consultar una lista de funciones AWS Lambda y las configuraciones específicas de la versión.

  • ec2: permite a las entidades principales ejecutar instancias de Amazon EC2, así como crear y administrar rutas, tablas de enrutamiento, puertas de enlace de Internet, grupos de lanzamiento, grupos de seguridad, nubes privadas virtuales, flotas de spot y subredes.

  • elasticloadbalancing: permite a los usuarios principales crear, describir y eliminar balanceadores de carga de Elastic Load Balancing. Las entidades principales también podrán agregar etiquetas a grupos de destino recién creados, oyentes y reglas de oyentes para los equilibradores de carga.

  • events: permite a los usuarios principales crear, administrar y eliminar reglas de Amazon EventBridge y sus destinos.

  • iam: permite a los usuarios principales enumerar los roles de IAM y sus políticas asociadas. Los usuarios principales también pueden enumerar perfiles de instancias disponibles para instancias de Amazon EC2.

  • logs: permite a los usuarios principales crear y describir grupos de registro de Amazon CloudWatch Logs. Los usuarios principales también pueden enumerar eventos de registro para estos grupos de registro.

  • route53: permite a los usuarios principales crear, administrar y eliminar zonas alojadas de Amazon Route 53. Los usuarios principales también pueden consultar la información y la configuración de la comprobación de estado de Amazon Route 53. Para obtener más información acerca de las zonas alojadas, consulte Uso de zonas alojadas.

  • servicediscovery: permite a los usuarios principales crear, administrar y eliminar servicios de AWS Cloud Map y crear espacios de nombres DNS privados.

A continuación, se muestra una política AmazonECS_FullAccess de ejemplo.

{ "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

La política de IAM administrada AmazonECSInfrastructureRolePolicyForVolumes otorga los permisos que necesita Amazon ECS para hacer llamadas a la API de AWS en su nombre. Puede adjuntar esta política al rol de IAM que proporciona con la configuración de su volumen al lanzar las tareas y los servicios de Amazon ECS. El rol permite a Amazon ECS administrar los volúmenes adjuntos a sus tareas. Para obtener más información, consulte Rol de IAM para la infraestructura de Amazon ECS.

Detalles de los permisos

La política de IAM administrada AmazonECSInfrastructureRolePolicyForVolumes debe incluir los siguientes permisos. Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, puede utilizar la política administrada AmazonECSInfrastructureRolePolicyForVolumes como plantilla para crear su propia política personalizada que incluya solo los permisos que necesite.

  • ec2:CreateVolume: permite a una entidad principal crear un volumen de Amazon EBS únicamente si está etiquetado con las etiquetas AmazonECSCreated y AmazonECSManaged. Este permiso es necesario para crear volúmenes de Amazon EBS adjuntos a las tareas de Amazon ECS y minimizar los permisos que esta política proporciona a Amazon ECS.

  • ec2:CreateTags: permite a una entidad principal agregar etiquetas a un volumen de Amazon EBS como parte de ec2:CreateVolume. Amazon ECS necesita este permiso para agregar etiquetas especificadas por el cliente a los volúmenes de Amazon EBS creados en su nombre.

  • ec2:AttachVolume: permite a una entidad principal adjuntar un volumen de Amazon EBS a una instancia de Amazon EC2. Amazon ECS necesita este permiso para adjuntar volúmenes de Amazon EBS a la instancia de Amazon EC2 que aloja la tarea de Amazon ECS asociada.

  • ec2:DescribeVolume: permite a una entidad principal obtener información sobre volúmenes de Amazon EBS. Este permiso es necesario para administrar el ciclo de vida de los volúmenes de Amazon EBS.

  • ec2:DescribeAvailabilityZones: permite a una entidad principal obtener información sobre las zonas de disponibilidad de su cuenta. Es necesario para administrar el ciclo de vida de los volúmenes de Amazon EBS.

  • ec2:DetachVolume: permite a una entidad principal desconectar un volumen de Amazon EBS de una instancia de Amazon EC2. Amazon ECS necesita este permiso para desconectar el volumen de Amazon EBS de la instancia de Amazon EC2 que aloja la tarea de Amazon ECS asociada al finalizar la tarea.

  • ec2:DeleteVolume: permite a una entidad principal eliminar un volumen de Amazon EBS. Amazon ECS necesita este permiso para eliminar los volúmenes de Amazon EBS que la tarea de Amazon ECS ya no utiliza.

  • ec2:DeleteTags: permite a una entidad principal eliminar la etiqueta AmazonECSManaged de un volumen de Amazon EBS. Amazon ECS necesita este permiso para eliminar el acceso a un volumen de Amazon EBS cuando ya no esté asociado a una carga de trabajo de Amazon ECS. Esto solo se aplica cuando un volumen de Amazon EBS no se elimina tras el cierre de la tarea.

A continuación, se muestra una política AmazonECSInfrastructureRolePolicyForVolumes de ejemplo.

{ "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 asocia esta política a una función de servicio que permite a Amazon ECS realizar acciones en su nombre contra las instancias de Amazon EC2 o las instancias externas.

Esta política concede permisos administrativos que permiten a las instancias de contenedor de Amazon ECS realizar llamadas a AWS en su nombre. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS.

Consideraciones

Debe tener en cuenta las siguientes recomendaciones y consideraciones al utilizar la política de IAM administrada AmazonEC2ContainerServiceforEC2Role.

  • Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, puede modificar la política administrada AmazonEC2ContainerServiceforEC2Role para que se adapte a sus necesidades específicas. Si alguno de los permisos otorgados en la política administrada no resulta necesario para su caso de uso, cree una política personalizada y agregue solo los permisos que necesite. Por ejemplo, el permiso UpdateContainerInstancesState se proporciona para el vaciado de instancias de spot. Si ese permiso no es necesario para su caso de uso, exclúyalo mediante una política personalizada. Para obtener más información, consulte Detalles de los permisos.

  • Los contenedores que se ejecutan en sus instancias de contenedor tienen acceso a todos los permisos que se suministran al rol de instancia de contenedor a través de metadatos de instancia. Le recomendamos que limite los permisos en el rol de instancia de contenedor a la lista mínima de permisos que se proporciona en la política administrada AmazonEC2ContainerServiceforEC2Role. Si los contenedores de sus tareas necesitan permisos adicionales que no se muestran aquí, le recomendamos que proporcione a esas tareas sus propios roles de IAM. Para obtener más información, consulte Rol de IAM de tarea de Amazon ECS.

    Puede evitar que los contenedores se encuentren en el puente docker0 accedan a los permisos proporcionados al rol de instancia de contenedor. Para hacer esto sin dejar de permitir los permisos proporcionados por Rol de IAM de tarea de Amazon ECS, ejecute el comando iptables en sus instancias de contenedor. Los contenedores no pueden consultar metadatos de instancia con esta regla en vigor. Este comando supone que se aplica la configuración puente de Docker predeterminada y no funcionará para contenedores que utilicen el modo de red host. Para obtener más información, consulte Modo de red.

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

    Debe guardar esta regla de iptables en la instancia de contenedor para que se conserve tras un reinicio. Utilice siguientes comandos para la AMI optimizada para Amazon ECS. Para otros sistemas operativos, consulte la documentación correspondiente a dicho sistema operativo.

    • Para la AMI de Amazon Linux 2 optimizada para Amazon ECS:

      sudo iptables-save | sudo tee /etc/sysconfig/iptables && sudo systemctl enable --now iptables
    • Para la AMI de Amazon Linux optimizada para Amazon ECS:

      sudo service iptables save

Detalles de los permisos

La política de IAM administrada AmazonEC2ContainerServiceforEC2Role debe incluir los siguientes permisos. Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, la política administrada AmazonEC2ContainerServiceforEC2Role se puede utilizar como guía. Si no necesita ninguno de los permisos que se conceden en la política administrada para su caso de uso, cree una política personalizada y agregue solo los permisos que necesite.

  • ec2:DescribeTags: permite que un usuario principal describa las etiquetas asociadas a una instancia de Amazon EC2. El agente contenedor de Amazon ECS utiliza este permiso para admitir la propagación de etiquetas de recursos. Para obtener más información, consulte Cómo se etiquetan los recursos.

  • ecs:CreateCluster: permite a un usuario principal crear un clúster de Amazon ECS. Este permiso lo utiliza el agente de contenedor de Amazon ECS para crear un clúster default si aún no existe ninguno.

  • ecs:DeregisterContainerInstance: permite a un usuario principal anular el registro de una instancia de contenedor de Amazon ECS desde un clúster. El agente de contenedor de Amazon ECS no llama a esta operación de la API, pero este permiso se conserva para ayudar a garantizar la compatibilidad con versiones anteriores.

  • ecs:DiscoverPollEndpoint: esta acción devuelve puntos de enlace que el agente contenedor de Amazon ECS utiliza para buscar actualizaciones.

  • ecs:Poll: permite que el agente contenedor de Amazon ECS se comunique con el plano de control de Amazon ECS y le informe los cambios en el estado de la tarea.

  • ecs:RegisterContainerInstance: permite que un usuario principal registre una instancia de contenedor con un clúster. El agente contenedor de Amazon ECS utiliza este permiso para registrar la instancia de Amazon EC2 con un clúster, así como para admitir la propagación de etiquetas de recursos.

  • ecs:StartTelemetrySession: permite que el agente de contenedores de Amazon ECS se comunique con el plano de control de Amazon ECS para enviar la información de estado y las métricas de cada contenedor y tarea.

  • ecs:TagResource: permite que el agente contenedor de Amazon ECS etiquete el clúster al crearlo y etiquete las instancias del contenedor cuando están registradas en un clúster.

  • ecs:UpdateContainerInstancesState: permite que un usuario principal modifique el estado de una instancia de contenedor de Amazon ECS. El agente contenedor de Amazon ECS utiliza este permiso para el vaciado de instancias de spot.

  • ecs:Submit*: esto incluye las acciones de la API SubmitAttachmentStateChanges, SubmitContainerStateChange y SubmitTaskStateChange. Los utiliza el agente de contenedores de Amazon ECS para informar los cambios de estado de cada recurso al plano de control de Amazon ECS. El agente de contenedor de Amazon ECS ya no utiliza el permiso SubmitContainerStateChange, pero se conserva para ayudar a garantizar la compatibilidad con versiones anteriores.

  • ecr:GetAuthorizationToken: permite que un usuario principal recupere un token de autorización. Un token de autorización representa las credenciales de autenticación de IAM y se puede utilizar para acceder a cualquier registro de Amazon ECR al que tenga acceso el elemento principal de IAM. El token de autorización recibido es válido durante 12 horas.

  • ecr:BatchCheckLayerAvailability: cuando se inserta una imagen de contenedor en un repositorio privado de Amazon ECR, se comprueba cada capa de imagen para verificar si ya se insertó. Si se insertó, se omite la capa de imagen.

  • ecr:GetDownloadUrlForLayer: cuando se extrae una imagen de contenedor de un repositorio privado de Amazon ECR, se llama a esta API una vez para cada capa de imagen que aún no está almacenada en caché.

  • ecr:BatchGetImage: cuando se extrae una imagen de contenedor de un repositorio privado de Amazon ECR, se llama una vez a esta API para recuperar el manifiesto de la imagen.

  • logs:CreateLogStream: permite que un usuario principal cree un flujo de registros de CloudWatch Logs para un grupo de registros especificado.

  • logs:PutLogEvents: permite que un usuario principal cargue un lote de eventos de registro en un flujo de registros especificado.

A continuación, se muestra una política AmazonEC2ContainerServiceforEC2Role de ejemplo.

{ "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

Esta política concede permisos que permiten a Amazon EventBridge (anteriormente CloudWatch Events) ejecutar tareas en su nombre. Esta política se puede asociar al rol de IAM que se especifica al crear tareas programadas. Para obtener más información, consulte Rol de IAM de EventBridge de Amazon ECS.

Detalles de los permisos

Esta política incluye los siguientes permisos.

  • ecs: permite que un usuario principal de un servicio llame a la API RunTask de Amazon ECS. Permite que una entidad principal de un servicio agregue etiquetas (TagResource) cuando llama a la API RunTask de Amazon ECS.

  • iam: permite pasar cualquier función de servicio de IAM a cualquier tarea de Amazon ECS.

A continuación, se muestra una política AmazonEC2ContainerServiceEventsRole de ejemplo.

{ "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

La política de IAM administrada AmazonECSTaskExecutionRolePolicy otorga los permisos que necesita el agente de contenedor de Amazon ECS y los agentes de contenedor de AWS Fargate para hacer llamadas a la API de AWS en su nombre. Esta política se puede agregar a su rol de IAM de ejecución de tareas. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

Detalles de los permisos

La política de IAM administrada AmazonECSTaskExecutionRolePolicy debe incluir los siguientes permisos. Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, la política administrada AmazonECSTaskExecutionRolePolicy se puede utilizar como guía. Si alguno de los permisos que se conceden en la política administrada no resulta necesario para su caso de uso, cree una política personalizada y agregue solo los permisos que necesite.

  • ecr:GetAuthorizationToken: permite que un usuario principal recupere un token de autorización. Un token de autorización representa las credenciales de autenticación de IAM y se puede utilizar para acceder a cualquier registro de Amazon ECR al que tenga acceso el elemento principal de IAM. El token de autorización recibido es válido durante 12 horas.

  • ecr:BatchCheckLayerAvailability: cuando se inserta una imagen de contenedor en un repositorio privado de Amazon ECR, se comprueba cada capa de imagen para verificar si ya se insertó. Si se insertó, se omite la capa de imagen.

  • ecr:GetDownloadUrlForLayer: cuando se extrae una imagen de contenedor de un repositorio privado de Amazon ECR, se llama a esta API una vez para cada capa de imagen que aún no está almacenada en caché.

  • ecr:BatchGetImage: cuando se extrae una imagen de contenedor de un repositorio privado de Amazon ECR, se llama una vez a esta API para recuperar el manifiesto de la imagen.

  • logs:CreateLogStream: permite que un usuario principal cree un flujo de registros de CloudWatch Logs para un grupo de registros especificado.

  • logs:PutLogEvents: permite que un usuario principal cargue un lote de eventos de registro en un flujo de registros especificado.

A continuación, se muestra una política AmazonECSTaskExecutionRolePolicy de ejemplo.

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

AmazonECSServiceRolePolicy

La política de IAM AmazonECSServiceRolePolicy administrada permite que Amazon Elastic Container Service administre su clúster. Esta política se puede agregar a su rol de IAM de ejecución de tareas. Para obtener más información, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

Detalles de los permisos

La política de IAM administrada AmazonECSServiceRolePolicy debe incluir los siguientes permisos. Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, la política administrada AmazonECSServiceRolePolicy se puede utilizar como guía. Si alguno de los permisos que se conceden en la política administrada no resulta necesario para su caso de uso, cree una política personalizada y agregue solo los permisos que necesite.

  • autoscaling: permite a los usuarios principales crear, administrar y describir recursos de Amazon EC2 Auto Scaling. Esto se debe hacer cuando se administran grupos de Amazon EC2 Auto Scaling y se utiliza la característica de escalado automático de clústeres.

  • autoscaling-plans: permite a los usuarios principales crear, eliminar y describir planes de escalado automático.

  • cloudwatch: permite a los usuarios principales crear, administrar y describir alarmas de Amazon CloudWatch.

  • ec2: permite a las entidades principales ejecutar en instancias de Amazon EC2, así como crear y administrar interfaces y etiquetas de red.

  • elasticloadbalancing: permite a los usuarios principales crear, describir y eliminar balanceadores de carga de Elastic Load Balancing. Las entidades principales también podrán agregar y describir los grupos de destino.

  • logs: permite a los usuarios principales crear y describir grupos de registro de Amazon CloudWatch Logs. Los usuarios principales también pueden enumerar eventos de registro para estos grupos de registro.

  • route53: permite a los usuarios principales crear, administrar y eliminar zonas alojadas de Amazon Route 53. Los usuarios principales también pueden consultar la información y la configuración de la comprobación de estado de Amazon Route 53. Para obtener más información acerca de las zonas alojadas, consulte Uso de zonas alojadas.

  • servicediscovery: permite a los usuarios principales crear, administrar y eliminar servicios de AWS Cloud Map y crear espacios de nombres DNS privados.

  • events: permite a los usuarios principales crear, administrar y eliminar reglas de Amazon EventBridge y sus destinos.

A continuación, se muestra una política AmazonECSServiceRolePolicy de ejemplo.

{ "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

Proporciona acceso administrativo a AWS Private Certificate Authority, Secrets Manager y otros servicios de AWS necesarios para administrar las características de TLS de Amazon ECS Service Connect en su nombre.

Detalles de los permisos

La política de IAM administrada AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity debe incluir los siguientes permisos. Siguiendo el consejo de seguridad estándar de concesión de privilegios mínimos, la política administrada AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity se puede utilizar como guía. Si alguno de los permisos que se conceden en la política administrada no resulta necesario para su caso de uso, cree una política personalizada y agregue solo los permisos que necesite.

  • secretsmanager:CreateSecret: permite a la entidad principal crear el secreto. Es obligatorio para la TLS de Service Connect. Amazon ECS mantiene la clave privada del cliente en el secreto de Secrets Manager del cliente.

  • secretsmanager:TagResource: permite a la entidad principal adjuntar la etiqueta al secreto creado. Es obligatorio para la TLS de Service Connect, ya que Amazon ECS crea el secreto en nombre del cliente y adjunta la etiqueta al recurso. Estas etiquetas proporcionan al cliente una forma más fácil de identificar el secreto administrado y restringir las acciones en relación con estos secretos.

  • secretsmanager:DescribeSecret: permite a la entidad principal describir el secreto y obtener el estado de la versión actual. Es necesario para que Amazon ECS haga la rotación de materiales de TLS de Amazon ECS Service Connect.

  • secretsmanager:UpdateSecret: permite a la entidad principal actualizar el secreto. Es necesario para que Amazon ECS haga la rotación de materiales de TLS de Amazon ECS Service Connect y actualice el secreto con los nuevos materiales.

  • secretsmanager:GetSecretValue: permite a la entidad principal obtener el valor de un secreto. Es necesario para que Amazon ECS haga la rotación de materiales de TLS de Amazon ECS Service Connect.

  • secretsmanager:PutSecretValue: permite a la entidad principal colocar el valor de un secreto. Es necesario para que Amazon ECS haga la rotación de materiales de TLS de Amazon ECS Service Connect.

  • secretsmanager:UpdateSecretVersionStage: permite a la entidad principal actualizar la fase de versión de un secreto. Es necesario para que Amazon ECS haga la rotación de materiales de TLS de Amazon ECS Service Connect.

  • acm-pca:IssueCertificate: permite a la entidad principal llamar a IssueCertificate para End entity certificate para la TLS de Amazon ECS Service Connect. Es necesario para que ECS genere un certificado para el servicio ascendente del cliente.

  • acm-pca:GetCertificate: permite a la entidad principal llamar a GetCertificate para End entity certificate para la TLS de Amazon ECS Service Connect.

  • acm-pca:GetCertificateAuthorityCertificate: permite a la entidad principal obtener el certificado de la entidad de certificación. Es obligatorio para la TLS de Amazon ECS Service Connect, de modo que el servicio descendente del cliente pueda confiar en el certificado de la entidad final ascendente.

  • acm-pca:DescribeCertificateAuthority: permite a la entidad principal obtener detalles sobre la entidad de certificación. Es necesario para que la TLS de Amazon ECS Service Connect reutilice información como el algoritmo de firma para crear la CSR (solicitud de firma de certificado).

A continuación, se muestra una política AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity de ejemplo.

{ "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

No puede asociar AWSApplicationAutoscalingECSServicePolicy a sus entidades IAM. Esta política se asocia a un rol vinculado al servicio que permite a Application Auto Scaling realizar acciones en su nombre. Para obtener más información, consulte Roles vinculados a servicios para Aplication Auto Scaling.

AWSCodeDeployRoleForECS

No puede asociar AWSCodeDeployRoleForECS a sus entidades IAM. Esta política se asocia a un rol vinculado al servicio que permite a CodeDeploy realizar acciones en su nombre. Para obtener más información, consulte Creación de una función de servicio para CodeDeploy en la Guía del usuario de AWS CodeDeploy.

AWSCodeDeployRoleForECSLimited

No puede asociar AWSCodeDeployRoleForECSLimited a sus entidades IAM. Esta política se asocia a un rol vinculado al servicio que permite a CodeDeploy realizar acciones en su nombre. Para obtener más información, consulte Creación de una función de servicio para CodeDeploy en la Guía del usuario de AWS CodeDeploy.

Actualizaciones de Amazon ECS para políticas administradas por AWS

Consultar los detalles sobre las actualizaciones de las políticas administradas por AWS para Amazon ECS ya que este servicio comenzó a realizar el seguimiento de estos cambios. Para obtener alertas automáticas sobre cambios en esta página, suscríbase a la fuente RSS en la página de historial de documentos de Amazon ECS.

Cambio Descripción Fecha

Adición de la nueva política AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity

Se agregó la nueva política AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity, que proporciona acceso administrativo a AWS KMS, AWS Private Certificate Authority y Secrets Manager y permite que las características de la TLS de Amazon ECS Service Connect funcionen correctamente.

22 de enero de 2024

Adición de la nueva política AmazonECSInfrastructureRolePolicyForVolumes

Se agregó la política AmazonECSInfrastructureRolePolicyForVolumes. La política concede los permisos que Amazon ECS necesita para hacer llamadas a la API de AWS con el fin de administrar los volúmenes de Amazon EBS asociados a las cargas de trabajo de Amazon ECS. 11 de enero de 2024

Agregar permisos a AmazonECSServiceRolePolicy

La política de IAM administrada AmazonECSServiceRolePolicy se actualizó con los nuevos permisos events y los permisos adicionales autoscaling y autoscaling-plans. 4 de diciembre de 2023

Adición de permisos a AmazonEC2ContainerServiceEventsRole

La política de IAM administrada AmazonECSServiceRolePolicy se actualizó para permitir el acceso a la operación de la API de AWS Cloud Map DiscoverInstancesRevision. 4 de octubre de 2023

Agregar permisos a AmazonEC2ContainerServiceforEC2Role

La política AmazonEC2ContainerServiceforEC2Role se modificó para agregar el permiso ecs:TagResource, que incluye una condición que limita el permiso solo a clústeres recién creados e instancias de contenedor registradas. 6 de marzo de 2023

Agregar permisos a AmazonECS_FullAccess

La política AmazonECS_FullAccess se modificó para agregar el permiso elasticloadbalancing:AddTags, que incluye una condición que limita el permiso solo a equilibradores de carga, grupos de destino, reglas y oyentes recién creados. Este permiso no permite agregar etiquetas a ningún recurso de Elastic Load Balancing ya creado. 4 de enero de 2023

Amazon ECS comenzó a realizar el seguimiento de los cambios

Amazon ECS comenzó a realizar el seguimiento de los cambios de las políticas administradas por AWS.

8 de junio de 2021