Ejemplos de políticas basadas en identidades de Amazon EC2 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.

Ejemplos de políticas basadas en identidades de Amazon EC2 Auto Scaling

De forma predeterminada, un usuario nuevo no Cuenta de AWS tiene permisos para hacer nada. Un administrador de IAM debe crear y asignar políticas de IAM que concedan permiso de identidad de IAM (como a los usuarios o roles) para realizar acciones de API de Amazon EC2 Auto Scaling.

Para obtener más información acerca de cómo crear una política de IAM con estos documentos de políticas de JSON de ejemplo, consulte Creación de políticas en la pestaña JSON en la Guía del usuario de IAM.

A continuación se muestra un ejemplo de una política de permisos.

{ "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*", "Resource": "*" }] }

Esta política de ejemplo proporciona a los usuarios permisos para crear, modificar y eliminar grupos de escalado automático, pero solo si el grupo utiliza la etiqueta purpose=testing. Como las acciones Describe no admiten permisos de nivel de recursos, debe especificarlas en una instrucción aparte sin condiciones. Para lanzar instancias con una plantilla de lanzamiento, el usuario también debe tener el permiso ec2:RunInstances. Para obtener más información, consulte Controle el uso de la plantilla de lanzamiento de Amazon EC2 en los grupos de Auto Scaling.

nota

Puede crear sus propias políticas de IAM personalizadas para permitir o denegar los permisos de las identidades de IAM (grupos o roles) para llevar a cabo acciones de Amazon EC2 Auto Scaling. Puede conectar estas políticas personalizadas a las identidades de IAM que necesiten los permisos especificados. A continuación se muestran algunos ejemplos de permisos para algunos casos de uso comunes.

Algunas acciones de la API de Amazon EC2 Auto Scaling le permiten incluir en la política grupos de Auto Scaling específicos que la acción puede crear o modificar. Puede restringir los recursos de destino para estas acciones especificando los ARN de grupo de escalado automático individuales. Sin embargo, como práctica recomendada, se sugiere utilizar políticas basadas en etiquetas que permitan o denieguen acciones en grupos de Auto Scaling con una etiqueta específica.

Control del tamaño de los grupos de escalado automático que se pueden crear

La siguiente política concede a los usuarios permisos para crear y actualizar todos los grupos de escalado automático con la etiqueta environment=development, siempre y cuando no especifiquen un tamaño mínimo inferior a 1 ni un tamaño máximo superior a 10. Siempre que sea posible, utilice etiquetas que lo ayuden a controlar el acceso a los grupos de escalado automático de su cuenta.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "development" }, "NumericGreaterThanEqualsIfExists": { "autoscaling:MinSize": 1 }, "NumericLessThanEqualsIfExists": { "autoscaling:MaxSize": 10 } } }] }

Como alternativa, si no utiliza etiquetas para controlar el acceso a los grupos de escalado automático, puede utilizar ARN para identificar los grupos de escalado automático a los que se aplica la política de IAM.

Un grupo de Auto Scaling tiene el siguiente ARN.

"Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/my-asg"

También puede especificar varios ARN incluyéndolos en una lista. Para obtener más información acerca de cómo especificar los ARN de los recursos de Amazon EC2 Auto Scaling en el elemento Resource, consulte Recursos de políticas para Amazon EC2 Auto Scaling.

Controlar qué claves de etiqueta y valores de etiqueta se pueden utilizar

También puede utilizar condiciones en las políticas de IAM para controlar las claves de etiqueta y los valores de etiqueta que se pueden aplicar a los grupos de escalado automático. A fin de conceder a los usuarios permisos para crear o etiquetar un grupo de escalado automático únicamente si proporcionan etiquetas específicas, utilice la clave de condición aws:RequestTag. Para permitir únicamente claves de etiqueta específicas, utilice la clave de condición aws:TagKeys con el modificador ForAllValues.

La siguiente política requiere que los solicitantes especifiquen una etiqueta con la clave environment en la solicitud. El valor "?*" exige que haya algún valor para la clave de etiqueta. Para utilizar un valor comodín, debe utilizar el operador de condición StringLike.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringLike": { "aws:RequestTag/environment": "?*" } } }] }

La política siguiente especifica que los solicitantes solo pueden etiquetar grupos de escalado automático con las etiquetas purpose=webserver y cost-center=cc123, y permite solo las etiquetas purpose y cost-center (no se pueden especificar otras etiquetas).

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "webserver", "aws:RequestTag/cost-center": "cc123" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["purpose", "cost-center"] } } }] }

La siguiente política requiere que los solicitantes especifiquen al menos una etiqueta en la solicitud y permite únicamente las claves cost-center y owner.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateOrUpdateTags" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["cost-center", "owner"] } } }] }
nota

En cuanto a las condiciones, la clave de condición no distingue entre mayúsculas y minúsculas, mientras que el valor de condición sí. Por lo tanto, para aplicar la distinción entre mayúsculas y minúsculas de una clave de etiqueta, utilice la clave de condición aws:TagKeys, donde la clave de etiqueta se especifica como valor en la condición.

Control de los grupos de escalado automático que se pueden eliminar

La siguiente política permite eliminar un grupo de escalado automático solo si el grupo tiene la etiqueta environment=development.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "development" } } }] }

Como alternativa, si no utiliza claves de condición para controlar el acceso a los grupos de escalado automático, puede especificar los ARN de los recursos del elemento Resource para controlar el acceso.

La siguiente política otorga a los usuarios permisos para usar la acción de la API DeleteAutoScalingGroup, pero solo para los grupos de escalado automático cuyo nombre comience con devteam-.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeleteAutoScalingGroup", "Resource": "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" }] }

También puede especificar varios ARN incluyéndolos en una lista. Al incluir el UUID, se garantiza que el acceso se conceda al grupo de escalado automático especificado. El UUID de un grupo nuevo es distinto del UUID de un grupo eliminado que tenía el mismo nombre.

"Resource": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-1", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-2", "arn:aws:autoscaling:region:account-id:autoScalingGroup:uuid:autoScalingGroupName/devteam-3" ]

Controlar qué políticas de escalado se pueden eliminar

La siguiente política permite la acción DeletePolicy para eliminar una política de escalado. Sin embargo, también deniega la acción si el grupo de escalado automático sobre el que se actúa tiene la etiqueta environment=production. Siempre que sea posible, utilice etiquetas que lo ayuden a controlar el acceso a los grupos de escalado automático de su cuenta.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "autoscaling:DeletePolicy", "Resource": "*" }, { "Effect": "Deny", "Action": "autoscaling:DeletePolicy", "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "production" } } }] }

Control del acceso a las acciones de actualización de instancias

La política siguiente concede permisos para iniciar, revertir y cancelar una actualización de instancias solo si el grupo de escalado automático sobre el que se actúa tiene la etiqueta environment=testing. Como las acciones Describe no admiten permisos de nivel de recursos, debe especificarlas en una instrucción aparte sin condiciones.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "autoscaling:StartInstanceRefresh", "autoscaling:CancelInstanceRefresh", "autoscaling:RollbackInstanceRefresh" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/environment": "testing" } } }, { "Effect": "Allow", "Action": "autoscaling:DescribeInstanceRefreshes", "Resource": "*" }] }

Para especificar la configuración deseada en la llamada StartInstanceRefresh, es posible que los usuarios necesiten algunos permisos relacionados, tales como:

Creación de un rol vinculado al servicio

Amazon EC2 Auto Scaling requiere permisos para crear un rol vinculado a un servicio la primera vez que un usuario suyo invoque las acciones de la API Auto Scaling de Amazon Cuenta de AWS EC2. Si el rol vinculado a servicios aún no existe, Amazon EC2 Auto Scaling lo crea en su cuenta. La función vinculada al servicio otorga permisos a Amazon EC2 Auto Scaling para que pueda Servicios de AWS llamar a otras personas en su nombre.

Para que la creación automática de roles se realice correctamente, los usuarios deben disponer de permisos para la acción iam:CreateServiceLinkedRole.

"Action": "iam:CreateServiceLinkedRole"

A continuación, se muestra un ejemplo de una política de permisos que permite a un usuario crear un rol vinculado a servicios de Amazon EC2 Auto Scaling para Amazon EC2 Auto Scaling.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "arn:aws:iam::*:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling", "Condition": { "StringLike": { "iam:AWSServiceName":"autoscaling.amazonaws.com" } } }] }

Controle qué función vinculada al servicio puede transferirse (mediante) PassRole

Los usuarios que creen o actualicen grupos de escalado automático y especifiquen un rol de sufijo personalizado vinculado al servicio en la solicitud necesitan el permiso iam:PassRole.

Puedes usar el iam:PassRole permiso para proteger la seguridad de las claves administradas por tus AWS KMS clientes si permites que diferentes roles vinculados al servicio accedan a diferentes claves. En función de las necesidades de su organización, es posible que tenga una clave para el equipo de desarrollo, otra para el equipo de control de calidad y otra para el equipo de finanzas. En primer lugar, cree un rol vinculado al servicio que tenga acceso a la clave requerida, por ejemplo, un rol vinculado al servicio denominado. AWSServiceRoleForAutoScaling_devteamkeyaccess A continuación, conecte la política a una identidad de IAM, como un usuario o un rol.

La siguiente política concede permisos a los usuarios para pasar el rol AWSServiceRoleForAutoScaling_devteamkeyaccess a cualquier grupo de escalado automático cuyo nombre comience con devteam-. Si la identidad de IAM que crea el grupo de escalado automático intenta especificar un rol vinculado a un servicio diferente, recibirá un error. Si eligen no especificar un rol vinculado a un servicio, se usará el rol predeterminado en su lugar. AWSServiceRoleForAutoScaling

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling_devteamkeyaccess", "Condition": { "StringEquals": { "iam:PassedToService": [ "autoscaling.amazonaws.com" ] }, "StringLike": { "iam:AssociatedResourceARN": [ "arn:aws:autoscaling:region:account-id:autoScalingGroup:*:autoScalingGroupName/devteam-*" ] } } }] }

Para obtener más información acerca de los roles vinculados a servicios con un sufijo personalizado, consulte Roles vinculados a servicios de Amazon EC2 Auto Scaling.