

# Controlar o acesso com base nos atributos de uma identidade com o Verified Permissions
<a name="apigateway-lambda-authorizer-verified-permissions"></a>

Use o Amazon Verified Permissions para controlar o acesso à sua API do API Gateway. Quando você usa o API Gateway com o Verified Permissions, ele cria um autorizador do Lambda que usa decisões de autorização refinadas para controlar o acesso à sua API. O Verified Permissions autoriza os chamadores com base em políticas e em um esquema de armazenamento de políticas usando a linguagem Cedar para definir permissões refinadas para usuários de aplicações. Para saber mais, consulte [Create a policy store with a connected API and identity provider](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/getting-started-api-policy-store.html) no *Guia do usuário do Amazon Verified Permissions*.

O Verified Permissions comporta grupos de usuários do Amazon Cognito ou provedores de identidade OpenID Connect (OIDC) como fontes de identidade. O Verified Permissions pressupõe que a entidade principal tenha sido previamente identificada e autenticada. O Verified Permissions só é compatível com APIs REST regionais e otimizadas para borda.

## Criar um autorizador do Lambda usando o Verified Permissions
<a name="apigateway-lambda-authorizer-verified-permissions-attach"></a>

O Verified Permissions cria um autorizador do Lambda para determinar se uma entidade principal pode realizar uma ação em sua API. Você precisa criar a política do Cedar que o Verified Permissions usa para realizar suas tarefas de autorização.

Veja a seguir um exemplo de política do Cedar que permite o acesso para invocar uma API com base no grupo de usuários do Amazon Cognito, `us-east-1_ABC1234`, para o grupo `developer` no recurso `GET /users` de uma API. O Verified Permissions determina a associação ao grupo analisando o token da identidade do chamador. 

```
permit(
  principal in MyAPI::UserGroup::"us-east-1_ABC1234|developer",
  action in [ MyAPI::Action::"get /users" ],
  resource
  );
```

O Verified Permissions também pode anexar o autorizador aos métodos da sua API. Nos estágios de produção da sua API, recomendamos não permitir que o Verified Permissions anexe o autorizador para você.

A lista a seguir mostra como configurar o Verified Permissions para anexar ou não o autorizador do Lambda à solicitação dos métodos da sua API.

**Anexar o autorizador para você (Console de gerenciamento da AWS)**  
Ao escolher **Criar armazenamento de políticas** no console do Verified Permissions, na página **Implantar integração de aplicações**, escolha **Agora**.

**Não anexe o autorizador para você (Console de gerenciamento da AWS)**  
Ao escolher **Criar armazenamento de políticas** no console do Verified Permissions, na página **Implantar integração de aplicações**, escolha **Mais tarde**.  
O Verified Permissions ainda cria um autorizador do Lambda para você. O autorizador do Lambda começa com `AVPAuthorizerLambda-`. Para ter mais instruções sobre como anexar a autorização em um método, consulte [Configurar um método para usar um autorizador do Lambda (console)](configure-api-gateway-lambda-authorization.md#configure-api-gateway-lambda-authorization-method-console).

**Anexar o autorizador para você (CloudFormation)**  
No modelo do CloudFormation gerado pelo Verified Permissions, na seção `Conditions`, defina `"Ref": "shouldAttachAuthorizer"` como `true`.

**Não anexe o autorizador para você (CloudFormation)**  
No modelo do CloudFormation gerado pelo Verified Permissions, na seção `Conditions`, defina `"Ref": "shouldAttachAuthorizer"` como `false`.  
O Verified Permissions ainda cria um autorizador do Lambda para você. O autorizador do Lambda começa com `AVPAuthorizerLambda-`. Para ter mais instruções sobre como anexar a autorização em um método, consulte [Configurar um método para usar um autorizador do Lambda (AWS CLI)](configure-api-gateway-lambda-authorization.md#configure-api-gateway-lambda-authorization-method-cli).

## Chamar um autorizador do Lambda usando o Verified Permissions
<a name="apigateway-lambda-authorizer-verified-permissions-call"></a>

É possível chamar o autorizador do Lambda fornecendo uma identidade ou um token de acesso no cabeçalho `Authorization`. Para obter mais informações, consulte [Chamar uma API com um autorizador do Lambda do API Gateway](call-api-with-api-gateway-lambda-authorization.md).

O API Gateway armazena em cache a política que o autorizador do Lambda exibe por 120 segundos. É possível modificar o TTL no console do API Gateway ou usando a AWS CLI.