Usar tags para controlar o acesso aos recursos da API REST do API Gateway - Amazon API Gateway

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar tags para controlar o acesso aos recursos da API REST do API Gateway

Condições nas políticas do AWS Identity and Access Management são parte da sintaxe que você usa para especificar permissões para recursos do API Gateway. Para obter detalhes sobre como especificar políticas do IAM, consulte Controlar o acesso a uma API com permissões do IAM. No API Gateway, os recursos podem ter tags, e algumas ações podem incluir tags. Ao criar uma política do IAM, você poderá usar chaves de condição de tag para controlar:

  • Quais usuários podem executar ações em um recurso do API Gateway, com base nas tags que o recurso já tem.

  • Quais tags podem ser transmitidas na solicitação de uma ação.

  • Se chaves de tags específicas podem ser usadas em uma solicitação.

O uso de etiquetas para o controle de acesso baseado em atributo pode permitir um controle mais preciso que o controle em nível de API, bem como um controle mais dinâmico que o controle de acesso baseado em recursos. As políticas do IAM podem ser criadas para permitir ou não uma operação baseada em tags fornecidas na solicitação (tags de solicitação) ou tags no recurso em que estão sendo operadas (tags de recurso). Em geral, as tags de recurso são para recursos que já existem. As tags de solicitação são para quando você estiver criando novos recursos.

Para obter a sintaxe e a semântica completas das chaves de condição de tag, consulte Controlar o acesso usando tags no Guia do usuário do IAM.

Os exemplos a seguir demonstram como especificar condições de tag em políticas para usuários do API Gateway.

Limitar ações com base em tags de recursos

O exemplo de política a seguir concede aos usuários permissão para executar todas as ações em todos os recursos, desde que esses recursos não tenham a tag Environment com um valor de prod.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "apigateway:*", "Resource": "*" }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "prod" } } } ] }

Permitir ações com base em tags de recursos

O exemplo de política a seguir permite que os usuários executem todas as ações nos recursos do API Gateway, desde que os recursos tenham a tag Environment com um valor de Development. A declaração Deny impede que o usuário altere o valor da tag Environment.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ConditionallyAllow", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "Development" } } }, { "Sid": "AllowTagging", "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ] }, { "Sid": "DenyChangingTag", "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": [ "arn:aws:apigateway:*::/tags/*" ], "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "Environment" } } } ] }

Negar operações de marcação

O exemplo de política a seguir permite que um usuário execute todas as ações do API Gateway, exceto para alterar as tags.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:*" ], "Resource": [ "*" ], }, { "Effect": "Deny", "Action": [ "apigateway:*" ], "Resource": "arn:aws:apigateway:*::/tags*", } ] }

Permitir operações de marcação

O exemplo de política a seguir permite que um usuário obtenha todos os recursos do API Gateway e altere as tags para esses recursos. Para obter as tags de um recurso, o usuário deve ter permissões GET para esse recurso. Para atualizar as tags de um recurso, o usuário deve ter permissões PATCH para esse recurso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PUT", "apigateway:POST", "apigateway:DELETE" ], "Resource": [ "arn:aws:apigateway:*::/tags/*", ] }, { "Effect": "Allow", "Action": [ "apigateway:GET", "apigateway:PATCH", ], "Resource": [ "arn:aws:apigateway:*::*", ] } ] }