aws-cognito-apigateway-lambda - Konstrukte für AWS S-Lösungen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

aws-cognito-apigateway-lambda

Alle Klassen befinden sich in aktiver Entwicklung und unterliegen nicht abwärtskompatiblen Änderungen oder Entfernen in jeder zukünftigen Version. Diese unterliegen nicht denSemantische VersionierungModell. Dies bedeutet, dass Sie möglicherweise Ihren Quellcode aktualisieren müssen, wenn Sie ein Upgrade auf eine neuere Version dieses Pakets durchführen.

Hinweis: Um eine ordnungsgemäße Funktionalität sicherzustellen, müssen die AWS Solutions Constructs Pakete und AWS CDK-Pakete in Ihrem Projekt dieselbe Version aufweisen.

Sprache Paket
Python
aws_solutions_constructs.aws_cognito_apigateway_lambda
Typoskript
@aws-solutions-constructs/aws-cognito-apigateway-lambda
Java
software.amazon.awsconstructs.services.cognitoapigatewaylambda

Overview

Dieses AWS Solutions Construct implementiert Amazon Cognito zum Sichern einer LAMBDA-gesicherten REST-API mit Amazon API Gateway.

Hier ist eine minimale bereitstellbare Musterdefinition in 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' } });

Wenn Sie Ressourcen und Methoden in Ihrer API definieren (z.proxy = false) müssen Sie dieaddAuthorizers()-Methode, nachdem die API vollständig definiert ist. Dadurch wird sichergestellt, dass jede Methode in Ihrer API geschützt ist.

Hier ist ein Beispiel in 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);

Parameter

Muster-Konstrukt

Name Typ Beschreibung
Gibt es LambdaObj? lambda.Function Vorhandene Instanz des Lambda Function-Objekts, die sowohl diese als auchlambdaFunctionPropsführt zu einem -Fehler.
LambdaFunctionProps? lambda.FunctionProps Optionale vom Benutzer bereitgestellte Eigenschaften, um die Standardeigenschaften für die Lambda Funktion zu überschreiben. Wird ignoriert, wenn einexistingLambdaObjwird bereitgestellt.
ApigatewayProps? api.LambdaRestApiProps Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für API Gateway
CognitouserPoolProps? cognito.UserPoolProps Optional vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für den Cognito Benutzerpool
CognitouserPoolClientProps? cognito.UserPoolClientProps Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für den Cognito User Pool Client
LogGroupProps? logs.LogGroupProps Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standardprops für die CloudWatch Logs s-Protokollgruppe.

Muster-Eigenschaften

Name Typ Beschreibung
ApiGateway api.RestApi Gibt eine Instanz der API Gateway REST-API zurück, die durch das Muster erstellt wurde.
LambdaFunction lambda.Function Gibt eine Instanz der Lambda Funktion zurück, die durch das Muster erstellt wurde.
userPool cognito.UserPool Gibt eine Instanz des Cognito Benutzerpools zurück, die durch das Muster erstellt wurde.
UserPoolClient cognito.UserPoolClient Gibt eine Instanz des Cognito Benutzerpool-Clients zurück, die durch das Muster erstellt wurde.
ApigatewayCloudWatchRole iam.Role Gibt eine Instanz der IAM-Rolle zurück, die durch das Muster erstellt wurde, das die Zugriffsprotokollierung von der API Gateway REST-API zu CloudWatch ermöglicht.
ApigatewayLogGroup logs.LogGroup Gibt eine Instanz der Protokollgruppe zurück, die durch das Muster erstellt wurde, an das API Gateway REST-API-Zugriffsprotokolle gesendet werden.
ApigatewayAuthorizer api.CfnAuthorizer Gibt eine Instanz des API Gateway Autorizers zurück, der durch das Muster erstellt wurde.

Standardeinstellungen

Die vorgefertigte Implementierung dieses Musters ohne Überschreibungen setzt die folgenden Standardwerte:

Amazon Cognito

  • Festlegen einer Kennwortrichtlinie für -

  • Erzwingen des erweiterten Sicherheitsmodus für Benutzerpools

Amazon API Gateway

  • Bereitstellen eines Edge-optimierten API-Endpunkts

  • Aktivieren der CloudWatch -Protokollierung für API Gateway

  • Konfigurieren der IAM-Rolle für den Zugriff auf die geringste Berechtigung für API Gateway

  • Legen Sie den standardmäßigen AuthorizationType für alle API-Methoden auf IAM fest

  • Aktivieren der X-Ray blaufverfolgung

AWS Lambda-Funktion

  • Konfigurieren der IAM-Rolle für den eingeschränkten Berechtigungszugriff für die Lambda -Funktion

  • Aktivieren Sie die Wiederverwendung von Verbindungen mit Keep-Alive für NodeJS Lambda

  • Aktivieren der X-Ray blaufverfolgung

  • Festlegen von Umgebungsvariablen:

    • AWS_NODEJS_CONNECTION_REUSE_ENABLED(für Node 10.x und höhere Funktionen)

Architecture

GitHub

Um den Code für dieses Muster anzuzeigen, erstellen/anzeigen Probleme und Pull-Anforderungen usw.:
@aws -solutions-konstrukte/aws-cognito-apigateway-lambda