

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 relatives aux ressources à l'aide de AWS SAM connecteurs
<a name="managing-permissions-connectors"></a>

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

## Avantages des AWS SAM connecteurs
<a name="connector-benefits"></a>

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
<a name="what-are-connectors"></a>

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
<a name="connectors-work"></a>

**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 [CloudFormation ressources générées lorsque vous spécifiez AWS::Serverless::Connector](sam-specification-generated-resources-connector.md).

## Exemple de connecteurs
<a name="what-are-connectors-example"></a>

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\]](http://docs.aws.amazon.com/fr_fr/serverless-application-model/latest/developerguide/images/managing-connectors-example.png)


```
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 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
<a name="supported-connector-resources"></a>

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](reference-sam-connector.md#supported-connector-resource-types).

## En savoir plus
<a name="connector-learn-more"></a>

Pour plus d'informations sur l'utilisation des AWS SAM connecteurs, consultez les rubriques suivantes :
+ [AWS::Serverless::Connector](sam-resource-connector.md)
+ [Définissez les autorisations de lecture et d'écriture dans AWS SAM](connector-usage-define.md)
+ [Définissez les ressources à l'aide d'autres propriétés prises en charge dans AWS SAM](connector-usage-other-properties.md)
+ [Créez plusieurs connecteurs à partir d'une seule source dans AWS SAM](connector-usage-single-source.md)
+ [Créez des connecteurs à destinations multiples dans AWS SAM](connector-usage-multi-destination.md)
+ [Définissez les autorisations de lecture et d'écriture dans AWS SAM](connector-usage-define.md)
+ [Définissez les attributs des ressources à l'aide de connecteurs dans AWS SAM](connector-usage-resource-attributes.md)

## Faire un commentaire
<a name="connector-feedback"></a>

Pour fournir des commentaires sur les connecteurs, [soumettez un nouveau problème](https://github.com/aws/serverless-application-model/issues/new?assignees=&labels=area%2Fconnectors,stage%2Fneeds-triage&template=other.md&title=%28Feature%20Request%29) dans le *serverless-application-model AWS GitHubréférentiel*.