Auto Scaling permite categorizar y controlar el acceso a los grupos de escalado mediante etiquetas. Es posible otorgar permisos detallados a grupos de escalado individuales o a varios grupos que comparten una etiqueta específica. Este tema explica cómo utilizar la autenticación basada en etiquetas para gestionar los permisos de usuarios de RAM, lo cual mejora la eficiencia de la administración y reduce el riesgo de fugas de datos.
Contexto
Una etiqueta es un identificador para un recurso en la nube. Las etiquetas permiten categorizar, buscar y agrupar recursos en la nube con las mismas características desde diferentes dimensiones. Para obtener más información, consulte Tags.
Resource Access Management (RAM) permite gestionar identidades de usuarios y controlar el acceso y las operaciones sobre sus recursos en la nube mediante políticas. Para obtener más información, consulte What is RAM?.
Al utilizar etiquetas como condiciones en una política de Resource Access Management (RAM), se implementa un control detallado sobre Auto Scaling.
La siguiente figura muestra cómo usar etiquetas para gestionar los permisos de acceso y operación de los usuarios de RAM sobre los recursos, proceso conocido como autenticación basada en etiquetas.
API que no admiten autenticación por etiquetas
Después de adjuntar una política de autenticación basada en etiquetas a un usuario de RAM, esta autenticación no se admite cuando dicho usuario llama a las siguientes operaciones de API para gestionar Auto Scaling.
|
API |
Compatibilidad con autenticación por etiquetas |
|
DescribeRegions |
No |
|
Para tareas programadas no asociadas a un grupo de escalado:
|
No |
|
Para tareas activadas por eventos no asociadas a un grupo de escalado:
|
No |
Escenario de ejemplo
Este tema utiliza el siguiente escenario para mostrar cómo implementar la autenticación basada en etiquetas.
Suponga que ha creado dos grupos de escalado para desarrollo de videojuegos. Cada grupo de escalado tiene etiquetas de entorno y equipo. Debe otorgar a un usuario de RAM permisos específicos sobre los siguientes grupos de escalado:
|
Grupo de escalado |
Nombre |
Etiqueta |
|
Scaling group 1 |
asg-001 |
|
|
Scaling group 2 |
asg-002 |
|
Los requisitos específicos de control de acceso son los siguientes:
Escenario 1: No se pueden crear grupos de escalado sin etiquetas. El grupo de escalado 1 solo se crea correctamente si se le agregan las etiquetas
environment:testyteam:game1durante su creación.Escenario 2: Al consultar grupos de escalado, solo se visualizan los recursos del grupo de escalado 1, que tiene vinculadas las etiquetas
environment:testyteam:game1.Escenario 3: Solo se permite gestionar recursos en el grupo de escalado 1 (con las etiquetas
environment:testyteam:game1), pero no los recursos del grupo de escalado 2 (con las etiquetasenvironment:devyteam:game2).
Procedimiento
Antes de comenzar, asegúrese de haber creado un usuario de RAM. Para obtener más información, consulte Create a RAM user.
-
Cree dos grupos de escalado.
Para obtener más información, consulte Configure scaling groups. Consulte Example scenario para conocer los detalles sobre los grupos de escalado.
Inicie sesión en la consola de RAM.
-
Cree una política personalizada.
Para obtener más información, consulte Create a custom policy.
Es posible establecer varias condiciones de etiqueta para recursos en la nube dentro del bloque
Conditionde una política para restringir los permisos de operación sobre recursos de Auto Scaling. Condiciones de autenticación basadas en etiquetas compatibles:Condición basada en etiquetas
Descripción
acs:RequestTagComprueba si la solicitud incluye una etiqueta específica.
Si una solicitud de API no incluye ningún parámetro de etiqueta, el uso de
acs:RequestTagprovocará un error de autenticación.acs:ResourceTagComprueba si el recurso especificado en la solicitud contiene una etiqueta específica.
Si utiliza
acs:ResourceTagen una solicitud de API que no contiene un parámetro de ID de recurso, la autenticación fallará.-
Escenario 1: Aplicar etiquetas específicas durante la creación del grupo de escalado
Es decir, el grupo de escalado 1 solo se crea correctamente si se le vinculan las etiquetas
environment:testyteam:game1durante su creación.La siguiente política corresponde a este escenario:
{ "Effect": "Allow", "Action": "ess:Create*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Escenario 2: Permitir que los usuarios vean solo el grupo de escalado 1
Esto significa que, si agrega las etiquetas
environment:testyteam:game1al grupo de escalado 1, solo se devuelven los recursos de dicho grupo al consultar los grupos de escalado.La siguiente política corresponde a este escenario:
{ "Effect": "Allow", "Action": "ess:Describe*", "Resource": "*", "Condition": { "StringEquals": { "acs:RequestTag/environment": "test", "acs:RequestTag/team": "game1" } } } -
Escenario 3: Permitir que los usuarios gestionen solo el grupo de escalado 1 y denegar el acceso al grupo de escalado 2
Por ejemplo, el grupo de escalado 1 tiene vinculadas las etiquetas
environment:testyteam:game1, mientras que el grupo de escalado 2 tiene las etiquetasenvironment:devyteam:game2.La siguiente política corresponde a este escenario:
{ "Version": "1", "Statement": [ { "Action": "ess:*", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "test", "acs:ResourceTag/team": "game1" } } }, { "Action": "ess:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "acs:ResourceTag/environment": "dev", "acs:ResourceTag/team": "game2" } } }, { "Effect": "Allow", "Action": [ "ess:DescribeRegions", "ess:CreateScheduledTask", "ess:ModifyScheduledTask", "ess:DescribeScheduledTasks", "ess:DeleteScheduledTask", "ess:CreateAlarm", "ess:DescribeAlarms", "ess:ModifyAlarm", "ess:EnableAlarm", "ess:DeleteAlarm" ], "Resource": "*" } ] }
-
-
Adjunte la política personalizada al usuario de RAM.
Para obtener más información, consulte Grant permissions to a RAM user.
-
Compruebe que la política surta efecto.
-
Verificación del Escenario 1 mediante la creación del grupo de escalado 1
El grupo de escalado 1 tiene las etiquetas
environment:testyteam:game1, por lo que se crea correctamente.Si crea el grupo de escalado sin las etiquetas especificadas, se deniega la creación debido a permisos insuficientes. Ocurre un error diferente si Auto Scaling carece de los permisos necesarios de OpenAPI: se devuelve el error
Forbidden.Unauthorizedcon el mensaje: The user has not fully authorized the OpenAPI interface for ESS. Please authorize and try again. En este caso, otorgue los permisos requeridos y reintente la operación.
-
Verificación del Escenario 2 mediante la consulta de grupos de escalado
Para un grupo de escalado que tiene las etiquetas
environment:testyteam:game1, aún puede recuperar su información al realizar una consulta sin filtrar por etiquetas.Si consulta un grupo de escalado distinto al grupo de escalado 1 que no tenga las etiquetas
environment:testyteam:game1, la consulta no devuelve resultados.Si no especifica un grupo de escalado y busca únicamente las etiquetas
environment:testyteam:game1, la consulta devuelve todos los grupos de escalado que tengan estas etiquetas.
-
Verificación del Escenario 3 mediante la eliminación de grupos de escalado
Si el grupo de escalado 1 tiene las etiquetas
environment:testyteam:game1, puede eliminar el grupo de escalado.Si un grupo de escalado no está asociado con las etiquetas
environment:testyteam:game1, o si tiene otras etiquetas, se muestra un mensaje que indica que no tiene permiso para eliminar el grupo de escalado.
-
Documentos relacionados
Para crear, consultar o eliminar un grupo de escalado llamando a una operación de API, consulte CreateScalingGroup, DescribeScalingGroups o DeleteScalingGroup.
Para crear una política personalizada llamando a una operación de API, consulte CreatePolicy.
Para otorgar permisos a un usuario de RAM llamando a una operación de API, consulte AttachPolicyToUser.
Si tiene varios grupos de escalado, puede usar un resource group para gestionarlos. Para obtener más información, consulte Use resource groups to manage scaling groups.
Si desea utilizar autenticación a nivel de recurso para la administración delegada de Auto Scaling, consulte Manage Auto Scaling by using resource-level authentication.