> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metronome.com/llms.txt
> Use this file to discover all available pages before exploring further.

# S3

## Prérequis

* Par défaut, l'authentification S3 utilise un accès basé sur les rôles. Vous aurez besoin de la politique d'approbation préremplie avec l'identifiant du service de synchronisation des données pour accorder l'accès. Elle doit ressembler à l'objet JSON suivant avec un identifiant de compte de service approprié :

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["sts:AssumeRoleWithWebIdentity"],
      "Principal": {
        "Federated": "accounts.google.com"
      },
      "Condition": {
        "StringEquals": {
          "accounts.google.com:sub": "<some_service_account_identifier>"
        }
      }
    }
  ]
}
```

## Étape 1 : Configurer le bucket S3 de destination

### Créer le bucket

1. Accédez à la page du service **S3**.
2. Cliquez sur **Create bucket**.
3. Saisissez un **Bucket name** et modifiez les paramètres par défaut selon vos besoins. Remarque : **Object Ownership** peut être réglé sur « ACLs disabled » et **Block Public Access settings for this bucket** peut être réglé sur « Block all public access » comme recommandé par AWS. Notez le **Bucket name** et la **AWS Region**.
4. Cliquez sur **Create bucket**.

## Étape 2 : Créer la politique et le rôle IAM

### Créer la politique

1. Accédez à la page du service **IAM**.
2. Accédez à l'onglet de navigation **Policies** et cliquez sur **Create policy**.
3. Cliquez sur l'onglet **JSON** et collez la politique suivante, en veillant à remplacer `BUCKET_NAME` par le nom du bucket choisi à l'étape 1.

```json JSON policy theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:DeleteObject"],
      "Resource": "arn:aws:s3:::BUCKET_NAME/*"
    }
  ]
}
```

> 🚧 Comprendre l'exigence s3:DeleteObject
>
> Par défaut, un test de connexion est effectué sur la destination lors de la configuration initiale et `s3:DeleteObject` est requis pour nettoyer les artefacts de test. Une fois le test effectué avec succès et la destination ajoutée, cette action peut être supprimée en toute sécurité, car les destinations S3 sont en mode append-only par défaut.

4. Cliquez sur **Next: Tags**, cliquez sur **Next: Review**.
5. Nommez la politique, ajoutez une description et cliquez sur **Create policy**.

### Créer le rôle

1. Accédez à la page du service **IAM**.
2. Accédez à l'onglet de navigation **Roles** et cliquez sur **Create role**.
3. Sélectionnez **Custom trust policy** et collez la politique d'approbation fournie pour autoriser l'accès AssumeRole au nouveau rôle. Cliquez sur **Next**.
4. Ajoutez la politique d'autorisations créée ci-dessus et cliquez sur **Next**.
5. Saisissez un **Role name**, par exemple, `transfer-role`, et cliquez sur **Create role**.
6. Une fois créé avec succès, recherchez le rôle créé dans la liste des rôles, cliquez sur le nom du rôle et notez la valeur **ARN**.

> 🚧 Méthode d'authentification alternative : utilisateur AWS avec HMAC Access Key ID et Secret Access Key
> L'authentification basée sur les rôles est le mode d'authentification préféré pour S3 selon les recommandations d'AWS, cependant, HMAC Access Key ID et Secret Access Key est une méthode d'authentification alternative qui peut être utilisée si vous le préférez.
>
> 1. Accédez à la page du service **IAM**.
> 2. Accédez à l'onglet de navigation **Users** et cliquez sur **Add users**.
> 3. Saisissez un **User name** pour le service, par exemple, `transfer-service`, cliquez sur **Next**. Sous **Select AWS access type**, sélectionnez l'option **Access key - Programmatic access**. Cliquez sur **Next: Permissions**.
> 4. Cliquez sur l'option **Attach existing policies directly** et recherchez le nom de la politique créée à l'étape précédente. Sélectionnez la politique et cliquez sur **Next: Tags**.
> 5. Cliquez sur **Next: Review** et cliquez sur **Create user**.
> 6. Dans l'écran **Success**, notez le **Access key ID** et le **Secret access key**.

## Étape 3 : Ajouter votre destination

Partagez en toute sécurité avec nous votre **bucket name**, votre **bucket region** et votre **role ARN** pour finaliser la connexion.
