Rol vinculado a servicio para Amazon ECS - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Rol vinculado a servicio para Amazon ECS

Amazon Elastic Container Service utiliza un rol vinculado a servicio para los permisos que necesita para llamar a otros servicios de AWS en su nombre. Para obtener más información, consulte Uso de roles vinculados a servicios en la Guía del usuario de IAM.

Antes de la introducción de un rol vinculado a servicio para Amazon ECS, tenía que crear un rol de IAM para los servicios de Amazon ECS que otorgara a Amazon ECS el permiso que necesitaba. Este rol ya no es necesario, pero está disponible si es preciso. Para obtener más información, consulte Roles de IAM heredados para Amazon ECS.

Permisos concedidos por el rol vinculado a servicio

Amazon ECS utiliza el rol vinculado a servicio denominado AWSServiceRoleForECS para permitir que Amazon ECS llame a las API de AWS en su nombre.

El rol vinculado a servicio AWSServiceRoleForECS confía en que la entidad principal del servicio ecs.amazonaws.com asuma el rol.

La política de permisos del rol permite que Amazon ECS realice las siguientes acciones en los recursos.

{ "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" ], "Resource": "*", "Condition": { "Null": { "autoscaling:ResourceTag/AmazonECSManaged": "false" } } }, { "Sid": "AutoScalingPlanManagement", "Effect": "Allow", "Action": [ "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans" ], "Resource": "*" }, { "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:*" } ] }

Creación del rol vinculado a servicio

En la mayoría de los casos, no es necesario crear manualmente el rol vinculado a servicio. Por ejemplo, al crear un clúster nuevo (por ejemplo, con la experiencia de primer uso de Amazon ECS, el asistente de creación de clústeres, la AWS CLI o los SDK) o al crear o actualizar un servicio en la Consola de administración de AWS, Amazon ECS crea automáticamente el rol vinculado a servicio si este no existe.

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, un grupo o un rol) crear, editar o eliminar la descripción de un rol vinculado a servicio.

Para permitir que una entidad de IAM cree el rol vinculado a servicio AWSServiceRoleForECS

Añada la siguiente instrucción a la política de permisos de la entidad de IAM entidad que necesita crear el rol vinculado a servicio:

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Creación de un rol vinculado a servicio en IAM (AWS CLI)

Puede utilizar comandos de IAM desde la AWS Command Line Interface para crear un rol vinculado a un servicio con la política de confianza y las políticas insertadas que el servicio necesita para asumir el rol.

Para crear un rol vinculado a un servicio (CLI)

Para ello, utilice el siguiente comando:

$ aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com

Edición del rol vinculado a servicio

Amazon ECS no le permite editar el rol vinculado a servicio AWSServiceRoleForECS. Después de crear un rol vinculado a servicio, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia al mismo. Sin embargo, puede editar la descripción del rol. Para obtener más información, consulte Modificación de una función en la Guía del usuario de IAM.

Para permitir a una entidad de IAM edite la descripción del rol vinculado a servicio AWSServiceRoleForECS

Añada la siguiente instrucción a la política de permisos de la entidad de IAM que necesita editar la descripción del rol vinculado a servicio:

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Eliminación del rol vinculado a servicio

Si ya no utiliza Amazon ECS, le recomendamos que elimine el rol vinculado a servicio. De esta forma no tiene una entidad no utilizada que no se monitorice ni mantenga de forma activa. Sin embargo, debe eliminar todos los clústeres de Amazon ECS de todas las regiones para poder eliminar el rol vinculado a servicio.

Para permitir a una entidad de IAM eliminar el rol vinculado a servicio AWSServiceRoleForECS

Añada la siguiente instrucción a la política de permisos de la entidad de IAM entidad que necesita eliminar un rol vinculado a servicio:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}} }

Limpieza de un rol vinculado a servicio

Antes de poder utilizar IAM para eliminar un rol vinculado a servicio, primero debe confirmar que dicho rol no tiene sesiones activas y eliminar todos los clústeres de Amazon ECS de todas las regiones de AWS.

Para comprobar si el rol vinculado a servicio tiene una sesión activa

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Roles y seleccione el nombre de AWSServiceRoleForECS (no la casilla).

  3. En la página Summary, elija Access Advisor y revise la actividad reciente del rol vinculado a servicio.

    nota

    Si no está seguro de si Amazon ECS utiliza el rol AWSServiceRoleForECS, puede intentar eliminar el rol para comprobarlo. Si el servicio está utilizando el rol, este no podrá eliminarse y podrá ver las regiones en las que se está utilizando. Si el rol se está utilizando, debe esperar que la sesión finalice para poder eliminarlo. No se puede revocar la sesión de un rol vinculado a servicio.

Para eliminar los recursos de Amazon ECS utilizados por el rol vinculado a servicio AWSServiceRoleForECS

Debe eliminar todos los clústeres de Amazon ECS de todas las regiones de AWS para poder eliminar el rol AWSServiceRoleForECS.

  1. Reduzca los servicios de Amazon ECS hasta el recuento deseado de 0 en todas las regiones y, a continuación, elimine los servicios. Para obtener más información, consulte Actualización de un servicio y Eliminación de un servicio.

  2. Fuerce la cancelación del registro de todas las instancias de contenedor de todos los clústeres de todas las regiones. Para obtener más información, consulte Anular el registro de una instancia de contenedor.

  3. Elimine todos los clústeres de Amazon ECS de todas las regiones. Para obtener más información, consulte Eliminación de un clúster.

Eliminación de un rol vinculado a servicio en IAM (consola)

Puede utilizar la consola de IAM para eliminar un rol vinculado a un servicio.

Para eliminar un rol vinculado a un servicio (consola)

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la consola de IAM, elija Roles. A continuación, marque la casilla situada junto a AWSServiceRoleForECS, no el nombre ni la propia fila.

  3. Elija Delete role (Eliminar rol).

  4. En el cuadro de diálogo de confirmación, revise los datos del último acceso al servicio, que muestra cuándo cada una de las funciones seleccionadas tuvo acceso a un servicio de AWS por última vez. Esto le ayuda a confirmar si el rol está actualmente activo. Si desea continuar, seleccione Yes, Delete para enviar la solicitud de eliminación del rol vinculado al servicio.

  5. Consulte las notificaciones de la consola de IAM para monitorizar el progreso de la eliminación de la función vinculada al servicio. Como el proceso de eliminación del rol vinculado a un servicio de IAM es asíncrono, dicha tarea puede realizarse correctamente o fallar después de enviar la solicitud de eliminación.

    • Si la tarea se realiza correctamente, el rol se elimina de la lista y aparece una notificación informando de ello en la parte superior de la página.

    • Si la tarea no se realiza correctamente, puede seleccionar View details (Ver detalles) o View Resources (Ver recursos) desde las notificaciones para obtener información sobre el motivo por el que no se pudo eliminar el rol. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. A continuación, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.

      nota

      Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría informar de todos los recursos, algunos o ninguno.

    • Si se produce un error en la tarea y la notificación no incluye una lista de los recursos, significa que el servicio no pudo devolver dicha información. Para obtener información sobre cómo limpiar los recursos de ese servicio, consulte Servicios de AWS que funcionan con IAM. Identifique el servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.

Eliminación de un rol vinculado a servicio en IAM (AWS CLI)

Puede utilizar los comandos de IAM desde la AWS Command Line Interface para eliminar un rol vinculado a un servicio.

Para eliminar un rol vinculado a un servicio (CLI)

  1. Como los roles vinculados a servicios no se pueden eliminar si están en uso o tienen recursos asociados, debe enviar una solicitud de eliminación. Esta solicitud puede denegarse si no se cumplen estas condiciones. Debe capturar el valor de deletion-task-id de la respuesta para comprobar el estado de la tarea de eliminación. Escriba el comando siguiente para enviar una solicitud de eliminación de un rol vinculado a un servicio:

    $ aws iam delete-service-linked-role --role-name AWSServiceRoleForECS+OPTIONAL-SUFFIX
  2. Escriba el comando siguiente para comprobar el estado de la tarea de eliminación:

    $ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

    El estado de la tarea de eliminación puede ser NOT_STARTED, IN_PROGRESS, SUCCEEDED o FAILED. Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que pueda resolver el problema. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. A continuación, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.

    nota

    Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría informar de todos los recursos, algunos o ninguno. Para obtener información sobre cómo limpiar los recursos de un servicio que no está notificando ningún recurso, consulte Servicios de AWS que funcionan con IAM. Identifique el servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.

Eliminación de un rol vinculado a servicio en IAM (API de AWS)

Puede utilizar la API de IAM para eliminar una función vinculada a un servicio.

Para eliminar un rol vinculado a un servicio (API)

  1. Para enviar una solicitud de eliminación de un rol vinculado a un servicio, realice una llamada a DeleteServiceLinkedRole. En la solicitud, especifique el nombre de función de AWSServiceRoleForECS.

    Como laos roles vinculados a servicios no se puede eliminar si están en uso o tienen recursos asociados, debe enviar una solicitud de eliminación. Esta solicitud puede denegarse si no se cumplen estas condiciones. Debe apuntar el valor DeletionTaskId de la respuesta para comprobar el estado de la tarea de eliminación.

  2. Para comprobar el estado de la tarea de eliminación, realice una llamada a GetServiceLinkedRoleDeletionStatus. En la solicitud, especifique el valor de DeletionTaskId.

    El estado de la tarea de eliminación puede ser NOT_STARTED, IN_PROGRESS, SUCCEEDED o FAILED. Si ocurre un error durante la eliminación, la llamada devuelve el motivo del error para que pueda resolver el problema. Si la eliminación no pudo producirse porque el rol está utilizando los recursos del servicio, la notificación incluye una lista de dichos recursos si el servicio proporciona dicha información. A continuación, podrá limpiar los recursos y volver a enviar la solicitud de eliminación.

    nota

    Es posible que tenga que repetir este proceso varias veces, en función de la información que devuelva el servicio. Por ejemplo, el rol vinculado al servicio podría estar utilizando seis recursos y el servicio podría estar devolviendo información solo acerca de cinco de ellos. Si limpia los cinco recursos y envía la solicitud de eliminación del rol de nuevo, se producirá un error y el servicio informará del recurso restante. Un servicio podría informar de todos los recursos, algunos o ninguno. Para obtener información sobre cómo limpiar los recursos de un servicio que no está notificando ningún recurso, consulte Servicios de AWS que funcionan con IAM. Identifique el servicio en la tabla y haga clic en el enlace Yes (Sí) para consultar la documentación relacionada con los roles vinculados a dicho servicio.