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.

JSON
{ "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 Action de gerenciamento de API 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 as políticas JSON da AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.

O elemento de política JSON Resource especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Para ações em que não é possível usar permissões em nível de recurso, 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 AWS para especificar quem tem acesso a quê. Ou seja, qual entidade principal pode executar ações em quais recursos e em que condições.

O elemento Condition especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitaçã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 REST 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 recursos da API REST 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 recursos da API REST 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

Perfis vinculados ao serviço permitem que os serviços da AWS acessem recursos em outros serviços para concluir uma ação em seu nome. Os perfis vinculados a 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. Os perfis de serviço aparecem em sua conta do IAM e pertencem à conta, de modo que um administrador possa alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.

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