aws-코그니토-아피가테이웨이 - 람다 - AWS 솔루션 구성체

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

aws-코그니토-아피가테이웨이 - 람다

모든 클래스는 활발히 개발 중이며 향후 버전에서 이전 버전과 호환되지 않는 변경 또는 제거 될 수 있습니다. 이들은 적용되지 않습니다의미 체계 버전모델을 선택합니다. 즉, 이 패키지를 사용할 수도 있지만 이 패키지의 최신 버전으로 업그레이드할 때 소스 코드를 업데이트해야 할 수도 있습니다.

참고: 적절한 기능을 보장하려면 프로젝트의 AWS 솔루션 구성 패키지와 AWS CDK 패키지가 동일한 버전이어야 합니다.

언어 패키지
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
타이프 스크립트
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

이 AWS 솔루션 구성은 Amazon API 게이트웨이 람다 지원 REST API를 보호하는 Amazon Cognito를 구현합니다.

다음은 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' } });

API에서 리소스와 메소드를 정의하는 경우 (예:proxy = false) 를 호출해야 합니다.addAuthorizers()API가 완전히 정의 된 후 메서드입니다. 이렇게하면 API의 모든 메소드가 보호됩니다.

다음은 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);

파라미터

패턴 구성

이름 유형 설명
람다오브즈 기존인가요? lambda.Function Lambda 함수 객체의 기존 인스턴스, 이 및lambdaFunctionProps를 호출하면 오류가 발생합니다.
람다기능소품? lambda.FunctionProps Lambda 함수의 기본 속성을 재정의하는 선택적 사용자 제공 속성입니다. 의 경우에는 무시됩니다.existingLambdaObj가 제공될 예정입니다.
아피가트웨이 소품? api.LambdaRestApiProps API Gateway 기본 소품을 재정의하는 선택적 사용자 제공 소품
Cognitouser풀Props? cognito.UserPoolProps Cognito 사용자 풀의 기본 소품을 재정의하는 선택적 사용자 제공 소품
Cognitouser풀클라이언트Props? cognito.UserPoolClientProps Cognito 사용자 풀 클라이언트에 대한 기본 소품을 재정의하는 선택적 사용자 제공 prop
로그그룹Props? logs.LogGroupProps CloudWatch Logs 로그 그룹에 대한 기본 소품을 무시하기 위한 선택적 사용자 제공 소품입니다.

패턴 속성

이름 유형 설명
ApiGateway api.RestApi 패턴에 의해 생성 된 API Gateway REST API의 인스턴스를 돌려줍니다.
람다함수 lambda.Function 패턴에 의해 생성 된 Lambda 함수의 인스턴스를 돌려줍니다.
userPool cognito.UserPool 패턴에 의해 생성된 Cognito 사용자 풀의 인스턴스를 반환합니다.
UserPool cognito.UserPoolClient 패턴에 의해 생성된 Cognito 사용자 풀 클라이언트의 인스턴스를 반환합니다.
APIGateway클라우드워치역할 iam.Role API Gateway REST API에서 CloudWatch 로의 액세스 로깅을 활성화하는 패턴으로 생성된 IAM 역할의 인스턴스를 반환합니다.
에이피가트웨이로그 그룹 logs.LogGroup API Gateway REST API 액세스 로그가 전송되는 패턴으로 생성된 로그 그룹의 인스턴스를 반환합니다.
어피가트웨이 인가자 api.CfnAuthorizer 패턴에 의해 생성 된 API Gateway 인가자의 인스턴스를 돌려줍니다.

기본 설정

재정의없이이 패턴을 즉시 구현하면 다음과 같은 기본값이 설정됩니다.

Amazon Cognito

  • 사용자 풀에 대한 암호 정책 설정

  • 사용자 풀에 고급 보안 모드 적용

Amazon API Gateway

  • 엣지 최적화 API 엔드포인트 배포

  • API Gateway 대한 CloudWatch 로깅 설정

  • API Gateway 대한 최소 권한 액세스 IAM 역할 구성

  • 모든 API 메소드에 대한 기본 권한 부여 유형을 IAM으로 설정

  • X-Ray 추적하기

AWS Lambda 함수

  • Lambda 용 제한된 권한 액세스 IAM 역할 구성

  • NodeJS Lambda 함수에 대한 연결 유지로 연결 재사용 사용

  • X-Ray 추적하기

  • 환경 변수를 설정합니다.

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(노드 10.x 이상 함수의 경우)

Architecture

GitHub

이 패턴의 코드를 보려면 문제 및 끌어오기 요청을 작성/조회하는 등의 작업을 수행합니다.
@aws -솔루션 - 구성/aws - 인식 - 아피 가티 웨이 - 람다