

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.

# Tutoriel : Configuration d'une application AWS Transfer Family Web avec un accès sélectif à plusieurs compartiments
<a name="webapp-s3-tutorial"></a>

Ce didacticiel vous explique comment configurer une application Web Transfer Family avec des autorisations de bucket Amazon S3 spécifiques pour un seul utilisateur. Vous allez apprendre à configurer une solution qui permet aux utilisateurs de télécharger depuis un compartiment et de le télécharger vers un autre tout en préservant la sécurité. Il s'agit d'un didacticiel avancé qui s'appuie sur les concepts abordés dans le didacticiel de base. Si vous débutez dans le domaine des applications AWS Transfer Family Web, pensez à commencer par[Tutoriel : Configuration d'une application Web Transfer Family de base](web-app-tutorial.md).

## Conditions préalables
<a name="webapp-s3-tutorial-prereqs"></a>

Avant de démarrer ce tutoriel, assurez-vous de disposer des éléments suivants :
+ IAM Identity Center est configuré dans la même région que votre application AWS Transfer Family Web. Notez qu'une AWS seule instance d'IAM Identity Center par AWS compte est autorisée pour toutes les régions.
+ Au moins un utilisateur est configuré dans IAM Identity Center.
+ Deux compartiments S3 : un pour les téléchargements et un pour les téléchargements.

**Note**  
Ce didacticiel partage de nombreux prérequis avec le didacticiel de base de l'application Web. Pour plus d'informations sur la configuration d'IAM Identity Center et la création d'utilisateurs, consultez[Tutoriel : Configuration d'une application Web Transfer Family de base](web-app-tutorial.md).

## Étape 1 : créer une application Web Transfer Family
<a name="webapp-s3-tutorial-create-webapp"></a>

**Pour créer une application Web Transfer Family**

1. Connectez-vous à la AWS Transfer Family console AWS Management Console et ouvrez-la à l'adresse [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Dans le volet de navigation de gauche, sélectionnez **Web apps**.

1. Choisissez **Créer une application Web**.

   Pour l'accès par authentification, notez que le service trouve automatiquement l' AWS IAM Identity Center instance que vous avez configurée comme condition préalable.

1. Dans le volet **Type d'autorisation**, sélectionnez **Créer et utiliser un nouveau rôle de service**. Le service crée pour vous le rôle de porteur d'identité. Un rôle de porteur d'identité inclut l'identité d'un utilisateur authentifié dans ses sessions.

1. Dans le volet des **unités de l'application Web**, acceptez la valeur par défaut de 1 ou ajustez-la à une valeur supérieure si nécessaire.

1. Ajoutez une balise pour vous aider à organiser vos applications Web. Pour le didacticiel, entrez le **nom** de la clé et l'**application Web du didacticiel** pour la valeur.
**Astuce**  
Vous pouvez modifier le nom de l'application Web directement depuis la page de liste des **applications Web** après l'avoir créée.

1. Choisissez **Suivant** pour ouvrir la page de **l'application Web Design**. Sur cet écran, fournissez les informations suivantes.

   Vous pouvez éventuellement fournir un titre pour votre application Web. Vous pouvez également télécharger des fichiers image pour votre logo et votre favicon.
   + Pour le titre de page, personnalisez le titre de l'onglet du navigateur que vos utilisateurs voient lorsqu'ils se connectent à l'application Web. Si vous ne saisissez rien pour le titre de la page, la valeur par défaut est **Transfer Web App**.
   + Pour le logo, téléchargez un fichier image. La taille de fichier maximale pour l'image de votre logo est de 50 Ko.
   + Pour le favicon, téléchargez un fichier image. La taille de fichier maximale de votre favicon est de 20 Ko.

1. Choisissez **Suivant**, puis sélectionnez **Créer une application Web**.

## Étape 2 : Configuration des rôles IAM pour l'accès S3
<a name="webapp-s3-tutorial-iam-roles"></a>

Vous devez créer deux rôles IAM : un avec un accès en téléchargement uniquement au premier compartiment et un autre avec un accès en téléchargement uniquement au second compartiment.

### Politique de confiance pour les deux rôles
<a name="webapp-s3-tutorial-trust-policy"></a>

Utilisez la politique de confiance suivante pour les deux rôles IAM :

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessGrantsTrustPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "access-grants.s3.amazonaws.com"
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetSourceIdentity",
                "sts:SetContext"
            ]
        }
    ]
}
```

### Politique IAM pour le bucket de téléchargement
<a name="webapp-s3-tutorial-download-policy"></a>

Créez un rôle IAM avec la politique suivante pour un accès en lecture seule à votre compartiment de téléchargement :

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ObjectLevelReadPermissions",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:GetObjectAcl",
                "s3:GetObjectVersionAcl",
                "s3:ListMultipartUploadParts",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket1"
            ]
        }
    ]
}
```

**Important**  
Remplacez **amzn-s3-demo-bucket1** par le nom réel de votre bucket de téléchargement.

### Politique IAM pour le bucket de téléchargement
<a name="webapp-s3-tutorial-upload-policy"></a>

Créez un autre rôle IAM avec la politique suivante pour l'accès en écriture à votre compartiment de téléchargement :

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ObjectLevelWritePermissions",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:AbortMultipartUpload",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket2/*",
                "arn:aws:s3:::amzn-s3-demo-bucket2"
            ]
        }
    ]
}
```

**Important**  
Remplacez **amzn-s3-demo-bucket2** par le nom réel de votre bucket de téléchargement.

## Étape 3 : configurer les autorisations d'accès S3
<a name="webapp-s3-tutorial-access-grants"></a>

1. Ouvrez la console S3 à l'adresse[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Dans le volet de navigation, sélectionnez **Access Grants**.

1. Cliquez sur **Créer une instance S3 Access Grants**.

1. Sélectionnez l'option **Ajouter une instance de centre d'identité IAM** et entrez l'ARN de l'instance de centre d'identité.

1. Cliquez sur **Suivant**, puis sur **Annuler** pour terminer la création de l'instance S3 Access Grants sans passer par d'autres étapes.

Cette étape crée l'instance S3 Access Grants. Vous allez maintenant enregistrer des sites et créer des autorisations d'accès.

## Étape 4 : enregistrer les emplacements des compartiments S3
<a name="webapp-s3-tutorial-register-locations"></a>

Enregistrez les deux compartiments S3 en tant qu'emplacements avec des autorisations d'accès S3 :

1. Dans la console S3 Access Grants, accédez à **Emplacements** et cliquez sur **Enregistrer l'emplacement**.

1. Sous Zone **d'emplacement**, choisissez le compartiment S3 spécifique pour les téléchargements (amzn-s3-demo-bucket1).

1. Lorsque vous êtes invité à choisir un rôle IAM, sélectionnez le rôle IAM de téléchargement que vous avez créé précédemment.

1. Terminez le processus d'inscription.

1. Répétez le processus pour enregistrer le compartiment de téléchargement (amzn-s3-demo-bucket2), en sélectionnant le rôle IAM de téléchargement lorsque vous y êtes invité.

## Étape 5 : créer des autorisations d'accès
<a name="webapp-s3-tutorial-create-grants"></a>

Créez deux subventions, une pour chaque établissement enregistré :

1. Dans la console S3 Access Grants, accédez à **Grants** et cliquez sur **Create grant grant**.

1. Dans **Emplacement**, cliquez sur **Parcourir l'emplacement et sélectionnez l'emplacement** du compartiment de téléchargement (amzn-s3-demo-bucket1).

1. Dans **Sous-préfixe** (facultatif), entrez `*` pour autoriser l'accès à l'ensemble du compartiment ou spécifiez un chemin `folder1/folder2/*` pour restreindre l'accès à un préfixe spécifique.

   L'utilisation `*` définira la portée de la subvention sur`s3://bucket-name/*`, autorisant l'accès à l'ensemble du compartiment. Pour autoriser l'accès à un préfixe spécifique uniquement, entrez un chemin tel que`folder1/folder2/*`, qui définira la portée de la subvention sur`s3://bucket-name/folder1/folder2/*`.

1. Sous **Autorisations et accès**, sélectionnez **Lire** pour le compartiment de téléchargement.

1. Dans **Type de bénéficiaire**, choisissez l'**identité du répertoire dans IAM Identity Center**.

1. Pour le **type principal IAM**, sélectionnez **Utilisateur** et entrez l'ID utilisateur de votre utilisateur IAM Identity Center.

1. Terminez le processus de création de subventions.

1. **Répétez le processus pour créer une autorisation pour le compartiment de téléchargement (amzn-s3-demo-bucket2), mais sélectionnez Lecture-écriture pour les autorisations.**

## Étape 6 : Configuration de la politique CORS pour les compartiments S3
<a name="webapp-s3-tutorial-cors"></a>

Configurez une politique CORS pour les deux compartiments S3 afin d'autoriser l'accès via : AWS Transfer Family WebApp

1. Ouvrez la console S3 et accédez à votre compartiment de téléchargement (amzn-s3-demo-bucket1).

1. Sélectionnez l'onglet **Autorisations**.

1. **Faites défiler la page jusqu'à la **section Partage de ressources entre origines (CORS)** et cliquez sur Modifier.**

1. Ajoutez la configuration CORS suivante, en la remplaçant par l'URL réelle *WebAppEndpoint* de votre point de WebApp terminaison :

   Vous trouverez l'URL du point de terminaison de votre application Web dans la AWS Transfer Family console ci-dessous WebApps. Il ressemblera à **https://webapp-\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1\$1.transfer-webapp.us-west-2.on.aws**.

   ```
   [
     {
       "AllowedHeaders": [
         "*"
       ],
       "AllowedMethods": [
         "GET",
         "PUT",
         "POST",
         "DELETE",
         "HEAD"
       ],
       "AllowedOrigins": [
         "https://WebAppEndpoint"
       ],
       "ExposeHeaders": [
         "last-modified",
         "content-length",
         "etag",
         "x-amz-version-id",
         "content-type",
         "x-amz-request-id",
         "x-amz-id-2",
         "date",
         "x-amz-cf-id",
         "x-amz-storage-class",
         "access-control-expose-headers"
       ],
       "MaxAgeSeconds": 3000
     }
   ]
   ```

1. Cliquez sur **Save changes** (Enregistrer les modifications).

1. Répétez le processus pour votre bucket de téléchargement (amzn-s3-demo-bucket2).

## Étape 7 : tester la configuration
<a name="webapp-s3-tutorial-testing"></a>

1. Ouvrez l'URL de votre application AWS Transfer Family Web. Vous pouvez trouver cette URL dans la AWS Transfer Family console, WebApps sous le champ **Access Endpoint**.

1. Connectez-vous à l'aide des informations d'identification utilisateur IAM Identity Center que vous avez configurées avec des autorisations d'accès.

1. Une fois connecté, vous devriez voir les deux emplacements S3 sur la page d'accueil.

1. Accédez au compartiment de téléchargement (amzn-s3-demo-bucket1) et vérifiez que vous pouvez télécharger des fichiers mais pas les charger.

1. Accédez au compartiment de téléchargement (amzn-s3-demo-bucket2) et vérifiez que vous pouvez télécharger des fichiers.

## Conclusion
<a name="webapp-s3-tutorial-conclusion"></a>

Vous avez correctement configuré AWS Transfer Family WebApp l'accès sélectif au compartiment S3 pour un seul utilisateur. Cette configuration permet à l'utilisateur de télécharger depuis un compartiment et de le télécharger vers un autre tout en préservant la sécurité grâce aux rôles IAM et aux autorisations d'accès S3.

Cette approche peut être étendue à plusieurs utilisateurs en créant des autorisations supplémentaires dans S3 Access Grants pour chaque utilisateur, ce qui permet un contrôle granulaire des autorisations d'accès aux compartiments. Pour plus d'informations sur la configuration de base de l'application Web, consultez[Tutoriel : Configuration d'une application Web Transfer Family de base](web-app-tutorial.md).