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 la plantilla de lanzamiento de Amazon EC2 en los grupos de Auto Scaling
Amazon EC2 Auto Scaling admite el uso de plantillas de lanzamiento de Amazon EC2 con los grupos de Auto Scaling. Le recomendamos que permita a los usuarios crear grupos de Auto Scaling a partir de plantillas de lanzamiento, ya que de esta forma podrán utilizar las características más recientes de Amazon EC2 Auto Scaling y Amazon EC2. Por ejemplo, los usuarios deben especificar una plantilla de lanzamiento para utilizar una política de instancias mixtas.
Puede utilizar la política AmazonEC2FullAccess
para proporcionar a los usuarios acceso completo para trabajar con recursos de Amazon EC2 Auto Scaling, plantillas de lanzamiento y otros recursos de EC2 en su cuenta. O bien puede crear sus propias políticas de IAM personalizadas para conceder a los usuarios permisos detallados que les permitan 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
. A continuación, concede permiso para todas las acciones purpose=testing
Describe
. Como las acciones Describe
no admiten permisos de nivel de recursos, debe especificarlas en una instrucción aparte sin condiciones.
Las identidades de IAM (usuarios o roles) con esta política tienen permiso para crear o actualizar un grupo de escalado automático mediante una plantilla de lanzamiento porque también tienen permiso para usar la acción ec2:RunInstances
.
{ "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:
-
ec2: CreateTags — Para añadir etiquetas a las instancias y los volúmenes al crearlos, el usuario debe tener el
ec2:CreateTags
permiso establecido en una política de IAM. Para obtener más información, consulte Permisos necesarios para etiquetar instancias y volúmenes. -
iam: PassRole — Para lanzar instancias de EC2 a partir de una plantilla de lanzamiento que contenga un perfil de instancia (un contenedor para un rol de IAM), el usuario también debe tener el
iam:PassRole
permiso establecido en una política de IAM. Para obtener más información y una política de IAM de ejemplo, consulte Rol de IAM para aplicaciones que se ejecuten en instancias de Amazon EC2. -
ssm: GetParameters — Para lanzar instancias de EC2 a partir de una plantilla de lanzamiento que utilice un AWS Systems Manager parámetro, el usuario también debe tener el permiso establecido en una política de IAM.
ssm:GetParameters
Para obtener más información, consulte Utilice AWS Systems Manager parámetros en lugar de AMI IDs en plantillas de lanzamiento.
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.
Los siguientes ejemplos muestran instrucciones de política que puede utilizar para controlar el acceso que los usuarios de IAM tienen para usar plantillas de lanzamiento.
Temas
- Requerimiento de plantillas de lanzamiento que tengan una etiqueta específica
- Requerimiento de una plantilla de lanzamiento y un número de versión
- Requerimiento del uso del servicio de metadatos de instancia, versión 2 (IMDSv2)
- Restricción del acceso a recursos de Amazon EC2
- Permisos necesarios para etiquetar instancias y volúmenes
- Permisos adicionales de la plantilla de lanzamiento
- Validación de permisos para ec2:RunInstances y iam:PassRole
- Recursos relacionados
Requerimiento de plantillas de lanzamiento que tengan una etiqueta específica
Al conceder permisos ec2:RunInstances
, puede especificar que los usuarios solo puedan usar plantillas de lanzamiento con etiquetas o ID específicos para limitar los permisos al lanzar instancias con una plantilla de lanzamiento. También puede controlar la AMI y otros recursos a los que cualquier persona que utilice plantillas de lanzamiento puede hacer referencia y utilizar al lanzar instancias especificando los permisos adicionales a nivel de recursos para la llamada RunInstances
.
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
. También permite a los usuarios acceder a los recursos especificados en una plantilla de lanzamiento: AMI, tipos de instancias, volúmenes, pares de claves, interfaces de red y grupos de seguridad. purpose=testing
{ "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, consulte Controlar el acceso a las plantillas de lanzamiento con permisos de IAM en la Guía del usuario de Amazon EC2.
Requerimiento de una plantilla de lanzamiento y un número de versión
También puede usar los permisos de IAM 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 escalado automático.
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" } } } ] }
Requerimiento del uso del servicio de metadatos de instancia, versión 2 (IMDSv2)
Para mayor seguridad, puede establecer los permisos de los usuarios para exigir el uso de una plantilla de lanzamiento que requiera IMDSv2. Para obtener más información, consulte Configuración del servicio de metadatos de la instancia en la Guía del usuario de Amazon EC2.
En el siguiente ejemplo se especifica que los usuarios no pueden llamar a la acción ec2:RunInstances
, a no ser que la instancia también requiera el uso de IMDSv2 (indicado por "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.
Restricción del acceso a recursos de Amazon EC2
En el siguiente ejemplo se controla la configuración de las instancias que un usuario puede lanzar al restringir el acceso a los recursos de Amazon EC2. 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 instrucción requiere que los usuarios inicien instancias en una subred específica (
), utilizando un grupo de seguridad específico (subnet-1a2b3c4d
) y una AMI específica (sg-903004f88example
). 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.ami-04d5cc9b88example
-
La segunda instrucción permite a los usuarios lanzar instancias utilizando únicamente los tipos de instancia
yt2.micro
, que usted podría utilizar para controlar costos.t2.small
Sin embargo, tenga en cuenta que actualmente no existe una forma eficaz de impedir por completo que los usuarios que tienen permiso para lanzar instancias con una plantilla de lanzamiento lancen otros tipos de instancias. Esto se debe a que un tipo de instancia especificado en una plantilla de lanzamiento 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 de nivel de recurso que puede utilizar para controlar la configuración de las instancias que un usuario puede lanzar, consulte Acciones, recursos y claves de condición para Amazon EC2 en la Referencia de autorizaciones de servicio.
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, consulte Conceder permiso para etiquetar recursos durante la creación en la Guía del usuario de Amazon EC2.
{ "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 elemento Action
de una instrucción de política de IAM.
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 las API de CreateAutoScalingGroup
, UpdateAutoScalingGroup
, o StartInstanceRefresh
, Amazon EC2 Auto Scaling 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 prueba a Amazon RunInstancesEC2 para validar si el usuario tiene los permisos necesarios para la acción, sin necesidad de realizar la solicitud. Cuando se devuelve una respuesta, la lee Amazon EC2 Auto Scaling. Si los permisos de usuario no permiten una acción determinada, Amazon EC2 Auto Scaling falla la solicitud y devuelve un error al usuario que contiene información sobre el permiso que falta.
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 rol vinculado al servicio. Esto significa que un usuario que utiliza la plantilla de lanzamiento podría posiblemente actualizarla para transferir un rol de IAM a una instancia, incluso si no tiene el permiso iam:PassRole
.
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 de escalado automático solo acepte una versión numerada específica cuando un usuario llame a las API CreateAutoScalingGroup
y UpdateAutoScalingGroup
. Para ver un ejemplo que muestre cómo añadir esta clave de condición a una política de IAM, consulte Requerimiento 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, consulte Control de permisos de control de versiones en la Guía del usuario de Amazon EC2.
Recursos relacionados
Para obtener más información sobre los permisos para ver, crear y eliminar plantillas de lanzamiento y versiones de plantillas de lanzamiento, consulte Controlar el acceso a las plantillas de lanzamiento con permisos de IAM en la Guía del usuario de Amazon EC2.
Para obtener más información acerca de los permisos de nivel de recurso que puede utilizar para controlar el acceso a la llamada de RunInstances
, consulte Acciones, recursos y claves de condición de Amazon EC2 en la Referencia de autorizaciones de servicio.