View a markdown version of this page

Uso de claves de condición de IAM con Amazon Aurora DSQL - Amazon Aurora DSQL

Uso de claves de condición de IAM con Amazon Aurora DSQL

El elemento Condition (o bloque de Condition) especifica las condiciones en las que entra en vigor una instrucción de política. Las expresiones condicionales se crean con operadores de condición, como StringEquals o StringLike, para hacer coincidir las claves de la política con los valores de la solicitud. Las claves de condición son diferentes del ámbito del ARN del recurso, que restringe las acciones a recursos específicos mediante el elemento Resource.

Amazon Aurora DSQL admite claves de condición específicas de cada servicio y claves de condición globales de AWS. Puede utilizar estas claves para precisar las condiciones en las que se aplican las instrucciones de la política de IAM. Para obtener más información acerca de las claves de condición globales de AWS, consulte Claves de contexto de condición global de AWS en la Guía del usuario de IAM.

Claves de condición disponibles para Amazon Aurora DSQL

Amazon Aurora DSQL admite las claves de condición específicas del servicio dsql:WitnessRegion, dsql:FisActionId y dsql:FisTargetArns. También puede utilizar claves de condición globales de AWS, como aws:RequestTag, aws:ResourceTag y aws:TagKeys. Para obtener una lista completa de las acciones, claves de condición y recursos de Amazon Aurora DSQL que puede especificar en las políticas, consulte Acciones, recursos y claves de condición para Amazon Aurora DSQL en la Información de Autorización de los Servicios.

Ejemplo: Restringir la región testigo en clústeres multirregionales

La siguiente política utiliza la clave de condición dsql:WitnessRegion para restringir la creación de clústeres multirregionales a los casos en los que la región testigo sea el oeste de EE. UU. (Oregón). Sin esta condición, puede especificar cualquier región como la región testigo.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateWithSpecificWitness", "Effect": "Allow", "Action": [ "dsql:CreateCluster", "dsql:PutWitnessRegion" ], "Resource": "arn:aws:dsql:*:123456789012:cluster/*", "Condition": { "StringEquals": { "dsql:WitnessRegion": "us-west-2" } } }, { "Sid": "AllowMultiRegionSetup", "Effect": "Allow", "Action": [ "dsql:PutMultiRegionProperties", "dsql:AddPeerCluster" ], "Resource": "arn:aws:dsql:*:123456789012:cluster/*" } ] }

La primera instrucción aplica la condición dsql:WitnessRegion a las acciones que la admiten (dsql:CreateCluster y dsql:PutWitnessRegion). La segunda instrucción concede dsql:PutMultiRegionProperties y dsql:AddPeerCluster sin la condición porque la clave de condición dsql:WitnessRegion solo se aplica a dsql:CreateCluster y dsql:PutWitnessRegion.

Ejemplo: Requerir etiquetas al crear clústeres

La siguiente política utiliza las claves de condición aws:RequestTag y aws:TagKeys para requerir una etiqueta Environment al crear clústeres.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowCreateWithRequiredTag", "Effect": "Allow", "Action": "dsql:CreateCluster", "Resource": "arn:aws:dsql:*:123456789012:cluster/*", "Condition": { "StringEquals": { "aws:RequestTag/Environment": [ "production", "staging", "development" ] }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "Environment", "Owner" ] } } } ] }

Esta política utiliza dos claves de condición juntas. La condición aws:RequestTag/Environment requiere que la etiqueta Environment tenga uno de los valores permitidos. La condición aws:TagKeys con el operador de conjunto ForAllValues garantiza que la solicitud incluya solo las claves de etiqueta Environment y Owner.

Ejemplo: Restringir la inyección de errores a clústeres específicos

La siguiente política utiliza las claves de condición dsql:FisActionId y dsql:FisTargetArns para restringir la inyección de errores AWS FIS a una acción y un clúster de destino específicos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowSpecificFaultInjection", "Effect": "Allow", "Action": "dsql:InjectError", "Resource": "*", "Condition": { "StringEquals": { "dsql:FisActionId": "aws:dsql:cluster-connection-failure" }, "ForAllValues:ArnLike": { "dsql:FisTargetArns": "arn:aws:dsql:us-east-1:123456789012:cluster/*" } } } ] }

La condición dsql:FisActionId restringe las acciones de inyección de errores que puede realizar. La condición dsql:FisTargetArns utiliza el operador de conjunto ForAllValues y el operador ArnLike. Juntos, garantizan que todos los ARN de clúster de la solicitud coincidan con el patrón permitido. Esto bloquea cualquier solicitud que incluya ARN de clúster fuera del ámbito previsto.