Control de acceso basado en atributos con etiquetas y AWS Organizations - AWS Organizations

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.

Control de acceso basado en atributos con etiquetas y AWS Organizations

El Control de acceso basado en atributos le permite usar atributos administrados por el administrador, como etiquetas adjuntas tanto a recursos AWS como identidades AWS para controlar el acceso a esos recursos. Por ejemplo, puede especificar que un usuario pueda tener acceso a un recurso cuando tanto el usuario como el recurso tengan el mismo valor para una determinada etiqueta.

Los recursos etiquetables AWS Organizations incluyen Cuentas de AWS, el nodo raíz, las unidades organizativas o políticas de la organización. Al adjuntar etiquetas a recursos de Organizations, puede utilizar esas etiquetas para controlar quién puede tener acceso a esos recursos. Esto se hace agregando elementos Condition a sus instrucciones de permisos de política de AWS Identity and Access Management (IAM) que comprueban si ciertas claves de etiqueta y valores están presentes antes de permitir la acción. Esto le permite crear una política de IAM que efectivamente dice "Permitir al usuario administrar solo aquellas OU que tienen una etiqueta con una clave X y un valor Y" o "Permitir al usuario gestionar solo aquellas OU que están etiquetadas con una clave Z que tiene el mismo valor que la clave de la etiqueta adjunta del usuario Z".

Puede basar sus pruebas Condition en diferentes tipos de referencias de etiquetas en una política de IAM.

Para obtener más información sobre el uso de etiquetas para el control de acceso en las políticas, consulte Controlar el acceso a y para los usuarios y roles de IAM utilizando etiquetas de recursos. Para obtener la sintaxis completa de las políticas de permisos de IAM, consulte la Referencia de políticas JSON de IAM

Comprobación de las etiquetas que se asocian a los recursos especificados en la solicitud

Cuando realiza una solicitud mediante el comando AWS Management Console, el AWS Command Line Interface (AWS CLI), o uno de las SDK de AWS, especifique a qué recursos desea acceder con esa solicitud. Ya sea que esté intentando enumerar los recursos disponibles de un tipo determinado, leer un recurso o escribir, modificar o actualizar un recurso, especifique el recurso al que se tendrá acceso como parámetro en la solicitud. Dichas solicitudes están controladas por las políticas de permisos de IAM que se adjuntan a los usuarios y roles. En estas políticas, puede comparar las etiquetas adjuntas al recurso solicitado y elegir permitir o denegar el acceso en función de las claves y valores de dichas etiquetas.

Para verificar una etiqueta adjunta al recurso, haga referencia a la etiqueta en un elemento Condition al anteponer el nombre de la clave de la etiqueta con la siguiente cadena: aws:ResourceTag/

Por ejemplo, la siguiente política de ejemplo permite al usuario o rol realizar cualquier AWS Organizations operación a menos que ese recurso tenga una etiqueta con la clave department y el valor security. Si esa clave y valor están presentes, entonces la política deniega explícitamente la operación UntagResource.

{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : "organizations:*", "Resource" : "*" }, { "Effect" : "Deny", "Action" : "organizations:UntagResource", "Resource" : "*", "Condition" : { "StringEquals" : { "aws:ResourceTag/department" : "security" } } } ] }

Para obtener más información acerca de cómo utilizar este elemento, consulte Control del acceso a los recursos y aws:ResourceTag en la Guía del usuario de IAM.

Comprobación de las etiquetas que se asocian al usuario o rol de IAM que realiza la solicitud

Puede controlar qué puede hacer la persona que realiza la solicitud (entidad principal) en función de las etiquetas que se asocian al usuario o rol de IAM. Para ello, utilice la clave de condición aws:PrincipalTag/key-name para especificar qué etiqueta y valor se deben adjuntar al usuario o rol que llama.

En el siguiente ejemplo se muestra cómo permitir una acción solo cuando la etiqueta especificada (cost-center) tiene el mismo valor tanto en la entidad que llama a la operación como en el recurso al que tiene acceso la operación. En este ejemplo, el usuario que llama puede iniciar y detener una instancia de Amazon EC2 solo si la instancia está etiquetada con el mismo valor cost-center como usuario.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:startInstances", "ec2:stopInstances" ], "Resource": "*", "Condition": {"StringEquals": {"ec2:ResourceTag/cost-center": "${aws:PrincipalTag/cost-center}"}} } }

Para obtener más información acerca de cómo utilizar este elemento, consulte Control del acceso a los recursos IAM y aws:PrincipalTag en la Guía del usuario de IAM.

Compruebe las etiquetas que se incluyen como parámetros en la solicitud

Varias operaciones le permiten especificar etiquetas como parte de la solicitud. Por ejemplo, al crear un recurso, puede especificar las etiquetas que se adjuntan al nuevo recurso. Puede especificar un elemento Condition que utiliza aws:TagKeys para permitir o denegar la operación en función de si se incluye una clave de etiqueta específica o un conjunto de claves en la solicitud. A este operador de comparación no le importa qué valor contiene la etiqueta. Solo comprueba si está presente una etiqueta con la clave especificada.

Para comprobar la clave de etiqueta, o una lista de claves, especifique un elemento Condition con la sintaxis siguiente:

"aws:TagKeys": [ "tag-key-1", "tag-key-2", ... , "tag-key-n" ]

Puede utilizar ForAllValues: para prefaciar al operador de comparación para asegurarse de que todas las claves de la solicitud deben coincidir con una de las claves especificadas en la política. Por ejemplo, la siguiente política de muestra permite cualquier operación de Organizations solo si las tres claves de etiqueta especificadas están presentes en la solicitud.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "department", "costcenter", "manager" ] } } } }

De manera alternativa, puede utilizar ForAnyValue: para prefaciar un operador de comparación para asegurarse de que al menos una de las claves de la solicitud deben coincidir con una de las claves especificadas en la política. Por ejemplo, la siguiente política permite cualquier operación de Organizations solo si al menos una de las claves de etiqueta especificadas está presente en la solicitud.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "organizations:*", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": [ "stage", "region", "domain" ] } } } }

Varias operaciones le permiten especificar etiquetas en la solicitud. Por ejemplo, al crear un recurso, puede especificar las etiquetas que se adjuntan al nuevo recurso. Puede comparar un par clave-valor de etiqueta en la política con un par clave-valor incluido en la solicitud. Para ello, haga referencia a la etiqueta en un elemento Condition al anteponer el nombre de la clave de la etiqueta con la siguiente cadena: aws:RequestTag/key-name y, a continuación, especifique el valor de etiqueta que debe estar presente.

Por ejemplo, la siguiente política de muestra deniega cualquier solicitud del usuario o rol para crear un Cuenta de AWS donde a la solicitud le falta el costcenter, o proporciona esa etiqueta con un valor distinto de 1, 2, o bien 3.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "organizations:CreateAccount", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2", "3" ] } } } ] }

Para obtener más información sobre el uso de estos elementos, consulte aws:TagKeys y aws:RequestTag en la Guía del usuario de IAM.