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 Amazon EC2. 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 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 EC2 instancias desde 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 Función de IAM para aplicaciones que se ejecutan en instancias de Amazon EC2. -
ssm: GetParameters — Para lanzar EC2 instancias desde una plantilla de lanzamiento que utilice un AWS Systems Manager parámetro, el usuario también debe tener el
ssm:GetParameters
permiso establecido en una política de IAM. Para obtener más información, consulte Utilice AWS Systems Manager parámetros en lugar de AMI IDs en las 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
- Exija el uso de la versión 2 del servicio de metadatos de instancias () IMDSv2
- Restringir el acceso a EC2 los recursos de Amazon
- 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 ec2:RunInstances
permisos, puedes 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 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: tipos de instancias AMIs, 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 las plantillas de lanzamiento, consulte Controlar el acceso a las plantillas de lanzamiento con permisos de IAM en la Guía EC2 del usuario de Amazon.
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" } } } ] }
Exija el uso de la versión 2 del servicio de metadatos de instancias () IMDSv2
Para mayor seguridad, puedes configurar los permisos de tus usuarios para que requieran el uso de una plantilla de lanzamiento que lo requiera IMDSv2. 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
Los siguientes ejemplos muestran cómo utilizar los permisos a nivel de recursos y los recursos etiquetados para restringir el acceso a los recursos de Amazon EC2 .
Ejemplo 1: Restringir los lanzamientos de EC2 instancias de Amazon a recursos y tipos de instancia específicos
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 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 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.
Ejemplo 2: Requerir etiquetas y restringir el acceso a los recursos para el lanzamiento de EC2 instancias de Amazon
El siguiente ejemplo de política muestra cómo puedes usar las condiciones de tu política basada en la identidad para controlar el acceso a los EC2 recursos de Amazon en función de las etiquetas.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:
us-east-1
:555555555555
:instance/*" ], "Condition": { "StringEquals": { "aws:RequestTag/owner": "dev" } } }, { "Sid": "InstanceBoundaries" "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
::image/*", "arn:aws:ec2:us-east-1
:555555555555
:subnet/*", "arn:aws:ec2:us-east-1
:555555555555
:network-interface/*" ], }, { "Sid": "InstanceResourceTags", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1
:555555555555
:key-pair/*", "arn:aws:ec2:us-east-1
:555555555555
:security-group/*", "arn:aws:ec2:us-east-1
:555555555555
:launch-template/*" "arn:aws:ec2:us-east-1
:555555555555
:volume/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } } ] }
En este ejemplo, hay tres afirmaciones:
-
La primera sentencia permite a los usuarios lanzar instancias en la región especificada solo si
owner=dev
se utiliza una etiqueta con en la solicitud. -
La segunda sentencia proporciona a los usuarios acceso a la AMI, la subred y la interfaz de red en la región especificada.
-
La tercera sentencia permite a los usuarios lanzar instancias en la región especificada con un key pair, un grupo de seguridad, una plantilla de lanzamiento y un volumen existentes que tengan la etiqueta
purpose=testing
.
Para obtener más información, consulte Controlar el acceso a AWS los recursos mediante etiquetas en la Guía del usuario de IAM.
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 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 Amazon EC2 Auto Scaling CreateAutoScalingGroup
UpdateAutoScalingGroup
StartInstanceRefresh
APIs, 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 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 Auto Scaling solo acepte una versión numerada específica cuando un usuario llame a la tecla CreateAutoScalingGroup
y UpdateAutoScalingGroup
APIs. 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, consulta Cómo controlar los permisos de control de versiones en la Guía del EC2 usuario de Amazon.
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 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.