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.
Tópicos
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:
, em que action
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 ter 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 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. As instruções devem incluir um elemento Resource
ou NotResource
. Como prática recomendada, especifique um recurso usando seu nome do recurso da Amazon (ARN). Isso pode ser feito para ações que oferecem compatibilidade com 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
e seus sub-recursos, como autorizadores em sua declaração, use o ARN a seguir:api-id
"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
(ou bloco Condition
) permite que você especifique condições nas quais uma instrução estiver em vigor. O elemento Condition
é opcional. É 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.
Se você especificar vários elementos Condition
em uma instrução ou várias chaves em um único Condition
elemento, 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 antes que as permissões da instrução sejam concedidas.
Você também pode usar variáveis de espaço reservado ao especificar condições. Por exemplo, é possível conceder a um usuário do IAM permissão para acessar um atributo somente se ele estiver marcado com seu nome de usuário do IAM. Para obter mais informações, consulte Elementos da política do IAM: variáveis e tags no Guia do usuário do IAM.
A AWS oferece compatibilidade com 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 ter 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/
ou key-name
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.