Rol vinculado al servicio de actualizaciones administradas - AWS Elastic Beanstalk

Rol vinculado al servicio de actualizaciones administradas

AWS Elastic Beanstalk utiliza roles vinculados a servicios de AWS Identity and Access Management (IAM). Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a Elastic Beanstalk. Los roles vinculados a servicios están predefinidos por Elastic Beanstalk e incluyen todos los permisos que el servicio requiere para llamar a otros servicios de AWS en su nombre.

Un rol vinculado a un servicio simplifica la configuración de Elastic Beanstalk porque ya no tendrá que agregar manualmente los permisos necesarios. Elastic Beanstalk define los permisos de sus roles vinculados a servicio y, a menos que se defina lo contrario, solo Elastic Beanstalk puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se puede asociar a ninguna otra entidad de IAM

Solo puede eliminar una función vinculada a un servicio después de eliminar sus recursos relacionados. De esta forma se protegen los recursos de Elastic Beanstalk, ya que evita que se puedan eliminar accidentalmente permisos de acceso a los recursos.

Para obtener información sobre otros servicios que admiten roles vinculados a servicios, consulte Servicios de AWS que funcionan con IAM y busque los servicios que muestran Yes (Sí) en la columna Service Linked Role (Rol vinculado a servicios). Seleccione una opción con un enlace para ver la documentación acerca del rol vinculado al servicio en cuestión.

Permisos de rol vinculado a servicios para Elastic Beanstalk

Elastic Beanstalk utiliza el rol vinculado a servicios AWSServiceRoleForelasticBeanStalkManagedUpdates: permite a Elastic Beanstalk realizar actualizaciones regulares para sus entornos en funcionamiento.

El rol vinculado al servicio AWSServiceRoleForelasticBeanStalkManagedUpdates confía en que los siguientes servicios asuman el rol:

  • managedupdates.elasticbeanstalk.amazonaws.com

La directiva de permisos del rol vinculado al servicio AWSServiceRoleForelasticBeanStalkManagedUpdates contiene todos los permisos que Elastic Beanstalk necesita para actualizar acciones administradas en su nombre:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPassRoleToElasticBeanstalkAndDownstreamServices", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": [ "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "autoscaling.amazonaws.com", "elasticloadbalancing.amazonaws.com", "ecs.amazonaws.com", "cloudformation.amazonaws.com" ] } } }, { "Sid": "SingleInstanceAPIs", "Effect": "Allow", "Action": [ "ec2:releaseAddress", "ec2:allocateAddress", "ec2:DisassociateAddress", "ec2:AssociateAddress" ], "Resource": "*" }, { "Sid": "ECS", "Effect": "Allow", "Action": [ "ecs:RegisterTaskDefinition", "ecs:DeRegisterTaskDefinition", "ecs:List*", "ecs:Describe*" ], "Resource": "*" }, { "Sid": "ElasticBeanstalkAPIs", "Effect": "Allow", "Action": [ "elasticbeanstalk:*" ], "Resource": "*" }, { "Sid": "ReadOnlyAPIs", "Effect": "Allow", "Action": [ "cloudformation:Describe*", "cloudformation:List*", "ec2:Describe*", "autoscaling:Describe*", "elasticloadbalancing:Describe*" ], "Resource": "*" }, { "Sid": "ASG", "Effect": "Allow", "Action": [ "autoscaling:AttachInstances", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:DeleteScheduledAction", "autoscaling:DetachInstances", "autoscaling:PutNotificationConfiguration", "autoscaling:PutScalingPolicy", "autoscaling:PutScheduledUpdateGroupAction", "autoscaling:ResumeProcesses", "autoscaling:SuspendProcesses", "autoscaling:TerminateInstanceInAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": [ "arn:aws:autoscaling:*:*:launchConfiguration:*:launchConfigurationName/awseb-e-*", "arn:aws:autoscaling:*:*:autoScalingGroup:*:autoScalingGroupName/awseb-e-*" ] }, { "Sid": "CFN", "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:GetTemplate", "cloudformation:UpdateStack" ], "Resource": "arn:aws:cloudformation:*:*:stack/awseb-e-*" }, { "Sid": "EC2", "Effect": "Allow", "Action": [ "ec2:TerminateInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-id": "arn:aws:cloudformation:*:*:stack/awseb-e-*" } } }, { "Sid": "S3Obj", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:GetObjectVersionAcl", "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectVersionAcl" ], "Resource": "arn:aws:s3:::elasticbeanstalk-*/*" }, { "Sid": "S3Bucket", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:ListBucket", "s3:PutBucketPolicy" ], "Resource": "arn:aws:s3:::elasticbeanstalk-*" }, { "Sid": "CWL", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DeleteLogGroup", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/elasticbeanstalk/*" }, { "Sid": "ELB", "Effect": "Allow", "Action": [ "elasticloadbalancing:RegisterTargets", "elasticloadbalancing:DeRegisterTargets", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:RegisterInstancesWithLoadBalancer" ], "Resource": [ "arn:aws:elasticloadbalancing:*:*:targetgroup/awseb-*", "arn:aws:elasticloadbalancing:*:*:loadbalancer/awseb-e-*" ] } ] }

Debe configurar permisos para permitir a una entidad de IAM (como un usuario, grupo o función) crear, editar o eliminar la descripción de una función vinculada a un servicio. Para obtener más información, consulte Permisos de roles vinculados a servicios en la guía del usuario de IAM.

También puede usar una política administrada de AWS para proporcionar acceso completo a Elastic Beanstalk.

Creación de un rol vinculado a servicios para Elastic Beanstalk

No necesita crear manualmente un rol vinculado a un servicio. Cuando crea un entorno de Elastic Beanstalk mediante la API de Elastic Beanstalk, habilita las actualizaciones administradas y especifica AWSServiceRoleForElasticBeanstalkManagedUpdates como valor para la opción ServiceRoleForManagedUpdates del espacio de nombres aws:elasticbeanstalk:managedactions, Elastic Beanstalk crea el rol vinculado a servicios.

Cuando Elastic Beanstalk intenta crear el rol vinculado al servicio AWSServiceRoleForelasticBeanstalkManagedUpdates para su cuenta al crear un entorno, debe tener el permiso iam:CreateServiceLinkedRole. Si no tiene este permiso, se produce un error en la creación del entorno y verá un mensaje que explica el problema.

Como alternativa, otro usuario con permiso para crear roles vinculados a servicios puede utilizar IAM para crear previamente el rol vinculado al servicio con antelación. A continuación, puede crear su entorno incluso sin tener el permiso iam:CreateServiceLinkedRole.

Usted (u otro usuario) pueden utilizar la consola de IAM para crear un rol vinculado a servicios con el caso de uso de Elastic Beanstalk Managed Updates. En la CLI de IAM o la API de IAM, cree un rol vinculado a servicio con el nombre de servicio managedupdates.elasticbeanstalk.amazonaws.com. Para obtener más información, consulte Crear un rol vinculado a un servicio en la Guía del usuario de IAM. Si elimina este rol vinculado al servicio, puede utilizar este mismo proceso para volver a crear el rol.

Si elimina este rol vinculado a servicio y necesita crearlo de nuevo, puede utilizar el mismo proceso para volver a crear el rol en su cuenta. Cuando crea un entorno de Elastic Beanstalk mediante la API de Elastic Beanstalk, habilita las actualizaciones administradas y especifica AWSServiceRoleForElasticBeanstalkManagedUpdates como valor para la opción ServiceRoleForManagedUpdates del espacio de nombres aws:elasticbeanstalk:managedactions, Elastic Beanstalk crea la función vinculada a servicios de nuevo.

Edición de un rol vinculado a servicios para Elastic Beanstalk

Elastic Beanstalk no permite editar el rol vinculado al servicio AWSServiceRoleForelasticBeanStalkManagedUpdates. Después de crear un rol vinculado a un servicio, no puede cambiarle el nombre, ya que varias entidades pueden hacer referencia al mismo. Sin embargo, puede editar la descripción del rol utilizando IAM. Para obtener más información, consulte Editar un rol vinculado a un servicio en la guía del usuario de IAM.

Eliminación de un rol vinculado a servicios para Elastic Beanstalk

Si ya no necesita utilizar una característica o servicio que requiere un rol vinculado a un servicio, le recomendamos que elimine dicho rol. De esta forma no tiene una entidad no utilizada que no se monitorice ni mantenga de forma activa. Sin embargo, debe limpiar los recursos del rol vinculado al servicio antes de eliminarlo manualmente.

Limpiar un rol vinculado a un servicio

Antes de poder utilizar IAM para eliminar un rol vinculado a servicios, primero debe asegurarse de que los entornos de Elastic Beanstalk con actualizaciones administradas habilitadas utilizan un rol de servicio diferente o están terminados.

nota

Si el servicio Elastic Beanstalk está utilizando el rol vinculado al servicio cuando intenta terminar los entornos, podría producirse un error en la finalización. En tal caso, espere unos minutos e intente de nuevo la operación.

Para terminar un entorno Elastic Beanstalk que utiliza AWSServiceRoleForelasticBeanStalkManagedUpdates (consola)

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. Elija Actions y, a continuación, Terminate Environment.

  4. Utilice el cuadro de diálogo en pantalla para confirmar la terminación del entorno.

Consulte eb terminate para obtener más información sobre cómo terminar un entorno de Elastic Beanstalk mediante la CLI de EB.

Consulte TerminateEnvironment para obtener detalles sobre la terminación de un entorno de Elastic Beanstalk mediante la API.

Eliminar manualmente el rol vinculado al servicio

Utilice la consola de IAM, la CLI de IAM o la API de IAM para eliminar el rol vinculado al servicio AWSServiceRoleForelasticBeanStalkManagedUpdates. Para obtener más información, consulte Eliminar un rol vinculado a un servicio en la guía del usuario de IAM.

Regiones admitidas para roles vinculados a servicios de Elastic Beanstalk

Elastic Beanstalk admite el uso de roles vinculados a servicios en todas las regiones en las que el servicio está disponible. Para obtener más información, consulte Puntos de enlace y cuotas de AWS Elastic Beanstalk.