

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.

# Création d'un rôle et d'une politique IAM
<a name="requirements-roles"></a>

Cette rubrique décrit les types de politiques et de rôles qui peuvent être utilisés avec AWS Transfer Family, et décrit le processus de création d'un rôle utilisateur. Il décrit également le fonctionnement des politiques de session et fournit un exemple de rôle utilisateur.

AWS Transfer Family utilise les types de rôles suivants :
+ **Rôle utilisateur** — Permet aux utilisateurs gérés par le service d'accéder aux ressources Transfer Family nécessaires. AWS Transfer Family assume ce rôle dans le contexte d'un ARN utilisateur de Transfer Family.
+ **Rôle d'accès** — Permet d'accéder uniquement aux fichiers Amazon S3 en cours de transfert. Pour les AS2 transferts entrants, le rôle d'accès utilise le nom de ressource Amazon (ARN) pour l'accord. Pour les AS2 transferts sortants, le rôle d'accès utilise l'ARN du connecteur.
+ **Rôle d'invocation** : à utiliser avec Amazon API Gateway en tant que fournisseur d'identité personnalisé du serveur. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family.
+ **Rôle de journalisation** : utilisé pour enregistrer les entrées sur Amazon CloudWatch. Transfer Family utilise ce rôle pour enregistrer les informations relatives aux réussites et aux échecs, ainsi que les informations relatives aux transferts de fichiers. Transfer Family assume ce rôle dans le contexte d'un ARN de serveur Transfer Family. Pour les AS2 transferts sortants, le rôle de journalisation utilise l'ARN du connecteur.
+ **Rôle d'exécution** — Permet à un utilisateur de Transfer Family d'appeler et de lancer des flux de travail. Transfer Family assume ce rôle dans le contexte d'un flux de travail (ARN) Transfer Family.

Outre ces rôles, vous pouvez également utiliser des *politiques de session*. Une politique de session est utilisée pour limiter l'accès lorsque cela est nécessaire. Notez que ces politiques sont autonomes, c'est-à-dire que vous ne les ajoutez pas à un rôle. Vous ajoutez plutôt une politique de session directement à un utilisateur de Transfer Family.

**Note**  
Lorsque vous créez un utilisateur Transfer Family géré par un service, vous pouvez sélectionner **Générer automatiquement une politique en fonction du dossier de base**. Il s'agit d'un raccourci utile si vous souhaitez limiter l'accès des utilisateurs à leurs propres dossiers. Vous pouvez également consulter des détails sur les politiques de session et un exemple dans[Comment fonctionnent les politiques de session](#session-policy). Vous trouverez également plus d'informations sur les politiques de session dans la section [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) du *guide de l'utilisateur IAM*.

**Topics**
+ [Créer un rôle d'utilisateur](#role-create-procedure)
+ [Comment fonctionnent les politiques de session](#session-policy)
+ [Exemple de politique read/write d'accès](#read-write-access)

## Créer un rôle d'utilisateur
<a name="role-create-procedure"></a>

Lorsque vous créez un utilisateur, vous prenez un certain nombre de décisions concernant son accès. Ces décisions incluent les compartiments Amazon S3 ou les systèmes de fichiers Amazon EFS auxquels l'utilisateur peut accéder, les parties de chaque compartiment Amazon S3 et les fichiers du système de fichiers accessibles, ainsi que les autorisations dont dispose l'utilisateur (par exemple, `PUT` ou`GET`).

Pour définir l'accès, vous devez créer une politique et un rôle basés sur l'identité Gestion des identités et des accès AWS (IAM) qui fournissent ces informations d'accès. Dans le cadre de ce processus, vous permettez à votre utilisateur d'accéder au compartiment Amazon S3 ou au système de fichiers Amazon EFS qui est la cible ou la source des opérations sur les fichiers. Pour ce faire, effectuez les étapes générales suivantes, décrites plus loin en détail :

**Créer un rôle d'utilisateur**

1. Créez une politique IAM pour AWS Transfer Family. Ceci est décrit sous [Pour créer une politique IAM pour AWS Transfer Family](#iam-policy-procedure).

1. Créez un rôle IAM et associez la nouvelle politique IAM. Pour obtenir un exemple, consultez [Exemple de politique read/write d'accès](#read-write-access).

1. Établissez une relation de confiance entre AWS Transfer Family et le rôle IAM. Ceci est décrit sous [Étape 1 : Établir une relation d'approbation](#establish-trust-transfer).

Les procédures suivantes décrivent comment créer une politique et un rôle IAM. <a name="iam-policy-procedure"></a>

**Pour créer une politique IAM pour AWS Transfer Family**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le volet de navigation, sélectionnez **Politiques**, puis **Créer une politique**.

1. Sur la page **Créer une stratégie**, choisissez l'onglet **JSON**.

1. Dans l'éditeur qui apparaît, remplacez le contenu de l'éditeur par la politique IAM que vous souhaitez associer au rôle IAM.

   Vous pouvez accorder read/write l'accès ou restreindre l'accès des utilisateurs à leur répertoire personnel. Pour de plus amples informations, veuillez consulter [Exemple de politique read/write d'accès](#read-write-access).

1. Choisissez **Réviser la politique** et fournissez un nom et une description pour votre politique, puis choisissez **Créer une politique**.

Créez ensuite un rôle IAM et attachez-lui un nouvelle stratégie IAM.<a name="iam-role-procedure"></a>

**Pour créer un rôle IAM pour AWS Transfer Family**

1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

   Sur la page **Créer un rôle**, assurez-vous que le **AWS service** est sélectionné.

1. Choisissez **Transfer (Transférer)** dans la liste des services, puis **Next: Permissions (Suivant : Autorisations)**. Cela établit une relation de confiance entre AWS Transfer Family et AWS.

1. Dans la section **Joindre des politiques d'autorisation**, recherchez et choisissez la politique que vous venez de créer, puis choisissez **Next : Tags**.

1. (Facultatif) Entrez une clé et une valeur pour une balise, puis choisissez **Next: Review (Suivant : Vérifier)**.

1. Sur la page **Review (Vérifier)**, entrez un nom et une description pour votre nouveau rôle, puis choisissez **Create role (Créer un rôle)**.

Ensuite, vous établissez une relation de confiance entre AWS Transfer Family et AWS.<a name="establish-trust-transfer"></a>

**Étape 1 : Établir une relation d'approbation**
**Note**  
Dans nos exemples, nous utilisons à la fois `ArnLike` et`ArnEquals`. Ils sont fonctionnellement identiques, et vous pouvez donc utiliser l'un ou l'autre lorsque vous élaborez vos politiques. La documentation Transfer Family `ArnLike` est utilisée lorsque la condition contient un caractère générique et `ArnEquals` pour indiquer une condition de correspondance exacte.

1. Dans la console IAM, choisissez le rôle que vous venez de créer.

1. Sur la page **Récapitulatif**, choisissez **Relations d' approbation**, puis choisissez **Modifier la relation d'approbation**.

1. Dans l'éditeur **Modifier une relation de confiance**, assurez-vous que le **service** est`"transfer.amazonaws.com"`. La politique d'accès est illustrée ci-dessous.  
****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "transfer.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

   Nous vous recommandons d'utiliser les clés de condition `aws:SourceAccount` et `aws:SourceArn` pour vous protéger contre le problème de l'adjoint confus. Le compte source est le propriétaire du serveur et l'ARN source est l'ARN de l'utilisateur. Par exemple :

   ```
   "Condition": {
       "StringEquals": {
           "aws:SourceAccount": "account_id"
       },
       "ArnLike": {
           "aws:SourceArn": "arn:aws:transfer:region:account_id:user/*"
       }
   }
   ```

   Vous pouvez également utiliser `ArnLike` cette condition si vous souhaitez vous limiter à un serveur en particulier plutôt qu'à n'importe quel serveur du compte utilisateur. Par exemple : 

   ```
   "Condition": {    
       "ArnLike": {
           "aws:SourceArn": "arn:aws:transfer:region:account-id:user/server-id/*"
       }
   }
   ```
**Note**  
Dans les exemples ci-dessus, remplacez chacun *user input placeholder* par vos propres informations.

   Pour plus de détails sur le problème de la confusion des adjoints et d'autres exemples, voir[Prévention du problème de l’adjoint confus entre services](confused-deputy.md).

1. Choisissez **Mettre à jour la politique de confiance** pour mettre à jour la politique d'accès.

Vous avez maintenant créé un rôle IAM qui permet d' AWS Transfer Family appeler AWS des services en votre nom. Vous avez associé au rôle la politique IAM que vous avez créée pour donner accès à votre utilisateur. Dans la [Commencer à utiliser les points de terminaison AWS Transfer Family de serveur](getting-started.md) section, ce rôle et cette politique sont attribués à votre ou vos utilisateurs.

**Voir aussi**
+ Pour des informations plus générales sur les rôles IAM, consultez la section [Création d'un rôle pour déléguer des autorisations à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dans le Guide de l'*utilisateur IAM*.
+ Pour en savoir plus sur les politiques basées sur l'identité pour les ressources Amazon S3, consultez la section [Gestion des identités et des accès dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) dans le guide de l'*utilisateur d'Amazon Simple Storage Service*.
+ Pour en savoir plus sur les politiques basées sur l'identité pour les ressources Amazon EFS, consultez la section [Utilisation d'IAM pour contrôler l'accès aux données du système de fichiers](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) dans le manuel *Amazon Elastic File System* User Guide.

## Comment fonctionnent les politiques de session
<a name="session-policy"></a>

Lorsqu'un administrateur crée un rôle, celui-ci inclut souvent des autorisations étendues pour couvrir plusieurs cas d'utilisation ou plusieurs membres de l'équipe. Si un administrateur configure une [URL de console](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html), il peut réduire les autorisations pour la session qui en résulte en utilisant une *politique de session*. Par exemple, si vous créez un rôle avec un [accès en lecture/écriture](#read-write-access), vous pouvez configurer une URL qui limite l'accès des utilisateurs à leur répertoire personnel uniquement.

Les politiques de session sont des politiques avancées que vous transmettez en paramètre lorsque vous créez par programmation une session temporaire pour un rôle ou un utilisateur. Les politiques de session sont utiles pour verrouiller les utilisateurs afin qu'ils n'aient accès qu'aux parties de votre compartiment où les préfixes d'objets contiennent leur nom d'utilisateur. Le schéma suivant montre que les autorisations de la politique de session sont l'intersection des politiques de session et des politiques basées sur les ressources, ainsi que l'intersection des politiques de session et des politiques basées sur l'identité.

![\[Schéma de Venn des autorisations de politique de session. Montre dans quelle mesure les autorisations sont efficaces à l'intersection des politiques basées sur les ressources, des politiques basées sur l'identité et des politiques de session.\]](http://docs.aws.amazon.com/fr_fr/transfer/latest/userguide/images/EffectivePermissions-session-rbp-id.png)


Pour plus de détails, consultez la section [Politiques de session](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) dans le *guide de l'utilisateur IAM*.

Dans AWS Transfer Family, une politique de session n'est prise en charge que lorsque vous effectuez un transfert vers ou depuis Amazon S3. L'exemple de stratégie suivant est une stratégie de session qui limite l'accès des utilisateurs à leurs `home` annuaires uniquement. Notez ce qui suit :
+ Les `PutObjectACL` relevés `GetObjectACL` et ne sont nécessaires que si vous devez activer l'accès multicompte. En d'autres termes, votre serveur Transfer Family doit accéder à un bucket d'un autre compte.
+  La longueur maximale d'une politique de session est de 2 048 caractères. Pour plus de détails, consultez le [paramètre de demande Policy](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#API_CreateUser_RequestSyntax) pour l'`CreateUser`action dans la *référence de l'API*.
+  Si votre compartiment Amazon S3 est chiffré à l'aide de AWS Key Management Service (AWS KMS), vous devez spécifier des autorisations supplémentaires dans votre politique. Pour en savoir plus, consultez [Protection et chiffrement des données](encryption-at-rest.md).
+ Pour utiliser les politiques de session afin de créer des autorisations d'accès basées sur les attributs des utilisateurs sans créer de rôles IAM distincts pour chaque utilisateur, voir[Approches dynamiques de gestion des autorisations](dynamic-permission-management.md).

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::${transfer:HomeBucket}"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "${transfer:HomeFolder}/*",
                        "${transfer:HomeFolder}"
                    ]
                }
            }
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObjectVersion",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::${transfer:HomeDirectory}/*"
        }
    ]
}
```

**Note**  
L'exemple de politique précédent suppose que le répertoire personnel des utilisateurs est configuré pour inclure une barre oblique finale, pour indiquer qu'il s'agit d'un répertoire. Si, par contre, vous définissez le nom d'un utilisateur `HomeDirectory` sans la barre oblique finale, vous devez l'inclure dans votre politique.

Dans l'exemple de stratégie précédent, notez l'utilisation des paramètres de `transfer:HomeDirectory` stratégie `transfer:HomeFolder``transfer:HomeBucket`, et. Ces paramètres sont définis pour `HomeDirectory` ce qui est configuré pour l'utilisateur, comme décrit dans [HomeDirectory](https://docs.aws.amazon.com/transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectory)et[Implémentation de votre méthode API Gateway](authentication-api-gateway.md#authentication-api-method). Ces paramètres ont les définitions suivantes :
+ Le `transfer:HomeBucket` paramètre est remplacé par le premier composant de`HomeDirectory`.
+ Le `transfer:HomeFolder` paramètre est remplacé par les parties restantes du `HomeDirectory` paramètre.
+ La barre oblique (`/`) initiale du `transfer:HomeDirectory` paramètre a été supprimée afin de pouvoir être utilisé dans le cadre d'un nom de ressource Amazon (ARN) S3 dans une `Resource` instruction.

**Note**  
 Si vous utilisez des répertoires logiques, c'est-à-dire ceux de l'utilisateur, `LOGICAL` ces paramètres de `homeDirectoryType` stratégie (`HomeBucket``HomeDirectory`, et`HomeFolder`) ne sont pas pris en charge. 

Supposons, par exemple, que le `HomeDirectory` paramètre configuré pour l'utilisateur Transfer Family soit`/home/bob/amazon/stuff/`.
+ `transfer:HomeBucket` est défini sur `/home`.
+ `transfer:HomeFolder` est défini sur `/bob/amazon/stuff/`.
+ `transfer:HomeDirectory`devient`home/bob/amazon/stuff/`.

Le premier `"Sid"` permet à l'utilisateur de répertorier tous les répertoires à partir de`/home/bob/amazon/stuff/`.

La seconde `"Sid"` limite l'utilisateur `put` et l'`get`accès à ce même chemin,`/home/bob/amazon/stuff/`.

## Exemple de politique read/write d'accès
<a name="read-write-access"></a>

**Accorder l' read/write accès au compartiment Amazon S3**  
L'exemple de politique suivant AWS Transfer Family permet d' read/write autoriser l'accès aux objets de votre compartiment Amazon S3.

Notez ce qui suit :
+ Remplacez `amzn-s3-demo-bucket` par le nom de votre compartiment Simple Storage Service (Amazon S3).
+ Les `PutObjectACL` relevés `GetObjectACL` et ne sont nécessaires que si vous devez activer l'accès multicompte. En d'autres termes, votre serveur Transfer Family doit accéder à un bucket d'un autre compte.
+ Les `DeleteObjectVersion` instructions `GetObjectVersion` and ne sont requises que si le versionnement est activé sur le compartiment Amazon S3 auquel on accède.
**Note**  
Si vous avez *déjà* activé la gestion des versions pour votre compartiment, vous avez besoin de ces autorisations, car vous ne pouvez suspendre la gestion des versions que dans Amazon S3, et non la désactiver complètement. Pour plus de détails, consultez les sections Buckets [non versionnés, activés pour le versionnement et Suspendus](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html#versioning-states) des versions.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowListingOfUserFolder",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion", 
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging",
                "s3:GetObjectACL",
                "s3:PutObjectACL"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

**Autoriser le système de fichiers à accéder aux fichiers du système de fichiers Amazon EFS**  


**Note**  
Outre la politique, vous devez également vous assurer que les autorisations de vos fichiers POSIX accordent l'accès approprié. Pour plus d'informations, consultez [Working with users, groups, and permissions at the Network File System (NFS) Level](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html) (Utilisation d'utilisateurs, de groupes et d'autorisations au niveau NFS (Network File System)) dans le *Guide de l'utilisateur Amazon Elastic File System*.

L'exemple de politique suivant accorde au système de fichiers racine l'accès aux fichiers de votre système de fichiers Amazon EFS.

**Note**  
Dans les exemples suivants, remplacez *region* par votre région, *account-id* par le compte dans lequel se trouve le fichier et *file-system-id* par l'ID de votre Amazon Elastic File System (Amazon EFS).

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RootFileSystemAccess",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientRootAccess",
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite"
            ],
            "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/file-system-id"
        }
    ]
}
```

L'exemple de politique suivant autorise le système de fichiers utilisateur à accéder aux fichiers de votre système de fichiers Amazon EFS.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "UserFileSystemAccess",
            "Effect": "Allow",
            "Action": [
                "elasticfilesystem:ClientMount",
                "elasticfilesystem:ClientWrite"
            ],
            "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/file-system-id"
        }
    ]
}
```