Claves de contexto de condición globales de AWS - AWS Identity and Access Management

Claves de contexto de condición globales de AWS

Cuando una entidad principal realiza una solicitud a AWS, AWS recopila la información de la solicitud en un contexto de solicitud. Puede utilizar el elemento Condition de una política JSON para comparar las claves de la solicitud de contexto con los valores de claves que especifique en su política. Para obtener más información sobre las circunstancias en las que se incluye una clave global en el contexto de la solicitud, consulte la información de Disponibilidad de cada clave de condición global. Para obtener información sobre cómo utilizar el elemento Condition en una política de JSON, consulte Elementos de política JSON de IAM: Condition.

nota

Si utiliza claves de condición que solo están disponibles en algunas circunstancias, puede utilizar las versiones IfExists de los operadores de condición. Si faltan las claves de condición de un contexto de solicitud, la política podría generar un error en la evaluación. Por ejemplo, utilice la siguiente bloque de condiciones con ...IfExists para satisfacer cuando una solicitud específica proviene de un rango de direcciones IP o de una VPC específica. Si no se incluye alguna o ambas claves en el contexto de la solicitud, la condición sigue devolviendo true. Los valores solo se comprueban si la clave especificada se incluye en el contexto de la solicitud.

"Condition": { "IpAddressIfExists": {"aws:SourceIp" : ["xxx"] }, "StringEqualsIfExists" : {"aws:SourceVpc" : ["yyy"]} }

Las claves de condición globales son claves de condición con un prefijo aws:. Los servicios de AWS pueden admitir claves de condición globales o proporcionar claves específicas del servicio que incluyan su prefijo de servicio. Por ejemplo, las claves de condición de IAM incluyen el prefijo iam:. Para obtener más información, vea Acciones, recursos y claves de condición para servicios deAWS y elija el servicio cuyas claves desea ver.

importante

Para comparar su condición con un contexto de solicitud con varios valores de clave, debe utilizar ForAllValues u operadores de configuración ForAnyValue. Utilice operadores de conjunto solo con claves de condición de varios valores. No utilice operadores de conjunto con claves de condición de un solo valor. Para obtener más información, consulte Creación de una condición con varias claves o valores .

aws:CalledVia

Funciona con operadores de cadena.

Utilice esta clave para comparar los servicios de la política con los servicios que realizaron solicitudes en nombre de la entidad principal de IAM (usuario o rol). Cuando una entidad principal realiza una solicitud a un servicio de AWS, ese servicio puede utilizar las credenciales de la entidad principal para realizar solicitudes posteriores a otros servicios. La clave aws:CalledVia contiene una lista ordenada de cada servicio de la cadena que realizó solicitudes en nombre de la entidad principal.

Por ejemplo, puede utilizar AWS CloudFormation para leer y escribir desde una tabla de Amazon DynamoDB. DynamoDB utiliza el cifrado suministrado por AWS Key Management Service (AWS KMS).

  • Disponibilidad: esta clave está presente en la solicitud cuando un servicio que admite aws:CalledVia utiliza las credenciales de una entidad principal de IAM para realizar una solicitud a otro servicio. Esta clave no está presente si el servicio utiliza un rol de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.

  • Tipo de valor: multivalor

Para utilizar la clave de condición aws:CalledVia en una política, debe proporcionar las entidades principales del servicio que pueden o no pueden realizar solicitudes a servicios de AWS. AWS admite el uso de los siguientes servicios con aws:CalledVia.

Servicios CalledVia
Servicio de AWS Entidad de seguridad de servicio
Amazon Athena athena.amazonaws.com
AWS CloudFormation cloudformation.amazonaws.com
Amazon DynamoDB dynamodb.amazonaws.com
AWS Key Management Service (AWS KMS) kms.amazonaws.com

Para permitir o denegar el acceso cuando cualquier servicio realiza una solicitud utilizando las credenciales de la entidad principal, utilice la clave de condición aws:ViaAWSService. Esa clave de condición admite los servicios de AWS.

La clave aws:CalledVia es una clave multivalor. Sin embargo, no se puede aplicar el orden utilizando esta clave en una condición. En el ejemplo anterior, User 1 realiza una solicitud a AWS CloudFormation, que llama a DynamoDB, que a su vez llama a AWS KMS. Se trata de tres solicitudes distintas. La llamada final a AWS KMS la realiza User 1 a través de AWS CloudFormation y después a través de DynamoDB.


                Ejemplo de uso de aws:CalledVia

En este caso, la clave aws:CalledVia en el contexto de solicitud incluye cloudformation.amazonaws.com y dynamodb.amazonaws.com, en ese orden. Si solo le preocupa que la llamada se realice a través de DynamoDB en algún lugar de la cadena de solicitudes, puede utilizar esta clave de condición en su política.

Por ejemplo, la siguiente política permite administrar la clave AWS KMS denominada my-example-key, pero solo si DynamoDB es uno de los servicios que realiza la solicitud. El operador de la condición ForAnyValue:StringEquals garantiza que DynamoDB sea uno de los servicios que realiza la llamada. Si la entidad principal realiza la llamada a AWS KMS directamente, la condición devuelve false y la política no permite la solicitud.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaDynamodb", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:111122223333:key/my-example-key", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": ["dynamodb.amazonaws.com"] } } } ] }

Si desea especificar el servicio que realiza la primera o la última llamada de la cadena, puede utilizar las claves aws:CalledViaFirst y aws:CalledViaLast. Por ejemplo, la siguiente política permite administrar la clave denominada my-example-key en AWS KMS. Estas operaciones de AWS KMS solo se permiten si se incluyeron varias solicitudes en la cadena. La primera solicitud debe hacerse a través de AWS CloudFormation y la última, a través de DynamoDB. Si otros servicios realizan solicitudes en el centro de la cadena, la operación sigue estando permitida.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KmsActionsIfCalledViaChain", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:region:111122223333:key/my-example-key", "Condition": { "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com", "aws:CalledViaLast": "dynamodb.amazonaws.com" } } } ] }

Las claves aws:CalledViaFirst y aws:CalledViaLast están presentes en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para llamar a otro servicio. Indican los primeros y últimos servicios que realizaron llamadas en la cadena de solicitudes. Suponga, por ejemplo, que AWS CloudFormation llama a otro servicio denominado X Service, que llama a DynamoDB y que luego llama a AWS KMS. La llamada final a AWS KMS la realiza User 1 a través de AWS CloudFormation, luego a través de X Service y finalmente a través de DynamoDB. Primero se llamó a través de AWS CloudFormation y la última llamada se realizó a través de DynamoDB.


                Ejemplo de uso de aws:CalledViaFirst y aws:CalledViaLast

aws:CalledViaFirst

Funciona con operadores de cadena.

Utilice esta clave para comparar los servicios de la política con el primer servicio que realizó una solicitud en nombre de la entidad principal de IAM (usuario o rol). Para obtener más información, consulte aws:CalledVia .

  • Disponibilidad: esta clave está presente en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para realizar al menos otra solicitud a un servicio diferente. Esta clave no está presente si el servicio utiliza un rol de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.

  • Tipo de valor: valor único

aws:CalledViaLast

Funciona con operadores de cadena.

Utilice esta clave para comparar los servicios de la política con el último servicio que realizó una solicitud en nombre de la entidad principal de IAM (usuario o rol). Para obtener más información, consulte aws:CalledVia .

  • Disponibilidad: esta clave está presente en la solicitud cuando un servicio utiliza las credenciales de una entidad principal de IAM para realizar al menos otra solicitud a un servicio diferente. Esta clave no está presente si el servicio utiliza un rol de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal. Esta clave tampoco está presente cuando la entidad principal realiza la llamada directamente.

  • Tipo de valor: valor único

aws:CurrentTime

Funciona con operadores de fecha.

Utilice esta clave para comparar la fecha y la hora de la solicitud con la fecha y la hora que especifique en la política. Para ver una política de ejemplo que utilice este clave de condición, consulte AWS: permite el acceso en función de la fecha y la hora.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

aws:EpochTime

Funciona con operadores de fecha o numéricos operadores.

Utilice esta clave para comparar la fecha y hora de la solicitud en formato de tiempo epoch o Unix con el valor que especifique en la política. Esta clave también acepta el número de segundos desde el 1 de enero de 1970.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

aws:FederatedProvider

Funciona con operadores de cadena.

Utilice esta clave para comparar el proveedor de identidad (IdP) emisor de la entidad principal con el IdP que especifica en la política. Esto significa que se asumió un rol de IAM mediante las operaciones de AWS STS AssumeRoleWithWebIdentity o AssumeRoleWithSAML. Cuando se utilizan las credenciales temporales de la sesión de rol resultante para realizar una solicitud, el contexto de solicitud identifica el IdP que autenticó la identidad federada original.

  • Disponibilidad: esta clave está presente cuando la entidad principal es una entidad principal de sesión de rol y esa sesión se ha emitido mediante un proveedor de identidad externo.

  • Tipo de valor: valor único

Por ejemplo, si el usuario se ha autenticado con Amazon Cognito, el contexto de la solicitud incluye el valor cognito-identity.amazonaws.com. Del mismo modo, si el usuario se ha autenticado con Login with Amazon, el contexto de la solicitud incluye el valor www.amazon.com.

Puede utilizar cualquier clave de condición de valor único como variable. El siguiente ejemplo de política basada en recursos utiliza la clave aws:FederatedProvider como una variable de la política en el ARN de un recurso. Esta política permite a cualquier entidad principal autenticada mediante un IdP obtener los objetos de un bucket de Amazon S3 con una ruta específica del proveedor de identidad emisor.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BUCKET-NAME/${aws:FederatedProvider}/*" } }

aws:MultiFactorAuthAge

Funciona con operadores numéricos.

Utilice esta clave para comparar el número de segundos desde que se autorizó a la entidad principal solicitante mediante MFA con el número especificado en la política. Para obtener más información acerca de MFA, consulte Uso de autenticación multifactor (MFA) en AWS.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la entidad principal que hace la llamada se ha autenticado mediante MFA. La clave no estará presente si no se ha utilizado la MFA.

  • Tipo de valor: valor único

aws:MultiFactorAuthPresent

Funciona con operadores booleanos.

Utilice esta clave para comprobar si se utilizó la autenticación multifactor (MFA) para validar las credenciales de seguridad temporales que realizó la solicitud.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza credenciales temporales para realizar la solicitud. La clave no está presente en la CLI de AWS, la API de AWS ni en las solicitudes del SDK de AWS realizadas con credenciales a largo plazo.

  • Tipo de valor: valor único

Las credenciales temporales se utilizan para autenticar roles de IAM, usuarios federados, usuarios de IAM con tokens temporales de sts:GetSessionToken y usuarios de la AWS Management Console. Las claves de acceso de usuarios de IAM son credenciales a largo plazo, pero en algunos casos, AWS crea credenciales temporales en nombre de los usuarios de IAM para realizar operaciones. En estos casos, la clave aws:MultiFactorAuthPresent está presente en la solicitud y se establece en un valor de false. Hay dos casos frecuentes en los que puede suceder esto:

  • Los usuarios de IAM de la AWS Management Console, sin saberlo, usan credenciales temporales. Los usuarios inician sesión en la consola con su nombre de usuario y contraseña, que son credenciales a largo plazo. Sin embargo, en segundo plano, la consola genera credenciales temporales en nombre del usuario.

  • Si un usuario de IAM realiza una llamada a un servicio de AWS, el servicio vuelve a utilizar las credenciales del usuario para realizar otra solicitud a un servicio diferente. Por ejemplo, cuando se llama a Athena para obtener acceso a un bucket de Amazon S3 o cuando se usa AWS CloudFormation para crear una instancia de Amazon EC2. Para la próxima solicitud, AWS utiliza credenciales temporales.

Para obtener información sobre los servicios que admiten el uso de credenciales temporales, consulte Servicios de AWS que funcionan con IAM.

La clave aws:MultiFactorAuthPresent nunca está presente cuando se llama a una API o a un comando de la CLI con credenciales a largo plazo, como los pares de claves de acceso de usuario. Por lo tanto, le recomendamos que cuando compruebe esta clave utilice las versiones ...IfExists de los operadores de condición.

Es importante entender que el siguiente elemento Conditionno es una forma fiable de comprobar si una solicitud se ha autenticado mediante MFA:

##### WARNING: NOT RECOMMENDED ##### "Effect" : "Deny", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "false" } }

Esta combinación del efecto Deny, el elemento Bool y el valor false deniega las solicitudes que se pueden autenticar con MFA, pero que no han sido autenticadas de ese modo. Se aplica únicamente a las credenciales temporales que admiten el uso de MFA. Esta instrucción no deniega el acceso a las solicitudes realizadas con las credenciales a largo plazo ni a las solicitudes que se han autenticado con MFA. Utilice este ejemplo con precaución ya que su lógica es complicada y no comprueba si realmente se usó la autenticación tipo MFA.

Además no utilice la combinación del efecto Deny, el elemento Null y true ya que se comporta de la misma manera y la lógica es incluso más complicada.

Combinación recomendada

Le recomendamos que utilice el operador BoolIfExists para comprobar si se ha autenticado una solicitud con MFA.

"Effect" : "Deny", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "false" } }

Esta combinación de Deny, BoolIfExists y false deniega las solicitudes que no están autenticadas con MFA. En concreto, deniega las solicitudes de credenciales temporales que no incluyen MFA. También deniega las solicitudes realizadas con credenciales a largo plazo, como las operaciones de la AWS CLI o de la API de AWS realizadas con claves de acceso. El operador *IfExists comprueba la presencia de la clave aws:MultiFactorAuthPresent y si podría estar presente o no, como lo indica su existencia. Utilícelo cuando desee denegar solicitudes que no están autenticadas con MFA. Esto es más seguro, pero puede interrumpir cualquier código o script que utilice claves de acceso para obtener acceso a la AWS CLI o la API de AWS.

Combinaciones alternativas

También puede utilizar el operador BoolIfExists para permitir solicitudes autenticadas con MFA y solicitudes de la AWS CLI o la API de AWS realizadas con las credenciales a largo plazo.

"Effect" : "Allow", "Condition" : { "BoolIfExists" : { "aws:MultiFactorAuthPresent" : "true" } }

Esta condición coincide tanto si la clave existe y está presente como si la clave no existe. Esta combinación de Allow, BoolIfExists y true permite solicitudes autenticadas mediante MFA o solicitudes que no pueden autenticarse con MFA. Esto significa que las operaciones de la AWS CLI, la API de AWS y el SDK de AWS están permitidas cuando el solicitante utiliza sus claves de acceso a largo plazo. Esta combinación no permite solicitudes de credenciales temporales que podrían, pero no incluyen MFA.

Al crear una política con el editor visual de la consola de IAM y elegir MFA requerida, se aplica esta combinación. Esta configuración requiere MFA para acceso a la consola, pero permite el acceso mediante programación sin MFA.

También puede utilizar el operador Bool para permitir solicitudes programáticas y de consola solo cuando se autentique mediante MFA.

"Effect" : "Allow", "Condition" : { "Bool" : { "aws:MultiFactorAuthPresent" : "true" } }

Esta combinación de Allow, Bool y true permite solo las solicitudes autenticadas con MFA. Se aplica únicamente a las credenciales temporales que admiten el uso de MFA. Esta instrucción no permite el acceso a las solicitudes realizadas con las claves de acceso a largo plazo ni a las solicitudes realizadas con credenciales temporales sin MFA.

No utilice una estructura de política similar a la siguiente para comprobar si la clave de MFA está presente:

##### WARNING: USE WITH CAUTION ##### "Effect" : "Allow", "Condition" : { "Null" : { "aws:MultiFactorAuthPresent" : "false" } }

Esta combinación del efecto Allow, el elemento Null y el valor false permite únicamente las solicitudes que se pueden autenticar con MFA, independientemente de si la solicitud está, de hecho, autenticada. Esto permite todas las solicitudes que se realizan con credenciales temporales y deniega el acceso para las credenciales a largo plazo. Utilice este ejemplo con precaución ya que no comprueba si realmente se usó la autenticación tipo MFA.

aws:PrincipalAccount

Funciona con operadores de cadena.

Utilice esta clave para comparar la cuenta a la que pertenece la entidad principal solicitante con el identificador de cuenta que especifique en la política. Para las solicitudes anónimas, el contexto de la solicitud devuelve anonymous.

  • Disponibilidad: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.

  • Tipo de valor: valor único

En el siguiente ejemplo, se deniega el acceso a todo excepto a las entidades principales con el número de cuenta 123456789012.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessFromPrincipalNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:partition:service:region:accountID:resource" ], "Condition": { "StringNotEquals": { "aws:PrincipalAccount": [ "123456789012" ] } } } ] }

aws:PrincipalArn

Funciona con operadores de ARN y operadores de cadenas.

Utilice esta clave para comparar el Nombre de recurso de Amazon (ARN) de la entidad principal que ha realizado la solicitud con el ARN que se especifique en la política. Para los roles de IAM, el contexto de solicitud devuelve el ARN del rol, no el ARN del usuario que asumió el rol.

  • Disponibilidad: esta clave se incluye en el contexto de solicitud de todas las solicitudes firmadas. Las solicitudes anónimas no incluyen esta clave. Puede especificar los siguientes tipos de entidades principales en esta clave de condición:

    • Rol de IAM

    • Usuario de IAM

    • Sesión de usuario federado de AWS STS

    • Cuenta de AWS usuario raíz

  • Tipo de valor: valor único

En la siguiente lista se muestra el valor de contexto de solicitud que se devuelve para los diferentes tipos de entidades principales que se pueden especificar en la clave de condición aws:PrincipalArn:

  • Rol de IAM: el contexto de la solicitud contiene el siguiente valor para la clave de condición aws:PrincipalArn. No especifique el ARN de la sesión de rol asumido como valor para esta clave de condición. Para obtener más información acerca de la entidad principal de la sesión de rol asumido, consulte Entidades principales de sesión de rol.

    arn:aws:iam::AWS-account-ID:role/role-name
  • Usuario de IAM: el contexto de la solicitud contiene el siguiente valor para la clave de condición aws:PrincipalArn.

    arn:aws:iam::AWS-account-ID:user/user-name
  • Sesiones de usuario federado de AWS STS: el contexto de la solicitud contiene el siguiente valor para la clave de condición aws:PrincipalArn.

    arn:aws:sts::AWS-account-ID:federated-user/user-name
  • Usuario raíz de la Cuenta de AWS: el contexto de la solicitud contiene el siguiente valor para la clave de condición aws:PrincipalArn. Cuando se especifica el ARN del usuario raíz como valor para la clave de condición aws:PrincipalArn, limita los permisos solo para el usuario raíz de la Cuenta de AWS. Esto es distinto de especificar el ARN del usuario raíz en el elemento principal de una política basada en recursos, que delega la autoridad en la Cuenta de AWS. Para obtener más información sobre cómo especificar el ARN del usuario raíz en el elemento principal de una política basada en recursos, consulte Entidades principales de la cuenta de AWS.

    arn:aws:iam::AWS-account-ID:root

    Puede especificar el ARN del usuario raíz como un valor de la clave de condición aws:PrincipalArn en políticas de control de servicio (SCP) de AWS Organizations. Las SCP son un tipo de política de organización que se emplea para administrar permisos en una organización y solo afectan a las cuentas de miembros de la organización. Una SCP limita los permisos para los usuarios y roles de IAM en las cuentas miembro, incluido el usuario raíz de la cuenta de miembro. Para obtener más información sobre el efecto de las SCP sobre los permisos, consulte Efectos de las SCP en los permisos en la Guía del usuario de Organizations.

aws:PrincipalIsAWSService

Funciona con operadores booleanos.

Utilice esta clave para comprobar si la llamada a su recurso se está realizando directamente por una entidad principal de servicio AWS. Por ejemplo, AWS CloudTrail utiliza la entidad de servicio de cloudtrail.amazonaws.com para escribir registros en su bucket de Amazon S3. La clave de contexto de solicitud se establece en true cuando un servicio utiliza una entidad principal de servicio para realizar una acción directa en los recursos. La clave de contexto se configura como false si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal. También se configura en false si el servicio utiliza una función de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal.

  • Disponibilidad — Esta clave está presente en el contexto de la solicitud de todas las solicitudes de API firmadas que utilizan credenciales de AWS. Las solicitudes anónimas no incluyen esta clave.

  • Tipo de valor: valor único

Puede utilizar esta clave de condición para limitar el acceso a las identidades de confianza y a las ubicaciones de red esperadas mientras concede acceso seguro a servicios de AWS.

En el siguiente ejemplo de política de bucket de Amazon S3, el acceso al bucket está restringido a menos que la solicitud se oriente desde vpc-111bbb22 o provenga de una entidad principal de servicio, como CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-logs-bucket/AWSLogs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22" }, "BoolIfExists": { "aws:PrincipalIsAWSService": "false" } } } ] }

En el siguiente vídeo tiene más información acerca de cómo utilizar la clave de condición aws:PrincipalIsAWSService en una política.

aws:PrincipalOrgID

Funciona con operadores de cadena.

Utilice esta clave para comparar el identificador de la organización en AWS Organizations a la que pertenece la entidad principal solicitante con el identificador especificado en la política.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Las solicitudes anónimas no incluyen esta clave.

  • Tipo de valor: valor único

Esta clave global proporciona una alternativa a mostrar todos los ID de todas las cuentas de AWS de una organización. Puede utilizar esta clave de condición para simplificar la especificación del elemento Principal en una política basada en recursos. Puede especificar el ID de organización en el elemento de condición. Al añadir y quitar cuentas, las políticas que incluyan automáticamente la clave aws:PrincipalOrgID y incluirán automáticamente las cuentas correctas y no requerirán una actualización manual.

Por ejemplo, la siguiente política de bucket de Amazon S3 permite a los miembros de cualquier cuenta de la organización o-xxxxxxxxxxx agregar un objeto al bucket policy-ninja-dev.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowPutObject", "Effect": "Allow", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::policy-ninja-dev/*", "Condition": {"StringEquals": {"aws:PrincipalOrgID":"o-xxxxxxxxxxx"} } } }
nota

Esta condición global también se aplica a la cuenta de administración de una organización AWS. Esta política impide que todos las entidades principales fuera de la organización especificada accedan al bucket de Amazon S3. Esto incluye cualquiera de los servicios de AWS que interactúan con sus recursos internos, tales como el envío de datos de registro de AWS CloudTrail a los buckets de Amazon S3. Para obtener información sobre cómo puede conceder acceso de forma segura para los servicios de AWS, consulte aws:PrincipalIsAWSService.

Para obtener más información sobre AWS Organizations, consulte ¿Qué es AWS Organizations? en la Guía del usuario de AWS Organizations.

aws:PrincipalOrgPaths

Funciona con operadores de cadena.

Utilice esta clave para comparar la ruta de acceso de AWS Organizations de la entidad principal que realiza la solicitud a la ruta de acceso en la política. Una entidad principal puede ser un usuario de IAM, rol de IAM, usuario federeado o usuario raíz de Cuenta de AWS. En una política, esta clave de condición garantiza que el solicitante es un miembro de la cuenta dentro de la raíz de la organización o unidades organizativas (OU) especificadas en AWS Organizations. Una ruta AWS Organizations es una representación de texto de la estructura de una entidad de Organizations. Para obtener más información sobre el uso y la comprensión de las rutas, consulte Comprender la ruta de la entidad AWS Organizations.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Las solicitudes anónimas no incluyen esta clave.

  • Tipo de valor: multivalor

nota

Los ID de organización son únicos globalmente, pero los ID de unidad organizativa y los ID de raíz solo son únicos dentro de una organización. Esto significa que no hay dos organizaciones que compartan el mismo ID de organización. Sin embargo, otra organización puede tener una unidad organizativa o raíz con el mismo ID que la suya. Le recomendamos que incluya siempre el ID de organización cuando especifique una unidad organizativa o raíz.

Por ejemplo, la siguiente condición devuelve true para las entidades principales en cuentas que están asociadas directamente a la unidad organizativa ou-ab12-22222222, pero no en sus unidades organizativas secundarias.

"Condition" : { "ForAnyValue:StringEquals" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}

La siguiente condición devuelve true para las entidades principales de una cuenta que está asociada directamente a la unidad organizativa o a cualquiera de sus unidades organizativas secundarias. Cuando se incluye un comodín, se debe utilizar el operador de condición StringLike.

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/*"] }}

La siguiente condición devuelve true para las entidades principales de una cuenta que está adjunta directamente a cualquiera de las OU secundarias, pero no directamente a la OU primaria. La condición anterior es para la unidad organizativa o para cualquier unidad organizativa secundaria. La siguiente condición es solo para las secundarias (y las subsiguientes que le siguen).

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/ou-*"] }}

La siguiente condición permite el acceso a todas las entidades principales de la organización o-a1b2c3d4e5, independientemente de su unidad organizativa principal.

"Condition" : { "ForAnyValue:StringLike" : { "aws:PrincipalOrgPaths":["o-a1b2c3d4e5/*"] }}

aws:PrincipalOrgPaths es una clave de condición multivalor. Las claves multivalor incluyen uno o más valores en un formato de lista. El resultado es un OR lógico. Cuando se utilizan varios valores con el operador de condición ForAnyValue, la ruta de acceso del principal debe coincidir con una de las rutas enumeradas en la política. Para las políticas que incluyen varios valores para una única clave, debe incluir las condiciones entre corchetes, como una matriz ("Key": ["Value1", "Value2"]). También debe incluir estos corchetes cuando hay un solo valor. Para obtener más información acerca de las claves de condición multivalor, consulte Creación de una condición con varias claves o valores.

"Condition": { "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-a1b2c3d4e5/r-ab12/ou-ab12-33333333/*", "o-a1b2c3d4e5/r-ab12/ou-ab12-22222222/*" ] } }

aws:PrincipalServiceName

Funciona con operadores de cadena.

Utilice esta clave para comparar el nombre de la entidad principal del servicio en la política con la entidad principal de servicio que está realizando solicitudes a sus recursos. Puede utilizar esta clave para comprobar si esta llamada es realizada por una entidad principal de servicio específica. Cuando una entidad principal de servicio realiza una solicitud directa a su recurso, la clave aws:PrincipalServiceName contiene el nombre de la entidad principal del servicio. Por ejemplo, el nombre de la entidad principal de servicio AWS CloudTrail es cloudtrail.amazonaws.com.

  • Disponibilidad — Esta clave está presente en la solicitud cuando la llamada es realizada por una entidad principal de servcicio AWS. Esta clave no está presente en ninguna otra situación, incluida la siguiente:

    • Si el servicio utiliza una función de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal.

    • Si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal.

    • Si la llamada es realizada directamente por una entidad principal de IAM.

    • Si la llamada la hace un solicitante anónimo.

  • Tipo de valor: valor único

Puede utilizar esta clave de condición para limitar el acceso a las identidades de confianza y a las ubicaciones de red esperadas mientras concede acceso seguro a un servicio de AWS.

En el siguiente ejemplo de política de bucket de Amazon S3, el acceso al bucket está restringido a menos que la solicitud se oriente desde vpc-111bbb22 o provenga de una entidad principal de servicio, como CloudTrail.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "expected-network+service-principal", "Effect": "Deny", "Principal": "*", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-logs-bucket/AWSLogs/AccountNumber/*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-111bbb22", "aws:PrincipalServiceName": "cloudtrail.amazonaws.com" } } } ] }

aws:PrincipalServiceNamesList

Funciona con operadores de cadena.

Esta clave proporciona una lista de todas las entidades principales del servicio de nombres que pertenecen al servicio. Esta es una clave de condición avanzada. Puede utilizarla para restringir que el servicio acceda a su recurso solo desde una región específica. Algunos servicios pueden crear entidades de servicio regionales para indicar una instancia concreta del servicio dentro de una Región específica. Puede limitar el acceso a un recurso a una instancia concreta del servicio. Cuando una entidad de servicio realiza una solicitud directa a su recurso, el aws:PrincipalServiceNamesList contiene una lista desordenada de todos los nombres principales de servicio asociados a la instancia regional del servicio.

  • Disponibilidad — Esta clave está presente en la solicitud cuando la llamada es realizada por una entidad principal de servcicio AWS. Esta clave no está presente en ninguna otra situación, incluida la siguiente:

    • Si el servicio utiliza una función de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal.

    • Si un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal.

    • Si la llamada es realizada directamente por una entidad principal de IAM.

    • Si la llamada la hace un solicitante anónimo.

  • Tipo de valor: multivalor

aws:PrincipalServiceNamesList es una clave de condición multivalor. Las claves multivalor incluyen uno o más valores en un formato de lista. El resultado es un OR lógico. Debe utilizar los operadores de servicio ForAnyValue o ForAllValues con los operadores de condición de StringLike cuando utilice esta clave. Para las políticas que incluyen varios valores para una única clave, debe incluir las condiciones entre corchetes, como una matriz, por ejemplo ("Key":["Value1", "Value2"]). También debe incluir estos corchetes cuando hay un solo valor. Para obtener más información acerca de las claves de condición multivalor, consulte Uso de varias claves y valores.

aws:PrincipalTag/tag-key

Funciona con operadores de cadena.

Utilice esta clave para comparar la etiqueta asociada a la entidad principal que realiza la solicitud con la etiqueta que especifique en la política. Si la entidad principal tiene más de una etiqueta asociada, el contexto de la solicitud incluye una clave aws:PrincipalTag para cada clave de etiqueta asociada.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud si la entidad principal está usando un usuario de IAM con etiquetas asociadas. Se incluye para una entidad principal que utiliza un rol de IAM con etiquetas o etiquetas de sesión asociadas. Las solicitudes anónimas no incluyen esta clave.

  • Tipo de valor: valor único

Puede añadir atributos personalizados a un usuario o rol en forma de un par de clave-valor. Para obtener más información sobre las etiquetas en IAM, consulte Etiquetado de recursos de IAM. Puede utilizar aws:PrincipalTag para controlar el acceso para principales de AWS.

En este ejemplo se muestra cómo puede crear una política basada en identidad que permita a usuarios con la etiqueta department=hr administrar usuarios, grupos o roles de IAM. Para utilizar esta política, sustituya el texto en cursiva de la política de ejemplo por su propia información. A continuación, siga las instrucciones en Crear una política o Editar una política.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/department": "hr" } } } ] }

aws:PrincipalType

Funciona con operadores de cadena.

Utilice esta clave para comparar el tipo de entidad principal que realiza la solicitud con el tipo de entidad principal que especifique en la política. Para obtener más información, consulte Especificación de una entidad principal . Para ver ejemplos específicos de valores de clave de principal, consulte Valores clave principales.

  • Disponibilidad: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.

  • Tipo de valor: valor único

aws:referer

Funciona con operadores de cadena.

Utilice esta clave para comparar quién hizo referencia a la solicitud en el navegador cliente con el remitente que especificó en la política. El valor de contexto de la solicitud aws:referer lo proporciona el intermediario en un encabezado HTTP. El encabezado de Referer se incluye en una solicitud de navegador web cuando se selecciona un enlace en una página web. El encabezado de Referer contiene la dirección URL de la página web donde se seleccionó el enlace.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la solicitud al recurso de AWS se invocó mediante un enlace desde una URL de página web en el navegador. Esta clave no se incluye para las solicitudes programáticas porque no se utiliza un enlace del navegador para tener acceso al recurso de AWS.

  • Tipo de valor: valor único

Por ejemplo, puede acceder a un objeto de Amazon S3 directamente mediante una URL o mediante la invocación directa de la API. Para obtener más información, consulte Operaciones de la API de Amazon S3 utilizando directamente un navegador web. Cuando se accede a un objeto de Amazon S3 desde una dirección URL que existe en una página web, la dirección URL de la página web de origen se utiliza en aws:referer. Cuando se accede a un objeto de Amazon S3 escribiendo la dirección URL en el navegador, el aws:referer no está presente. Cuando se invoca la API directamente, el aws:referer tampoco está presente. Puede utilizar la clave de condición de aws:referer de una política para permitir las solicitudes realizadas desde un referente específico, como un enlace en una página web del dominio de su empresa.

aviso

Esta clave debe utilizarse con cuidado. Es peligroso incluir un valor de encabezado de referencia conocido públicamente. Las partes no autorizadas podrían utilizar navegadores personalizados o modificados para proporcionar cualquier valor aws:referer que eligieran. En consecuencia, aws:referer no debe utilizarse para impedir que entidades no autorizadas realicen solicitudes a AWS de forma directa. Se ofrece únicamente para que los clientes puedan proteger su contenido digital, como el contenido almacenado en Amazon S3, para evitar las referencias en sitios de terceros no autorizados.

aws:RequestedRegion

Funciona con operadores de cadena.

Utilice esta clave para comparar la región de AWS a la que se llamó en la solicitud con la región que ha especificado en la política. Puede utilizar esta clave de condición global para controlar qué regiones se pueden solicitar. Para ver las Regiones AWS de cada servicio, consulte Cuotas y puntos de enlace de servicio en la Referencia general de Amazon Web Services.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

Algunos servicios globales, como IAM, tienen un único punto de enlace. Como este punto de enlace se encuentra físicamente en la región EE. UU. Este (Norte de Virginia), las llamadas de IAM siempre se realizan a la región us-east-1. Por ejemplo, si crea una política que deniegue el acceso a todos los servicios cuando la región solicitada no sea us-west-2, las llamadas a IAM siempre generan un error. Para ver un ejemplo de cómo evitar este problema, consulte NotAction con Deny.

nota

La clave de condición aws:RequestedRegion le permite controlar qué punto de enlace de un servicio se invoca, pero no controlar el impacto de la operación. Algunos servicios afectan a varias regiones. Por ejemplo, Amazon S3 tiene operaciones de API que controlan la replicación entre regiones. Puede invocar s3:PutBucketReplication en una región (lo que se consigue con la clave de condición aws:RequestedRegion), pero afectar también a otras regiones en función de las opciones de configuración de replicaciones.

Puede utilizar esta clave de contexto para limitar el acceso a los servicios de AWS a un conjunto de regiones determinado. Por ejemplo, la política siguiente permite a un usuarios ver todas las instancias Amazon EC2 en la AWS Management Console. Sin embargo, solo permite realizar cambios en las instancias de Irlanda (eu-west-1), Londres (eu-west-2) o París (eu-west-3).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InstanceConsoleReadOnly", "Effect": "Allow", "Action": [ "ec2:Describe*", "ec2:Export*", "ec2:Get*", "ec2:Search*" ], "Resource": "*" }, { "Sid": "InstanceWriteRegionRestricted", "Effect": "Allow", "Action": [ "ec2:Associate*", "ec2:Import*", "ec2:Modify*", "ec2:Monitor*", "ec2:Reset*", "ec2:Run*", "ec2:Start*", "ec2:Stop*", "ec2:Terminate*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "eu-west-1", "eu-west-2", "eu-west-3" ] } } } ] }

aws:RequestTag/clave-etiqueta

Funciona con operadores de cadena.

Utilice esta clave para comparar el par clave-valor de etiqueta que se transfirió en la solicitud con el par de etiquetas especificado en la política. Por ejemplo, podría comprobar si la solicitud incluya la clave de etiqueta "Dept" y que tenga el valor "Accounting". Para obtener más información, consulte Control del acceso durante solicitudes de AWS .

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud cuando se transfieren pares de valor de clave en la solicitud. Cuando se transfieren varias etiquetas en la solicitud, hay una clave de contexto para cada par clave-valor de etiqueta.

  • Tipo de valor: valor único

Esta clave de contexto tiene el formato "aws:RequestTag/tag-key":"tag-value", donde tag-key y tag-value son un par formado por una clave y un valor. Las claves y los valores de las etiquetas no distinguen entre mayúsculas y minúsculas. Esto significa que si especifica "aws:RequestTag/TagKey1": "Value1" en el elemento de condición de su política, la condición coincidirá con una clave de etiqueta de solicitud denominada TagKey1 o tagkey1, pero no con ambas.

En este ejemplo se muestra que, si bien la clave tiene un solo valor, puede seguir utilizando varios pares de valor de clave en una solicitud si las claves son diferentes.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::instance/*", "Condition": { "StringEquals": { "aws:RequestTag/environment": [ "preprod", "production" ], "aws:RequestTag/team": [ "engineering" ] } } } }

aws:ResourceAccount

Funciona con operadores de cadena.

Utilice esta clave para comparar el Cuenta de AWS ID (ID de la ) del propietario del recurso solicitado con la cuenta del recurso de la política. A continuación, puede permitir o denegar el acceso a ese recurso en función de la cuenta propietaria del recurso.

  • Disponibilidad: esta clave siempre se incluye en el contexto de solicitud para la mayoría de servicios. Las siguientes acciones no admiten esta clave:

    • AWS Elastic Beanstalk

      • elasticbeanstalk:ListAvailableSolutionStacks

    • Amazon Elastic Block Store: todas las acciones

    • Amazon EC2

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge: todas las acciones

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

      • workspaces:CopyWorkspaceImage

  • Tipo de valor: valor único

nota

Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de aws:ResourceAccount en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Esta clave es igual al ID de cuenta de AWS para la cuenta con los recursos evaluados en la solicitud.

Para la mayoría de los recursos de su cuenta, el ARN contiene el ID de cuenta del propietario de ese recurso. Para ciertos recursos, como los buckets de Amazon S3, el ARN del recurso no incluye el ID de cuenta. Los dos ejemplos siguientes muestran la diferencia entre un recurso con un ID de cuenta en el ARN y un ARN de Amazon S3 sin un ID de cuenta:

  • arn:aws:iam::111122223333:role/AWSExampleRole: rol de IAM creado y de propiedad dentro de la cuenta 111122223333.

  • arn:aws:s3:::AWSExampleS3Bucket: bucket de Amazon S3 creado y de propiedad dentro de la cuenta 444455556666, que no aparecen en el ARN.

Use la consola, la API o la CLI de AWS, para encontrar todos los recursos y los ARN correspondientes.

Tiene que escribir una política que deniega los permisos a los recursos en función del ID de cuenta del propietario del recurso. Por ejemplo, la siguiente política basada en identidad deniega el acceso al recurso especificado si este no pertenece a la cuenta especificada.

Para utilizar esta política, sustituya el texto del marcador de posición en cursiva por la información de la cuenta.

importante

Esta política no permite ninguna acción. En su lugar, utiliza el efecto Deny que deniega explícitamente el acceso a todos los recursos enumerados en el extracto que no pertenecen a la cuenta de la lista. Utilice esta política en combinación con otras políticas que permiten acceder a acciones específicas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInteractionWithResourcesNotInSpecificAccount", "Action": "service:*", "Effect": "Deny", "Resource": [ "arn:partition:service:region:account:*" ], "Condition": { "StringNotEquals": { "aws:ResourceAccount": [ "account" ] } } } ] }

Esta política deniega el acceso a todos los recursos para un servicio específico de AWS a menos que la cuenta especificada de AWS sea propietaria del recurso.

Ciertos servicios de AWS, como AWS Data Exchange y CloudFormation, confían en el acceso a recursos fuera de sus cuentas de AWS para operaciones normales. Si usa el elemento aws:ResourceAccount en sus políticas, incluya declaraciones adicionales para crear exenciones para esos servicios. Las siguientes políticas de ejemplo demuestran cómo denegar el acceso en función de la cuenta de recursos y, al mismo tiempo, definir excepciones para los recursos propiedad del servicio.

Utilice estos ejemplos de políticas como plantillas para crear sus propias políticas personalizadas. Para obtener más información, puede hacer referencia a su documentación de servicio.

aws:ResourceOrgID

Funciona con operadores de cadena.

Utilice esta clave para comparar el identificador de la organización de AWS Organizations a la que pertenece el recurso solicitado con el identificador especificado en la política.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Esta clave de condición global no admite las siguientes acciones:

    • AWS Elastic Beanstalk

      • elasticbeanstalk:ListAvailableSolutionStacks

    • Amazon Elastic Block Store: todas las acciones

    • Amazon EC2

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge: todas las acciones

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

      • workspaces:CopyWorkspaceImage

  • Tipo de valor: valor único

Esta clave global devuelve el ID de organización de recursos de una solicitud determinada. Le permite crear reglas que se aplican a todos los recursos de una organización que se especifican en el elemento Resource de una política basada en identidad. Puede especificar el ID de organización en el elemento de condición. Al agregar y quitar cuentas, las políticas que incluyan la clave aws:ResourceOrgID tendrán automáticamente las cuentas correctas y no requerirán una actualización manual.

nota

Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de aws:ResourceOrgID en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Por ejemplo, la siguiente política impide que la entidad principal agregue objetos al recurso policy-genius-dev a menos que el recurso de Amazon S3 pertenezca a la misma organización que la entidad principal que hace la solicitud.

importante

Esta política no permite ninguna acción. En su lugar, utiliza el efecto Deny que deniega explícitamente el acceso a todos los recursos enumerados en el extracto que no pertenecen a la cuenta de la lista. Utilice esta política en combinación con otras políticas que permiten acceder a acciones específicas.

{ "Version": "2012-10-17", "Statement": { "Sid": "DenyPutObjectToS3ResourcesOutsideMyOrganization", "Effect": "Deny", "Action": "s3:PutObject", "Resource": "arn:partition:s3:::policy-genius-dev/*", "Condition": { "StringNotEquals": { "aws:ResourceOrgID": "${aws:PrincipalOrgID}" } } } }

En el siguiente vídeo tiene más información acerca de cómo utilizar la clave de condición aws:ResourceOrgID en una política.

aws:ResourceOrgPaths

Funciona con operadores de cadena.

Utilice esta clave para comparar la ruta de AWS Organizations del recurso al que se accede en la política. En una política, esta clave de condición garantiza que el solicitante sea un miembro de la cuenta dentro de la raíz de la organización o unidades organizativas especificadas en AWS Organizations. Una ruta de AWS Organizations es una representación de texto de la estructura de una entidad de Organizations. Para obtener más información sobre el uso y la comprensión de las rutas, consulte Comprender la ruta de la entidad AWS Organizations

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la entidad principal es miembro de una organización. Esta clave de condición global no admite las siguientes acciones:

    • AWS Elastic Beanstalk

      • elasticbeanstalk:ListAvailableSolutionStacks

    • Amazon Elastic Block Store: todas las acciones

    • Amazon EC2

      • ec2:CopySnapshot

      • ec2:CreateVolume

      • ec2:CreateVpcPeeringConnection

    • Amazon EventBridge: todas las acciones

    • Amazon WorkSpaces

      • workspaces:DescribeWorkspaceImages

      • workspaces:CopyWorkspaceImage

  • Tipo de valor: multivalor

aws:ResourceOrgPaths es una clave de condición multivalor. Las claves multivalor incluyen uno o más valores en un formato de lista. El resultado es un OR lógico. Debe utilizar los operadores de servicio ForAnyValue o ForAllValues con los operadores de condición de StringLike cuando utilice esta clave. Para las políticas que incluyen varios valores para una única clave, debe incluir las condiciones entre corchetes, como una matriz, por ejemplo ("Key":["Value1", "Value2"]). También debe incluir estos corchetes cuando hay un solo valor. Para obtener más información acerca de las claves de condición multivalor, consulte Uso de varias claves y valores.

nota

Algunos Servicios de AWS requieren acceso a recursos que son propiedad de AWS que están alojados en otra Cuenta de AWS. El uso de aws:ResourceOrgPaths en sus políticas basadas en identidad puede afectar a la capacidad de su identidad para acceder a estos recursos.

Por ejemplo, la siguiente condición devuelve True para recursos que pertenecen a la organización o-a1b2c3d4e5. Cuando se incluye un comodín, se debe utilizar el operador de condición StringLike.

"Condition": { "ForAnyValue:StringLike": { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/*"] } }

Se devuelve la siguiente condición True para los recursos que son propiedad de las cuentas asociadas a la unidad organizativa ou-ab12-11111111 o cualquiera de las unidades organizativas secundarias.

"Condition": { "ForAnyValue:StringLike" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/*"] }}

Se devuelve la siguiente condición True para los recursos que son propiedad de las cuentas asociadas directamente a la unidad organizativa ou-ab12-22222222, pero no a las unidades organizativas secundarias. El siguiente ejemplo utiliza el operador de condición StringEquals para especificar el requisito de coincidencia exacta para la unidad organizativa y no una coincidencia de comodín.

"Condition": { "ForAnyValue:StringEquals" : { "aws:ResourceOrgPaths":["o-a1b2c3d4e5/r-ab12/ou-ab12-11111111/ou-ab12-22222222/"] }}

aws:ResourceTag/tag-key

Funciona con operadores de cadena.

Utilice esta clave para comparar el par clave-valor de etiqueta que especifique en la política con el par clave-valor asociado al recurso. Por ejemplo, puede requerir que el acceso a un recurso solo se permita si el recurso tiene la clave de etiqueta "Dept" adjunta con el valor "Marketing". Para obtener más información, consulte Control del acceso a los recursos de AWS .

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud cuando el recurso solicitado ya tiene etiquetas asociadas o en solicitudes que crean un recurso con una etiqueta asociada. Esta clave se devuelve solo para los recursos que admiten autorización basada en etiquetas. Hay una clave de contexto para cada par clave-valor de etiqueta.

  • Tipo de valor: valor único

Esta clave de contexto tiene el formato "aws:ResourceTag/tag-key":"tag-value", donde tag-key y tag-value son un par formado por una clave y un valor. Las claves y los valores de las etiquetas no distinguen entre mayúsculas y minúsculas. Esto significa que si especifica "aws:ResourceTag/TagKey1": "Value1" en el elemento de condición de su política, la condición coincidirá con una clave de etiqueta de recurso denominada TagKey1 o tagkey1, pero no con ambas.

Para obtener ejemplos del uso de la clave de aws:ResourceTag para controlar el acceso a los recursos de IAM, consulte Control del acceso a los recursos de AWS.

Para obtener ejemplos del uso de la clave de aws:ResourceTag para controlar el acceso a otros recursos de AWS, consulte Control de acceso a los recursos de AWS mediante etiquetas.

Para obtener un tutorial sobre el uso de la clave de condición de aws:ResourceTag para el control de acceso basado en atributos (ABAC), consulte Tutorial de IAM: definición de permisos para acceder a los recursos de AWS en función de etiquetas.

aws:SecureTransport

Funciona con operadores booleanos.

Utilice esta clave para comprobar si la solicitud se envió mediante SSL. El contexto de la solicitud devuelve true o false. En una política, solo puede permitir acciones específicas si la solicitud se envía mediante SSL.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

aws:SourceAccount

Funciona con operadores de cadena.

Utilice esta clave para comparar el ID de cuenta que realiza una solicitud de servicio a servicio con el ID de cuenta que especifique en la política.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si el acceso a un recurso activa un servicio de AWS para llamar a otro servicio en nombre del propietario del recurso. El servicio que realiza la llamada debe pasar el ID de cuenta del recurso del origen al servicio llamado. Este ID de cuenta incluye el ID de cuenta de origen.

  • Tipo de valor: valor único

Puede utilizar esta clave de condición para evitar que se utilice un servicio AWS como un sustituto confuso durante las transacciones entre servicios. Establezca el valor de esta clave de condición en la cuenta del recurso en la solicitud. Por ejemplo, cuando una actualización de bucket de Amazon S3 activa la publicación de un tema de Amazon SNS, el servicio Amazon S3 invoca la operación sns:Publish de la API. En la política que permite la operación sns:Publish, establezca el valor de la clave de condición en el ID de cuenta del bucket de Amazon S3. Para obtener información acerca de cómo y cuándo se recomiendan estas claves de condición, consulte la documentación de los servicios de AWS que está utilizando.

aws:SourceArn

Funciona con operadores de ARN y operadores de cadena. AWS recomienda utilizar operadores de ARN en lugar de operadores de cadenas al comparar los ARN.

Utilice esta clave para comparar el Nombre de recurso de Amazon (ARN) del recurso que realiza una solicitud de servicio a servicio con el ARN que especifique en la política.

Esta clave no funciona con el ARN de la entidad principal que realiza la solicitud. En su lugar, utilice aws:PrincipalArn. El ARN del origen incluye el ID de cuenta, por lo que no es necesario utilizar aws:SourceAccount con aws:SourceArn.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si el acceso a un recurso activa un servicio de AWS para llamar a otro servicio en nombre del propietario del recurso. El servicio que realiza la llamada debe pasar el ARN del recurso original al servicio llamado.

  • Tipo de valor: valor único

Puede utilizar esta clave de condición para evitar que se utilice un servicio AWS como un sustituto confuso durante las transacciones entre servicios. Establezca el valor de esta clave de condición en el ARN del recurso en la solicitud. Por ejemplo, cuando una actualización de bucket de Amazon S3 activa la publicación de un tema de Amazon SNS, el servicio Amazon S3 invoca la operación sns:Publish de la API. En la política que permite la operación sns:Publish, establezca el valor de la clave de condición en el ARN del bucket de Amazon S3. Para obtener información acerca de cómo y cuándo se recomiendan estas claves de condición, consulte la documentación de los servicios de AWS que está utilizando.

aws:SourceIdentity

Funciona con operadores de cadena.

Utilice esta clave para comparar la identidad de origen establecida por la entidad principal con la identidad de origen que usted especifique en la política.

  • Disponibilidad — Esta clave se incluye en el contexto de la solicitud después de establecer una identidad de origen cuando se asume un rol utilizando cualquier comando assume-role CLI AWS STS, o una operación AWS STS de la API AssumeRole.

  • Tipo de valor: valor único

Puede utilizar esta clave en una política para permitir acciones en AWS por entidades que han establecido una identidad de origen al asumir un rol. La actividad de la identidad de origen especificada del rol aparece en AWS CloudTrail. Esto facilita a los administradores determinar quién o qué ha realizado acciones con un rol en AWS.

A diferencia de sts:RoleSessionName, después de establecer la identidad de origen, el valor no se puede cambiar. Está presente en el contexto de la solicitud de todas las acciones tomadas por el rol. El valor persiste en sesiones de rol posteriores cuando se utilizan las credenciales de sesión para asumir otro rol. Asumir un rol de otro se llama encadenamiento de roles.

La clave sts:SourceIdentity está presente en la solicitud cuando la entidad principal establece inicialmente una identidad de origen mientras asume un rol utilizando cualquier comando assume-role CLI AWS STS, o una operación AWS STS de API AssumeRole. La clave aws:SourceIdentity presente en la solicitud de cualquier acción que se realice con una sesión de rol que tenga un conjunto de identidad de origen.

La siguiente política de confianza de rol de CriticalRole en la cuenta 111122223333 contiene una condición para aws:SourceIdentity que impide que una entidad principal sin una identidad de origen establecida para Saanvi o Diego asuma el rol.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AssumeRoleIfSourceIdentity", "Effect": "Allow", "Principal": {"AWS": " arn:aws:iam::111122223333:role/CriticalRole"}, "Action": [ "sts:AssumeRole", "sts:SetSourceIdentity" ], "Condition": { "StringLike": { "aws:SourceIdentity": ["Saanvi","Diego"] } } } ] }

Para obtener más información acerca del uso de información de identidad de origen, consulte Monitorear y controlar las acciones realizadas con roles asumidos.

aws:SourceIp

Funciona con operadores de direcciones IP.

Utilice esta clave para comparar la dirección IP del solicitante con la dirección IP que especifique en la política. La clave de condición aws:SourceIp solo puede utilizarse para rangos de direcciones IP públicas.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud, excepto cuando el solicitante utiliza un punto de enlace de la VPC para realizar la solicitud.

  • Tipo de valor: valor único

La clave de condición aws:SourceIp se puede utilizar en una política para permitir que las entidades principales realicen solicitudes solo desde un rango de IP especificado. Sin embargo, esta política deniega el acceso si un servicio de AWS realiza llamadas en nombre de la entidad principal. En este caso, puede utilizar aws:SourceIp con la clave aws:ViaAWSService para asegurarse de que la restricción IP de origen se aplica únicamente a las solicitudes realizadas directamente por una entidad principal.

Por ejemplo, puede asociar la siguiente política a un usuario de IAM. Esta política permite al usuario colocar directamente un objeto en el bucket my-service-bucket de Amazon S3 si realiza la llamada desde la dirección IP especificada. Sin embargo, si el usuario realiza otra solicitud que hace que un servicio llame a Amazon S3, la restricción de dirección IP no se aplica. La instrucción PrincipalPutObjectIfIpAddress restringe la dirección IP solo si la solicitud no la realiza un servicio. La instrucción ServicePutObject permite la operación sin la restricción de dirección IP si la solicitud la realiza un servicio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "PrincipalPutObjectIfIpAddress", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-service-bucket/*", "Condition": { "Bool": {"aws:ViaAWSService": "false"}, "IpAddress": {"aws:SourceIp": "123.45.167.89"} } }, { "Sid": "ServicePutObject", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-service-bucket/*", "Condition": { "Bool": {"aws:ViaAWSService": "true"} } } ] }

Si la solicitud proviene de un host que utiliza un punto de enlace de Amazon VPC, entonces la clave aws:SourceIp no estará disponible. En su lugar, debe utilizar una clave específica de la VPC, como aws:VpcSourceIp. Para obtener más información sobre el uso de puntos de conexión de VPC, consulte Identity and access management for VPC endpoints and VPC endpoint services (Administración de identidades y accesos para puntos de conexión de VPC y servicios de punto de conexión de VPC) en la AWS PrivateLink Guide (Guía de ).

aws:SourceVpc

Funciona con operadores de cadena.

Utilice esta clave para comprobar si la solicitud proviene de la VPC que especifique en la política. En una política, puede utilizar esta clave para permitir el acceso solo a una VPC específica. Para obtener más información, consulte Restricciones de acceso a una VPC específica en la Guía del usuario de Amazon Simple Storage Service.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si el solicitante utiliza un punto de enlace de la VPC para realizar la solicitud.

  • Tipo de valor: valor único

aws:SourceVpce

Funciona con operadores de cadena.

Utilice esta clave para comparar el identificador de punto de enlace de la VPC de la solicitud con el ID de punto de enlace que especifique en la política. En una política, puede utilizar esta clave para restringir el acceso a un punto de enlace de la VPC específico. Para obtener más información, consulte Restricciones de acceso a un punto de conexión de VPC específico en la Guía del usuario de Amazon Simple Storage Service.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si el solicitante utiliza un punto de enlace de la VPC para realizar la solicitud.

  • Tipo de valor: valor único

aws:TagKeys

Funciona con operadores de cadena.

Utilice esta clave para comparar las claves de etiqueta de una solicitud con las claves que especifique en la política. Como práctica recomendada cuando utilice políticas para controlar el acceso mediante etiquetas, utilice la clave de condición aws:TagKeys para definir lo que se permite realizar a las claves de etiqueta. Para obtener más información y políticas de ejemplo, consulte Control del acceso en función de las claves de etiqueta.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la operación permite pasar etiquetas en la solicitud.

  • Tipo de valor: multivalor

Esta clave de contexto tiene el formato "aws:TagKeys":"tag-key", donde tag-key es una lista de claves de etiqueta sin valores (por ejemplo, ["Dept","Cost-Center"]).

Dado que puede incluir varios pares de clave-valor de etiqueta en una solicitud, el contenido de la solicitud podría ser una solicitud con varios valores. En este caso, debe utilizar la ForAllValues o los operadores de establecimiento ForAnyValue. Para obtener más información, consulte Uso de varias claves y valores .

Algunos servicios admiten el etiquetado con las operaciones del recurso, como, por ejemplo, crear, modificar o eliminar un recurso. Para permitir el etiquetado y las operaciones como una sola llamada, debe crear una política que incluya tanto la acción de etiquetado como la acción de modificación del recurso. A continuación, puede utilizar la clave de condición aws:TagKeys para imponer el uso de claves de etiqueta específicas en la solicitud. Por ejemplo, para limitar las etiquetas cuando alguien crea una instantánea de Amazon EC2, debe incluir la acción de creación ec2:CreateSnapshot y la acción de etiquetado ec2:CreateTags en la política. Para ver una política para este escenario que utiliza aws:TagKeys, consulte Crear una instantánea con etiquetas en la Guía del usuario de Amazon EC2 para instancias de Linux.

aws:TokenIssueTime

Funciona con operadores de fecha.

Utilice esta clave para comparar la fecha y la hora en que se emitieron las credenciales de seguridad temporales con la fecha y hora que especifique en la política.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo cuando la entidad principal utiliza credenciales temporales para realizar la solicitud. La clave no está presentes en solicitudes de la AWS CLI, la API de AWS o el SDK de AWS realizadas con claves de acceso.

  • Tipo de valor: valor único

Para obtener información sobre los servicios que admiten el uso de credenciales temporales, consulte Servicios de AWS que funcionan con IAM.

aws:UserAgent

Funciona con operadores de cadena.

Utilice esta clave para comparar la aplicación cliente del solicitante con la aplicación que especifique en la política.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

aviso

Esta clave debe utilizarse con cuidado. Puesto que el valor aws:UserAgent lo proporciona el intermediario en un encabezado HTTP, partes no autorizadas podrían utilizar navegadores personalizados o modificados para proporcionar cualquier valor aws:UserAgent que eligieran. En consecuencia, aws:UserAgent no debe utilizarse para impedir que entidades no autorizadas realicen solicitudes a AWS de forma directa. Puede utilizarlo para permitir únicamente aplicaciones cliente específicas y solo después de probar su política.

aws:userid

Funciona con operadores de cadena.

Utilice esta clave para comparar el identificador principal del solicitante con el ID que especifique en la política. Para los usuarios de IAM, el valor del contexto de la solicitud es el ID de usuario. Para roles de IAM, este formato de valor puede variar. Para obtener más información sobre cómo aparece la información para diferentes entidades principales, consulte Especificación de una entidad principal. Para ver ejemplos específicos de valores de clave de principal, consulte Valores clave principales.

  • Disponibilidad: esta clave se incluye en el contexto de solicitud de todas las solicitudes, incluidas las anónimas.

  • Tipo de valor: valor único

aws:username

Funciona con operadores de cadena.

Utilice esta clave para comparar el nombre de usuario del solicitante con el nombre de usuario que especifique en la política. Para obtener más información sobre cómo aparece la información para diferentes entidades principales, consulte Especificación de una entidad principal. Para ver ejemplos específicos de valores de clave de principal, consulte Valores clave principales.

  • Disponibilidad: esta clave siempre se incluye en el contexto de solicitud para los usuarios de IAM. Las solicitudes anónimas y las solicitudes que se realizan con los roles de usuario raíz de Cuenta de AWS o IAM no incluyen esta clave. Las solicitudes realizadas con credenciales de IAM Identity Center no incluyen esta clave en el contexto. Para obtener información acerca de cómo controlar el acceso de los usuarios del Centro de identidades de IAM, consulte identitystore:UserId en Using predefined attributes from the IAM Identity Center identity store for access control in AWS (Uso de atributos predefinidos del almacén de identidades del Centro de identidades de IAM para controlar el acceso en AWS). Los usuarios de IAM Identity Center son las personas de su fuerza laboral que necesitan acceso a sus cuentas de AWS o aplicaciones en la nube.

  • Tipo de valor: valor único

aws:ViaAWSService

Funciona con operadores booleanos.

Utilice esta clave para comprobar si un servicio de AWS realiza una solicitud a otro servicio en su nombre.

La clave de contexto de la solicitud devuelve true cuando un servicio utiliza las credenciales de una entidad principal de IAM para realizar una solicitud en nombre de la entidad principal. La clave de contexto devuelve false si el servicio utiliza un rol de servicio o un rol vinculado al servicio para realizar una llamada en nombre de la entidad principal. La clave de contexto de la solicitud también devuelve false cuando la entidad principal realiza la llamada directamente.

  • Disponibilidad: esta clave siempre se incluye en el contexto de la solicitud.

  • Tipo de valor: valor único

Puede utilizar esta clave de condición para permitir o denegar el acceso en función de si un servicio realizó la solicitud. Para ver una política de ejemplo, consulte AWS: deniega acceso a AWS en función de la dirección IP de origen.

aws:VpcSourceIp

Funciona con operadores de direcciones IP.

Utilice esta clave para comparar la dirección IP desde la que se realizó una solicitud con la dirección IP que ha especificado en la política. En una política, la clave coincide solo si la solicitud proviene de la dirección IP especificada y pasa a través de un punto de enlace de la VPC.

  • Disponibilidad: esta clave se incluye en el contexto de la solicitud solo si la solicitud se realiza mediante un punto de enlace de la VPC.

  • Tipo de valor: valor único

Para obtener más información, consulte Controlar el acceso a servicios con puntos de enlace de la VPC en la Guía del usuario de Amazon VPC.

Otras claves de condición entre servicios

Las claves de condición globales son claves de condición con un prefijo aws:. Los servicios individuales pueden crear sus propias claves de condición. Estas claves de condición específicas del servicio incluyen un prefijo que coincide con el nombre del servicio, como iam: o sts:.

Los servicios pueden crear claves específicas del servicio que están disponibles en el contexto de la solicitud para otros servicios. Estas claves están disponibles en varios servicios, pero no son claves de condición globales. Por ejemplo, AWS STS admite claves de condición de federación basadas en SAML. Estas claves están disponibles cuando un usuario federado mediante SAML realiza operaciones de AWS en otros servicios. Otros ejemplos incluyen identitystore:UserId y ec2:SourceInstanceArn.

Para ver las claves de condición específicas de un servicio, consulte Acciones, recursos y claves de condición para los servicios de AWS y elija el servicio cuyas claves desea ver.