aws-cognito-apigateway-lambda - Constructos da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

aws-cognito-apigateway-lambda

Todas as classes estão em desenvolvimento ativo e estão sujeitas a alterações ou remoção não compatíveis com versões anteriores em qualquer versão futura. Estes não estão sujeitos àVersionamento semânticoModelo. Isso significa que, embora você possa usá-los, você pode precisar atualizar seu código-fonte ao atualizar para uma versão mais recente deste pacote.

Observações: Para garantir a funcionalidade adequada, os pacotes AWS Solutions Constructs e os pacotes CDK da AWS em seu projeto devem ser da mesma versão.

Linguagem Pacote
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
TypeScript
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

Este AWS Solutions Construct implementa o Amazon Cognito protegendo uma API REST apoiada pelo Amazon API Gateway Lambda.

Aqui está uma definição de padrão implantável mínima no TypeScript:

import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda'; new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { runtime: lambda.Runtime.NODEJS_14_X, // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' } });

Se você estiver definindo recursos e métodos em sua API (por exemplo,proxy = false), você deve chamar oaddAuthorizers()depois que a API é totalmente definida. Isso garante que todos os métodos em sua API estejam protegidos.

Veja um exemplo em TypeScript:

import { CognitoToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cognito-apigateway-lambda'; const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { // This assumes a handler function in lib/lambda/index.js code: lambda.Code.fromAsset(`${__dirname}/lambda`), runtime: lambda.Runtime.NODEJS_12_X, handler: 'index.handler' }, apiGatewayProps: { proxy: false } }); const resource = construct.apiGateway.root.addResource('foobar'); resource.addMethod('POST'); // Mandatory to call this method to Apply the Cognito Authorizers on all API methods construct.addAuthorizers();

Initializer

new CognitoToApiGatewayToLambda(scope: Construct, id: string, props: CognitoToApiGatewayToLambdaProps);

Parâmetros

Adereços de construção de padrão

Nome Tipo Descrição
ExistingAmbdaobj? lambda.Function Instância existente do objeto Lambda Function, fornecendo tanto isso elambdaFunctionPropscausará um erro.
LambdaFunctionProps? lambda.FunctionProps Propriedades opcionais fornecidas pelo usuário para substituir as propriedades padrão da função Lambda. Ignorado se umexistingLambdaObjé fornecido.
ApigatewayProps? api.LambdaRestApiProps Os adereços fornecidos pelo usuário opcionais para substituir os adereços padrão do API Gateway
CognitouserPoolProps? cognito.UserPoolProps O usuário opcional forneceu adereços para substituir os adereços padrão para o grupo de usuários do Cognito
CognitouserPoolClientProps? cognito.UserPoolClientProps O usuário opcional forneceu adereços para substituir os adereços padrão para o cliente do grupo de usuários do Cognito
LoggroupProps? logs.LogGroupProps Aderos opcionais fornecidos pelo usuário para substituir os adereços padrão para o grupo de logs do CloudWatch Logs.

Propriedades de padrão

Nome Tipo Descrição
ApiGateway api.RestApi Retorna uma instância da API REST Gateway criada pelo padrão.
LambdaFunction lambda.Function Retorna uma instância da função Lambda criada pelo padrão.
userPool cognito.UserPool Retorna uma instância do grupo de usuários do Cognito criado pelo padrão.
USPoolClient cognito.UserPoolClient Retorna uma instância do cliente do grupo de usuários do Cognito criado pelo padrão.
ApigatewayCloudWatchRole iam.Role Retorna uma instância da função do IAM criada pelo padrão que permite o log de acesso da API REST do API Gateway para o CloudWatch.
ApigatewayLogGroup logs.LogGroup Retorna uma instância do grupo de logs criado pelo padrão para o qual os logs de acesso à API REST do API Gateway são enviados.
ApigatewayAuthorizer api.CfnAuthorizer Retorna uma instância do autorizador API Gateway criado pelo padrão.

Configurações padrão

A implementação imediata desse padrão sem substituições definirá os seguintes padrões:

Amazon Cognito

  • Definição de política de senha para grupos de usuários

  • Impor o modo de segurança avançado para grupos de usuários

Amazon API Gateway

  • Implantar um endpoint de API otimizado para bordas

  • Habilitar o log do CloudWatch para o

  • Configurar a função IAM de acesso de menor privilégio para API Gateway

  • Defina o AuthorizationType padrão para todos os métodos de API como IAM

  • Ativar rastreamento do X-Ray

Função do AWS Lambda

  • Configurar a função do IAM de acesso de privilégio limitado para a função Lambda

  • Ativar a reutilização de conexões com a função Keep-Alive para NodeJS Lambda

  • Ativar rastreamento do X-Ray

  • Definição de variáveis de ambiente:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(para funções Node 10.x e superiores)

Architecture

GitHub

Para exibir o código desse padrão, crie/exiba problemas e solicitações pull e muito mais:
@aws -solutions-constructs/aws-cognito-apigateway-lambda