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.
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 :
Définissez les autorisations de lecture et d'écriture dans AWS SAM
Définissez les ressources à l'aide d'autres propriétés prises en charge dans AWS SAM
Créez plusieurs connecteurs à partir d'une seule source dans AWS SAM
Définissez les autorisations de lecture et d'écriture dans AWS SAM
Définissez les attributs des ressources à l'aide de connecteurs dans AWS SAM
Faire un commentaire
Pour fournir des commentaires sur les connecteurs, soumettez un nouveau problème