Gestion des autorisations de ressource avec des connecteurs AWS SAM - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Gestion des autorisations de ressource avec des connecteurs AWS SAM

Les connecteurs sont un AWS Serverless Application Model (AWS SAM) type de ressource abstrait, identifié comme telAWS::Serverless::Connector, qui fournit des autorisations simples et bien définies entre les ressources de vos applications sans serveur.

Avantages des AWS SAM connecteurs

En composant automatiquement les politiques d'accès appropriées entre les ressources, les connecteurs vous permettent de créer vos applications sans serveur et de vous concentrer sur l'architecture de votre application sans avoir besoin d'expertise en matière de fonctionnalités d' AWS autorisation, de langage de politique et de paramètres de sécurité spécifiques aux services. Par conséquent, les connecteurs constituent un avantage considérable pour les développeurs novices en matière de développement sans serveur, mais également pour les développeurs chevronnés qui souhaitent augmenter leur vitesse de développement.

Utilisation de AWS SAM connecteurs

Utilisez l'attribut de ressource Connectors en l'incorporant dans une ressource source. Définissez ensuite votre ressource de destination et décrivez comment les données ou les événements doivent circuler entre ces ressources. AWS SAM compose ensuite les politiques d'accès nécessaires pour faciliter les interactions requises.

Voici un aperçu de la façon dont cet attribut de ressource est écrit :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: <source-resource-logical-id>: Type: <resource-type> ... Connectors: <connector-name>: Properties: Destination: <properties-that-identify-destination-resource> Permissions: <permission-types-to-provision> ...

Fonctionnement des connecteurs

Note

Cette section explique comment les connecteurs fournissent les ressources nécessaires en arrière-plan. Cela se produit automatiquement lorsque vous utilisez des connecteurs.

Tout d'abord, l'attribut de ressource Connectors intégré est transformé en un type de ressource AWS::Serverless::Connector. Son identifiant logique est automatiquement créé en tant que <source-resource-logical-id><embedded-connector-logical-id>.

Par exemple, voici un connecteur intégré :

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyFunction: Type: AWS::Lambda::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Read - Write MyTable: Type: AWS::DynamoDB::Table

Cela générera la ressource AWS::Serverless::Connector suivante :

Transform: AWS::Serverless-2016-10-31 Resources: ... MyFunctionMyConn: Type: AWS::Serverless::Connector Properties: Source: Id: MyFunction Destination: Id: MyTable Permissions: - Read - Write
Note

Vous pouvez également définir des connecteurs dans votre AWS SAM modèle à l'aide de cette syntaxe. Cela est recommandé lorsque votre ressource source est définie sur un modèle distinct de votre connecteur.

Ensuite, les politiques d'accès nécessaires à cette connexion sont automatiquement élaborées. Pour plus d'informations sur les ressources générées par les connecteurs, consultez Ressources AWS CloudFormation générées lorsque vous spécifiez AWS::Serverless::Connector.

Exemple de connecteurs

L'exemple suivant montre comment utiliser des connecteurs pour écrire des données d'une AWS Lambda fonction dans une table Amazon DynamoDB.

Fonction Lambda écrivant des données dans une table DynamoDB à l'aide de connecteurs. AWS SAM
Transform: AWS::Serverless-2016-10-31 Resources: MyTable: Type: AWS::Serverless::SimpleTable MyFunction: Type: AWS::Serverless::Function Connectors: MyConn: Properties: Destination: Id: MyTable Permissions: - Write Properties: Runtime: nodejs16.x Handler: index.handler InlineCode: | const AWS = require("aws-sdk"); const docClient = new AWS.DynamoDB.DocumentClient(); exports.handler = async (event, context) => { await docClient.put({ TableName: process.env.TABLE_NAME, Item: { id: context.awsRequestId, event: JSON.stringify(event) } }).promise(); } Environment: Variables: TABLE_NAME: !Ref MyTable

L'attribut de ressource Connectors est intégré à la ressource source de la fonction Lambda. La table DynamoDB est définie comme la ressource de destination à l'aide de la propriété Id. Les connecteurs fourniront des autorisations Write entre ces deux ressources.

Lorsque vous déployez votre AWS SAM modèle sur AWS CloudFormation, il compose AWS SAM automatiquement les politiques d'accès nécessaires au bon fonctionnement de cette connexion.

Connexions prises en charge entre les ressources source et de destination

Les connecteurs prennent en charge les types d'autorisations Read et Write pour les données et les événements entre une combinaison choisie de connexions de ressources source et destination. Par exemple, ils prennent en charge une connexion Write entre une ressource source AWS::ApiGateway::RestApi et une ressource destination AWS::Lambda::Function.

Les ressources source et de destination peuvent être définies à l'aide d'une combinaison de propriétés prises en charge. Les exigences en matière de propriété dépendent de la connexion que vous établissez et de l'endroit où les ressources sont définies.

Note

Les connecteurs peuvent attribuer des autorisations entre les types de ressources sans serveur et non sans serveur pris en charge.

Pour obtenir la liste des connexions aux ressources prises en charge et de leurs exigences en matière de propriétés, consultez Types de ressources source et de destination pris en charge pour les connecteurs.

En savoir plus

Pour plus d'informations sur l'utilisation des AWS SAM connecteurs, consultez les rubriques suivantes :

Faire un commentaire

Pour fournir des commentaires sur les connecteurs, soumettez un nouveau problème dans le serverless-application-model AWS GitHubréférentiel.