Configurar um autorizador do Lambda do API Gateway entre contas - Amazon API Gateway

Configurar um autorizador do Lambda do API Gateway entre contas

Agora você também pode usar uma função AWS Lambda de uma conta da AWS diferente como sua função de autorizador de API. Cada conta pode estar em qualquer região onde o Amazon API Gateway está disponível. A função do autorizador do Lambda pode usar estratégias de autenticação de token de portador, como OAuth ou SAML. Isso facilita o gerenciamento centralizado e o compartilhamento da função de autorizador do Lambda central em várias APIs do API Gateway.

Nesta seção, mostramos como configurar uma função de autorização do Lambda entre contas usando o console do Amazon API Gateway.

Estas instruções pressupõem que você já tenha uma API do API Gateway em uma conta da AWS e uma função do Lambda do autorizador em outra conta.

Como configurar um autorizador do Lambda entre contas usando o console do API Gateway

Faça login no console do Amazon API Gateway na conta que contém a sua API e faça o seguinte:

  1. Escolha sua API e, no painel de navegação principal, selecione Autorizadores.

  2. Selecione Criar autorizador.

  3. Em Nome do autorizador, insira um nome para o autorizador.

  4. Em Tipo de autorizador, selecione Lambda.

  5. Em Função do Lambda, insira o ARN completo da função do autorizador do Lambda na sua segunda conta.

    nota

    No console do Lambda, você pode encontrar o ARN da sua função no canto superior direito da janela.

  6. Um aviso com uma string de comando aws lambda add-permission será exibido. A política concede permissão do API Gateway para invocar a função do Lambda do autorizador. Copie o comando e salve-o para mais tarde. Execute o comando depois de criar o autorizador.

  7. Mantenha o campo Função Lambda de invocação em branco para permitir que o console do API Gateway defina uma política baseada em recursos. A política concede permissão do API Gateway para invocar a função do Lambda do autorizador. Você também pode optar por inserir um perfil do IAM para permitir que o API Gateway invoque a função do Lambda do autorizador. Para obter um exemplo dessa função, consulte Criar uma função do IAM que pode ser assumida.

  8. Em Carga de evento do Lambda, escolha Token para um autorizador TOKEN ou Solicitação para um autorizador REQUEST.

  9. Dependendo da opção da etapa anterior, siga um destes procedimentos:

    1. Para a opção Token, faça o seguinte:

      • Em Origem do token, insira o nome do cabeçalho que contém o token de autorização. O cliente da API deve incluir um cabeçalho desse nome para enviar o token de autorização ao autorizador do Lambda.

      • Opcionalmente, em Validação do Token, insira uma instrução RegEx. O API Gateway executa a validação inicial do token de entrada em relação a esta expressão e invoca o autorizador mediante a validação com êxito. Isso ajuda a reduzir as chamadas para a API.

      • Para armazenar em cache a política de autorização gerada pelo autorizador, mantenha Armazenamento em cache de autorização ativado. Quando o armazenamento em cache de políticas está habilitado, você pode optar por modificar o valor TTL. A definição de TTL como zero desabilita o armazenamento em cache de políticas. Quando o armazenamento em cache de políticas está habilitado, o nome de cabeçalho especificado em Origem do token se torna a chave de cache. Se vários valores forem passados para esse cabeçalho na solicitação, todos os valores se tornarão a chave de cache, com a ordem preservada.

        nota

        O valor de TTL padrão é de 300 segundos. O valor máximo é de 3600 segundos. Não é possível aumentar esse limite.

    2. Para a opção de Request (Solicitação), faça o seguinte:

      • Em Tipo de origem de identidade, selecione um tipo de parâmetro. Os tipos de parâmetros com suporte são Header, Query string, Stage variable e Context. Para adicionar mais origens de identidade, escolha Adicionar parâmetro.

      • Para armazenar em cache a política de autorização gerada pelo autorizador, mantenha Armazenamento em cache de autorização ativado. Quando o armazenamento em cache de políticas está habilitado, você pode optar por modificar o valor TTL. A definição de TTL como zero desabilita o armazenamento em cache de políticas.

        O API Gateway usa as origens de identidade especificadas como a chave de cache do autorizador de solicitação. Quando o armazenamento em cache é ativado, o API Gateway chama a função do Lambda do autorizador somente depois de verificar com sucesso que todas as origens de identidade especificadas estão presentes em tempo de execução. Se uma origem de identidade especificada estiver ausente, for nula ou vazia, o API Gateway retornará uma resposta 401 Unauthorized sem chamar a função do Lambda do autorizador.

        Quando várias origens de identidade são definidas, todas são usadas para derivar a chave de cache do autorizador. A alteração de qualquer parte da chave de cache faz com que o autorizador descarte o documento de política armazenado em cache e gere um novo. Se um cabeçalho com vários valores for passado na solicitação, todos os valores farão parte da chave de cache, com a ordem preservada.

      • Quando o armazenamento em cache está desativado, não é necessário especificar uma origem de identidade.

    nota

    Para habilitar o armazenamento em cache, o autorizador deve retornar uma política que seja aplicável a todos os métodos em uma API. Para aplicar uma política de método específico, você pode desativar Armazenamento em cache de autorização.

  10. Selecione Criar autorizador.

  11. Cole a string do comando aws lambda add-permission que você copiou de uma etapa anterior em uma janela da AWS CLI configurada para sua segunda conta. Substitua AUTHORIZER_ID pelo ID do seu autorizador. Isso concederá acesso para sua primeira conta à função do autorizador do Lambda da sua segunda conta.