Controle el uso de plantillas de EC2 lanzamiento de Amazon en los grupos de Auto Scaling - Amazon EC2 Auto Scaling

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.

Controle el uso de plantillas de EC2 lanzamiento de Amazon en los grupos de Auto Scaling

Amazon EC2 Auto Scaling admite el uso de plantillas de EC2 lanzamiento de Amazon con sus grupos de Auto Scaling. Le recomendamos que permita a los usuarios crear grupos de Auto Scaling a partir de plantillas de lanzamiento, ya que al hacerlo pueden utilizar las funciones más recientes de Amazon EC2 Auto Scaling y AmazonEC2. Por ejemplo, los usuarios deben especificar una plantilla de lanzamiento para utilizar una política de instancias mixtas.

Puede usar la AmazonEC2FullAccess política para dar a los usuarios acceso completo para trabajar con los recursos de Amazon EC2 Auto Scaling, las plantillas de lanzamiento y otros EC2 recursos de su cuenta. O bien, puede crear sus propias IAM políticas personalizadas para conceder a los usuarios permisos detallados para trabajar con plantillas de lanzamiento, tal y como se describe en este tema.

Una política de ejemplo que puede personalizar para su propio uso

A continuación, se incluye un ejemplo de una política de permisos básica que puede personalizar para su propio uso. La política proporciona a los usuarios permisos para crear, actualizar y eliminar todos los grupos de escalado automático, pero solo si el grupo utiliza la etiqueta purpose=testing. A continuación, concede permiso para todas las acciones Describe. Como las acciones Describe no admiten permisos de nivel de recursos, debe especificarlas en una instrucción aparte sin condiciones.

IAMlas identidades (usuarios o roles) con esta política tienen permiso para crear o actualizar un grupo de Auto Scaling mediante una plantilla de lanzamiento porque también tienen permiso para usar la ec2:RunInstances acción.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }

Es posible que los usuarios que crean o actualicen grupos de escalado automático necesiten algunos permisos relacionados, tales como:

Estos permisos para que las acciones se completen al lanzar instancias se comprueban cuando el usuario interactúa con un grupo de escalado automático. Para obtener más información, consulte Validación de permisos para ec2:RunInstances y iam:PassRole.

En los ejemplos siguientes se muestran las declaraciones de políticas que se pueden utilizar para controlar el acceso de IAM los usuarios al utilizar las plantillas de lanzamiento.

Requerimiento de plantillas de lanzamiento que tengan una etiqueta específica

Al conceder ec2:RunInstances permisos, puede especificar que los usuarios solo puedan usar plantillas de lanzamiento con etiquetas específicas o específicas IDs para limitar los permisos al lanzar instancias con una plantilla de lanzamiento. También puede controlar los recursos AMI y otros recursos a los que cualquier persona que utilice plantillas de lanzamiento puede consultar y utilizar al lanzar instancias especificando permisos adicionales a nivel de recursos para la RunInstances llamada.

En el siguiente ejemplo, se restringen los permisos para que la acción ec2:RunInstances lance plantillas que se encuentran en la región especificada y que tienen la etiqueta purpose=testing. También permite a los usuarios acceder a los recursos especificados en una plantilla de lanzamiento: tipos de instanciasAMIs, volúmenes, pares de claves, interfaces de red y grupos de seguridad.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account-id:instance/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/*" ] } ] }

Para obtener más información sobre el uso de políticas basadas en etiquetas con plantillas de lanzamiento, consulta Controlar el acceso a las plantillas de lanzamiento con IAM permisos en la Guía del EC2 usuario de Amazon.

Requerimiento de una plantilla de lanzamiento y un número de versión

También puede usar IAM los permisos para exigir que se especifique una plantilla de lanzamiento y el número de versión de la plantilla de lanzamiento al crear o actualizar los grupos de Auto Scaling.

En el ejemplo siguiente, se permite a los usuarios crear y actualizar grupos de escalado automático solo si se especifican una plantilla de lanzamiento y el número de versión de la plantilla de lanzamiento. Si los usuarios con esta política omiten el número de versión para especificar la versión de la plantilla de lanzamiento $Latest o $Default, o intentan usar una configuración de lanzamiento en su lugar, se producirá un error en la acción.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }

Exija el uso de la versión 2 del servicio de metadatos de instancia (IMDSv2)

Para mayor seguridad, puede configurar los permisos de sus usuarios para que requieran el uso de una plantilla de lanzamiento que lo requieraIMDSv2. Para obtener más información, consulta Cómo configurar el servicio de metadatos de la instancia en la Guía del EC2 usuario de Amazon.

En el siguiente ejemplo, se especifica que los usuarios no pueden ejecutar la ec2:RunInstances acción a menos que la instancia también esté habilitada para requerir el uso de IMDSv2 (lo que se indica mediante"ec2:MetadataHttpTokens":"required").

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
sugerencia

Para forzar el lanzamiento de instancias de escalado automático de reemplazo que utilicen una nueva plantilla de lanzamiento o una nueva versión de una plantilla de lanzamiento con las opciones de metadatos de instancia configuradas, puede iniciar la actualización de instancias. Para obtener más información, consulte Actualización de las instancias de escalado automático.

Restringir el acceso a EC2 los recursos de Amazon

El siguiente ejemplo controla la configuración de las instancias que un usuario puede lanzar restringiendo el acceso a EC2 los recursos de Amazon. Para especificar los permisos de nivel de recurso para los recursos especificados en una plantilla de lanzamiento, debe incluir los recursos en la instrucción de la acción RunInstances.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account-id:launch-template/*", "arn:aws:ec2:region::image/ami-04d5cc9b88example", "arn:aws:ec2:region:account-id:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/sg-903004f88example" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }

En este ejemplo, hay dos instrucciones:

  • La primera afirmación exige que los usuarios lancen instancias en una subred específica (subnet-1a2b3c4d), utilizando un grupo de seguridad específico (sg-903004f88example) y un AMI (ami-04d5cc9b88example) específico. También permite a los usuarios acceder a los recursos especificados en una plantilla de lanzamiento: interfaces de red, pares de claves y volúmenes.

  • La segunda instrucción permite a los usuarios lanzar instancias utilizando únicamente los tipos de instancia t2.micro y t2.small, que usted podría utilizar para controlar costos.

    Sin embargo, tenga en cuenta que actualmente no existe una forma eficaz de impedir por completo que los usuarios que tienen permiso para inicializar instancias con una plantilla de inicialización inicien otros tipos de instancias. Esto se debe a que un tipo de instancia especificado en una plantilla de inicialización se puede anular para usar tipos de instancia que se definen mediante la selección del tipo de instancia basada en atributos.

Para obtener una lista completa de los permisos a nivel de recursos que puedes usar para controlar la configuración de las instancias que un usuario puede lanzar, consulta Acciones, recursos y claves de condición de Amazon EC2 en la Referencia de autorización de servicios.

Permisos necesarios para etiquetar instancias y volúmenes

En el siguiente ejemplo, se permite a los usuarios etiquetar instancias y volúmenes en el momento de la creación. Esta política es necesaria si hay etiquetas especificadas en la plantilla de lanzamiento. Para obtener más información, consulta Otorgar permiso para etiquetar recursos durante la creación en la Guía del EC2 usuario de Amazon.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:region:account-id:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }

Permisos adicionales de la plantilla de lanzamiento

Debe conceder permisos a los usuarios de la consola para las acciones ec2:DescribeLaunchTemplates y ec2:DescribeLaunchTemplateVersions. Sin estos permisos, los datos de la plantilla de lanzamiento no se pueden cargar en el asistente de grupos de Auto Scaling, y los usuarios no pueden completar el asistente para iniciar instancias con una plantilla de lanzamiento. Puede especificar estas acciones adicionales en el Action elemento de una declaración de IAM política.

Validación de permisos para ec2:RunInstances y iam:PassRole

Los usuarios pueden especificar qué versión de una plantilla de lanzamiento utiliza su grupo de escalado automático. Según sus permisos, puede ser una versión numerada específica o la versión $Latest o $Default de la plantilla de lanzamiento. Si es la última, tenga especial cuidado. Esto puede anular los permisos para ec2:RunInstances y iam:PassRole que pretendía restringir.

En esta sección se explica el escenario en el que se utiliza la versión más reciente o la versión predeterminada de la plantilla de lanzamiento con un grupo de escalado automático.

Cuando un usuario llama a Amazon EC2 Auto Scaling CreateAutoScalingGroup UpdateAutoScalingGroup StartInstanceRefreshAPIs, o, comprueba sus permisos con la versión de la plantilla de lanzamiento que sea la última o la versión predeterminada en ese momento antes de continuar con la solicitud. Esto valida los permisos de las acciones que se deben completar al lanzar instancias, como las acciones ec2:RunInstances y iam:PassRole. Para ello, emitimos una llamada de EC2 RunInstancesprueba de Amazon para validar si el usuario tiene los permisos necesarios para la acción, sin necesidad de realizar la solicitud. Cuando se devuelve una respuesta, Amazon EC2 Auto Scaling la lee. Si los permisos del usuario no permiten una acción determinada, Amazon EC2 Auto Scaling no aceptará la solicitud y devolverá al usuario un mensaje de error con información sobre el permiso faltante.

Una vez finalizadas la verificación y la solicitud iniciales, cada vez que se lanzan instancias, Amazon EC2 Auto Scaling las lanza con la versión más reciente o predeterminada, incluso si ha cambiado, utilizando los permisos de su función vinculada al servicio. Esto significa que un usuario que utilice la plantilla de lanzamiento podría actualizarla para transferir un IAM rol a una instancia aunque no tenga el iam:PassRole permiso.

Utilice la clave de condición autoscaling:LaunchTemplateVersionSpecified si desea limitar quién tiene acceso a los grupos de configuración para usar la versión $Latest o $Default. Esto garantiza que el grupo Auto Scaling solo acepte una versión numerada específica cuando un usuario llame a la tecla CreateAutoScalingGroup y UpdateAutoScalingGroupAPIs. Para ver un ejemplo que muestra cómo añadir esta clave de condición a una IAM política, consulteRequerimiento de una plantilla de lanzamiento y un número de versión.

En el caso de los grupos de escalado automático que estén configurados para usar la versión de la plantilla de lanzamiento $Latest o $Default, considere limitar quién puede crear y gestionar versiones de la plantilla de lanzamiento, incluida la acción ec2:ModifyLaunchTemplate que permite al usuario especificar la versión predeterminada de la plantilla de lanzamiento. Para obtener más información, consulta Cómo controlar los permisos de control de versiones en la Guía del EC2 usuario de Amazon.

Para obtener más información sobre los permisos para ver, crear y eliminar plantillas de lanzamiento y versiones de plantillas de lanzamiento, consulta Controlar el acceso a las plantillas de lanzamiento con IAM permisos en la Guía del EC2 usuario de Amazon.

Para obtener más información sobre los permisos a nivel de recursos que puedes usar para controlar el acceso a la RunInstances llamada, consulta Acciones, recursos y claves de condición de Amazon EC2 en la Referencia de autorización de servicio.