Como o Amazon API Gateway funciona com o IAM - Amazon API Gateway

Como o Amazon API Gateway funciona com o IAM

Antes de usar o IAM para gerenciar o acesso ao API Gateway, você deve entender quais recursos do IAM estão disponíveis para uso com o API Gateway. Para obter uma visão de alto nível de como o API Gateway e outros serviços da AWS funcionam com o IAM, consulte Serviços da AWS que funcionam com o IAM no Guia do usuário do IAM.

Políticas baseadas em identidade do API Gateway

Com as políticas baseadas em identidade do IAM, é possível especificar quais ações e recursos são permitidos ou negados, bem como as condições sob as quais isso ocorre. O API Gateway oferece suporte a ações, recursos e chaves de condição específicos. Para obter mais informações sobre ações, recursos e chaves de condição específicos do API Gateway, consulte Ações, recursos e chaves de condição do Amazon API Gateway Management e Ações, recursos e chaves de condição do Amazon API Gateway Management V2. Para obter informações sobre todos os elementos usados em uma política JSON, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.

O exemplo a seguir mostra uma política baseada em identidade que permite que um usuário crie ou atualize apenas APIs REST privadas. Para obter mais exemplos, consulte Exemplos de políticas baseadas em identidade do Amazon API Gateway.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ScopeToPrivateApis", "Effect": "Allow", "Action": [ "apigateway:PATCH", "apigateway:POST", "apigateway:PUT" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis", "arn:aws:apigateway:us-east-1::/restapis/??????????" ], "Condition": { "ForAllValues:StringEqualsIfExists": { "apigateway:Request/EndpointType": "PRIVATE", "apigateway:Resource/EndpointType": "PRIVATE" } } }, { "Sid": "AllowResourcePolicyUpdates", "Effect": "Allow", "Action": [ "apigateway:UpdateRestApiPolicy" ], "Resource": [ "arn:aws:apigateway:us-east-1::/restapis/*" ] } ] }

Ações

O elemento Action de uma política JSON descreve as ações que você pode usar para permitir ou negar acesso em uma política.

As ações de política no API Gateway usam o seguinte prefixo antes da ação: apigateway:. As instruções de política devem incluir um elemento Action ou NotAction. O API Gateway define seu próprio conjunto de ações que descrevem as tarefas que podem ser executadas com esse serviço.

A expressão de gerenciamento de API Action está no formato apigateway:action, em que ação representa uma das seguintes ações do API Gateway: GET, POST, PUT, DELETE, PATCH (para atualizar recursos) ou *, que representa todas as ações anteriores.

Alguns exemplos da expressão Action incluem:

  • apigateway:* para todas as ações do API Gateway.

  • apigateway:GET para apenas a ação GET no API Gateway.

Para especificar várias ações em uma única declaração, separe-as com vírgulas, conforme o seguinte:

"Action": [ "apigateway:action1", "apigateway:action2"

Para obter informações sobre verbos a serem usados de HTTP para operações específicas do API Gateway, consulte a Versão 1 da referência da API do Amazon API Gateway (APIs REST) e a Versão 2 da referência da API do Amazon API Gateway (APIs WebSocket e HTTP).

Para obter mais informações, consulte . Exemplos de políticas baseadas em identidade do Amazon API Gateway.

Recursos

Os administradores podem usar AWS as políticas JSON da para especificar quem tem acesso a quê. Ou seja, qual principal pode executar ações em quais recursos, e em que condições.

O elemento Resource de política JSON especifica o objeto ou os objetos aos quais a ação se aplica. As instruções devem incluir um elemento Resource ou um elemento NotResource. Como prática recomendada, especifique um recurso usando seu Nome de recurso da Amazon (ARN). Isso pode ser feito para ações que oferecem suporte a um tipo de recurso específico, conhecido como permissões em nível de recurso.

Para ações que não oferecem suporte a permissões em nível de recurso, como operações de listagem, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.

"Resource": "*"

Os recursos do API Gateway têm o seguinte formato ARN:

arn:aws:apigateway:region::resource-path-specifier

Por exemplo, para especificar uma API REST com o id api-id e seus sub-recursos, como autorizadores em sua declaração, use o ARN a seguir:

"Resource": "arn:aws:apigateway:us-east-2::/restapis/api-id/*"

Para especificar todas as APIs REST e sub-recursos que pertencem a uma conta específica, use o caractere curinga (*):

"Resource": "arn:aws:apigateway:us-east-2::/restapis/*"

Para obter uma lista de tipos de recursos do API Gateway e seus ARNs, consulte Referência de nome de recurso da Amazon (ARN) do API Gateway.

Chaves de condição

Os administradores podem usar as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual principal pode executar ações em quais recursos, e em que condições.

O elemento Condition (ou bloco de Condition) permite que você especifique condições nas quais uma instrução está em vigor. O elemento Condition é opcional. É possível criar expressões condicionais que usam operadores de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação.

Se você especificar vários elementos Condition em uma instrução ou várias chaves em um único elemento Condition, a AWS os avaliará usando uma operação lógica AND. Se você especificar vários valores para uma única chave de condição, a AWS avaliará a condição usando uma operação lógica OR. Todas as condições devem ser atendidas para que as permissões da instrução sejam concedidas.

Você também pode usar variáveis de espaço reservado ao especificar as condições. Por exemplo, é possível conceder a um usuário do IAM permissão para acessar um recurso somente se ele estiver marcado com seu nome de usuário do IAM. Para obter mais informações, consulte Elementos de política do IAM: variáveis e tags no Manual do usuário do IAM.

AWSA oferece suporte a chaves de condição globais e chaves de condição específicas do serviço. Para ver todas as chaves de condição globais da AWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM.

O API Gateway define seu próprio conjunto de chaves de condição e também oferece suporte ao uso de algumas chaves de condição globais. Para obter uma lista de chaves de condição do API Gateway, consulte Chaves de condição para o Amazon API Gateway no Guia do usuário do IAM. Para obter informações sobre quais ações e recursos você pode usar uma chave de condição, consulte Ações definidas pelo Amazon API Gateway.

Para obter informações sobre marcação, inclusive sobre o controle de acesso baseado em atributos, consulte Marcar recursos do API Gateway.

Exemplos

Para obter exemplos de políticas baseadas em identidade do API Gateway, consulte Exemplos de políticas baseadas em identidade do Amazon API Gateway.

Políticas baseadas em recursos do API Gateway

As políticas baseadas em recursos são documentos de políticas JSON que especificam quais ações um principal pode executar no recurso do API Gateway e sob quais condições. O API Gateway oferece suporte a políticas de permissões baseadas em recursos para APIs REST. Você usa políticas de recursos para controlar quem pode invocar uma API REST. Para obter mais informações, consulte . Controlar o acesso a uma API com políticas de recursos do API Gateway.

Exemplos

Para obter exemplos de políticas baseadas em recursos do API Gateway, consulte Exemplos de política de recursos do API Gateway.

Autorização baseada em tags API Gateway

Você pode anexar tags aos recursos do API Gateway ou transmitir tags em uma solicitação para o API Gateway. Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as chaves de condição apigateway:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys. Para obter mais informações sobre como marcar recursos do API Gateway, consulte Usar tags para controlar o acesso aos seus recursos do API Gateway.

Para obter exemplos de políticas baseadas em identidade visando limitar o acesso a um recurso baseado nas tags desse recurso, consulte Usar tags para controlar o acesso aos seus recursos do API Gateway.

Funções do IAM do API Gateway

Uma função do IAM é uma entidade dentro da sua conta da AWS que tem permissões específicas.

Usar credenciais temporárias com o API Gateway

É possível usar credenciais temporárias para fazer login com federação, assumir uma função do IAM ou assumir uma função entre contas. As credenciais de segurança temporárias são obtidas chamando operações da API do AWS STS, como AssumeRole ou GetFederationToken.

O API Gateway oferece suporte ao uso de credenciais temporárias.

Funções vinculadas ao serviço

Funções vinculadas ao serviço permitem que os serviços da AWS acessem recursos em outros serviços para concluir uma ação em seu nome. As funções vinculadas ao serviço aparecem em sua conta do IAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar as permissões para funções vinculadas ao serviço.

O API Gateway oferece suporte a funções vinculadas ao serviço. Para obter informações sobre como criar ou gerenciar funções vinculadas ao serviço do API Gateway, consulte Usar funções vinculadas ao serviço para o API Gateway.

Funções de serviço

Um serviço pode assumir uma função de serviço em seu nome. Uma função de serviço permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. As funções de serviço aparecem na sua conta do IAM e pertencem à conta, de modo que um administrador do IAM pode alterar as permissões para essa função. Porém, fazer isso pode alterar a funcionalidade do serviço.

O API Gateway oferece suporte a funções de serviço.