View a markdown version of this page

Usar chaves de condição do IAM com o Amazon Aurora DSQL - Amazon Aurora DSQL

Usar chaves de condição do IAM com o Amazon Aurora DSQL

O elemento Condition (ou bloco Condition) especifica as condições sob as quais uma declaração de política é válida. Você cria expressões condicionais usando operadores de condição, como StringEquals ou StringLike, para comparar chaves na política com valores na solicitação. As chaves de condição são diferentes do escopo de ARN de recursos, que restringe ações a recursos específicos usando o elemento Resource.

O Amazon Aurora DSQL é compatível tanto com chaves de condição específicas do serviço quanto com chaves de condição globais da AWS. É possível usar essas chaves para refinar as condições sob as quais suas declarações de política do IAM são aplicadas. Consulte mais informações sobre as chaves de condição globais da AWS em Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.

Chaves de condição disponíveis para o Amazon Aurora DSQL

O Amazon Aurora DSQL é compatível com as chaves de condição específicas do serviço dsql:WitnessRegion, dsql:FisActionId e dsql:FisTargetArns. Também é possível usar chaves de condição globais da AWS, como aws:RequestTag, aws:ResourceTag e aws:TagKeys. Consulte uma lista completa das ações, chaves de condição e recursos do Amazon Aurora DSQL que podem ser especificados em políticas, em Ações, recursos e chaves de condição para o Amazon Aurora DSQL na Referência de Autorização de Serviço.

Exemplo: restringir a região testemunha para clusters multirregionais

A política a seguir usa a chave de condição dsql:WitnessRegion para restringir a criação de clusters multirregionais aos casos em que a região testemunha seja Oeste dos EUA (Oregon). Sem essa condição, é possível especificar qualquer região como região testemunha.

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/*" } ] }

A primeira declaração aplica a condição dsql:WitnessRegion às ações compatíveis com ela (dsql:CreateCluster e dsql:PutWitnessRegion). A segunda declaração concede dsql:PutMultiRegionProperties e dsql:AddPeerCluster sem a condição, pois a chave de condição dsql:WitnessRegion se aplica somente a dsql:CreateCluster e dsql:PutWitnessRegion.

Exemplo: exigir tags ao criar clusters

A política a seguir usa as chaves de condição aws:RequestTag e aws:TagKeys para exigir uma tag Environment ao criar clusters.

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" ] } } } ] }

Essa política usa duas chaves de condição em conjunto. A condição aws:RequestTag/Environment exige que a tag Environment tenha um dos valores permitidos. A condição aws:TagKeys com o operador de conjunto ForAllValues garante que a solicitação inclua somente as chaves de tag Environment e Owner.

Exemplo: restringir a injeção de falhas a clusters específicos

A política a seguir usa as chaves de condição dsql:FisActionId e dsql:FisTargetArns para restringir a injeção de falhas do AWS FIS a uma ação específica e a um cluster de destino específico.

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/*" } } } ] }

A condição dsql:FisActionId restringe as ações de injeção de falhas que você pode executar. A condição dsql:FisTargetArns usa o operador de conjunto ForAllValues e o operador ArnLike. Juntos, eles garantem que cada ARN de cluster na solicitação corresponda ao padrão permitido. Isso bloqueia qualquer solicitação que inclua ARNs de cluster fora do escopo pretendido.