

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.

# Étape 1 : créer un compartiment Amazon S3
<a name="using-s3-bucket"></a>

**Important**  
Le AWS OpsWorks Stacks service a atteint sa fin de vie le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur [AWS Re:Post](https://repost.aws/) ou via le [AWS Support](https://aws.amazon.com/support) Premium.

Vous devez d'abord créer un compartiment Amazon S3. Vous pouvez le faire directement à l'aide de la console, de l'API ou de la CLI Amazon S3, mais un moyen plus simple de créer des ressources consiste souvent à utiliser un CloudFormation modèle. Le modèle suivant crée un compartiment Amazon S3 pour cet exemple et définit un [profil d'instance](https://docs.aws.amazon.com/IAM/latest/UserGuide/instance-profiles.html) avec un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html) qui accorde un accès illimité au compartiment. Vous pouvez ensuite utiliser un paramètre de couche pour attacher le profil d'instance aux instances serveur d'applications de la pile, ce qui permet à l'application d'accéder au compartiment, comme décrit ultérieurement. L'utilité des profils d'instance ne se limite pas à Amazon S3 ; ils sont utiles pour intégrer divers services AWS. 

```
{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Resources" : {
      "AppServerRootRole": {
         "Type": "AWS::IAM::Role",
         "Properties": {
            "AssumeRolePolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Principal": {
                     "Service": [ "ec2.amazonaws.com" ]
                  },
                  "Action": [ "sts:AssumeRole" ]
               } ]
            },
            "Path": "/"
         }
      },
      "AppServerRolePolicies": {
         "Type": "AWS::IAM::Policy",
         "Properties": {
            "PolicyName": "AppServerS3Perms",
            "PolicyDocument": {
               "Statement": [ {
                  "Effect": "Allow",
                  "Action": "s3:*",
                  "Resource": { "Fn::Join" : ["", [ "arn:aws:s3:::", { "Ref" : "AppBucket" } , "/*" ]
                  ] }
               } ]
            },
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
      "AppServerInstanceProfile": {
         "Type": "AWS::IAM::InstanceProfile",
         "Properties": {
            "Path": "/",
            "Roles": [ { "Ref": "AppServerRootRole" } ]
         }
      },
     "AppBucket" : {
      "Type" : "AWS::S3::Bucket"
      }
   },
   "Outputs" : {
       "BucketName" : {
           "Value" : { "Ref" : "AppBucket" }
       },
       "InstanceProfileName" : {
           "Value" : { "Ref" : "AppServerInstanceProfile" }
       }
   }
}
```

Plusieurs choses se produisent lorsque vous lancez le modèle :
+ La `[AWS::S3::Bucket](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html)` ressource crée un compartiment Amazon S3.
+ La ressource `[AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)` crée un profil d'instance qui sera attribué aux instances serveur d'applications.
+ La ressource `[AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)` crée le rôle du profil d'instance.
+ La `[AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)` ressource définit les autorisations du rôle afin de permettre un accès illimité aux compartiments Amazon S3.
+ La section `Outputs` affiche les noms des profils d'instance et des compartiments dans la console CloudFormation une fois que vous avez lancé le modèle.

  Vous aurez besoin de ces valeurs pour configurer votre pile et vos applications.

Pour plus d'informations sur la création de CloudFormation modèles, voir [Apprendre les bases des modèles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/gettingstarted.templatebasics.html).

**Pour créer le compartiment Amazon S3**

1. Copiez l'exemple de modèle sur un fichier texte de votre système.

   Cet exemple suppose que le fichier se nomme `appserver.template`.

1. Ouvrez la console [CloudFormation](https://console.aws.amazon.com/cloudformation/) et choisissez **Créer une pile**.

1. Dans la zone **Nom de la pile**, saisissez le nom de la pile.

   Cet exemple suppose que le fichier se nomme **AppServer**.

1. Choisissez **Upload template file (Charger un fichier de modèle)**, choisissez **Parcourir**, sélectionnez le fichier `appserver.template` que vous avez créé à l'étape 1, puis choisissez **Étape suivante**.

1. Sur la page **Specify Parameters (Spécifier des paramètres)**, sélectionnez **I acknowledge that this template may create IAM resources (Je confirme que ce modèle peut créer des ressources IAM)**, puis choisissez **Étape suivante** sur chaque page de l'Assistant jusqu'à ce que vous atteigniez la fin. Choisissez **Créer**. 

1. Une fois que la **AppServer**pile a atteint le statut **CREATE\$1COMPLETE**, sélectionnez-la et choisissez l'onglet **Sorties**.

   Il se peut que vous ayez besoin d'actualiser plusieurs fois pour mettre à jour le statut.

1. Dans l'onglet **Sorties**, enregistrez les **InstanceProfileName**valeurs **BucketName**et pour une utilisation ultérieure.

**Note**  
CloudFormation utilise le terme *pile* pour désigner l'ensemble de ressources créées à partir d'un modèle ; ce n'est pas la même chose qu'une pile OpsWorks Stacks.