> For the complete documentation index, see [llms.txt](https://academy.shade.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.shade.inc/shade-academy/shade-academy-fr/apportez-votre-propre-stockage/connexion-de-shade-avec-aws-s3.md).

# Connexion de Shade avec AWS S3

**Créer le bucket**

1. Créez un bucket. Notez la région et le nom du bucket que vous créez
   1. Changez simplement la valeur d'entrée du nom du bucket. Tous les autres paramètres par défaut peuvent rester inchangés (usage général, pas d'ACL, bloquer tout accès public, pas de versioning du bucket, chiffrement côté serveur, pas de paramètres avancés)

**Configuration CORS**

1. Cliquez sur le bucket puis sur l'onglet des autorisations. Faites défiler jusqu'à la `Partage de ressources entre origines croisées (CORS)` section.

<figure><img src="/files/84aba2ed3c93464dddd02cfb680897df2331f5e6" alt=""><figcaption></figcaption></figure>

2\. Cliquez sur modifier, puis collez ce JSON.

{% code fullWidth="false" %}

```
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "PUT",
            "POST",
            "DELETE",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag",
            "Content-Length",
            "Content-Disposition",
            "Content-Encoding",
            "x-amz-request-id",
            "x-amz-id-2",
            "x-amz-version-id",
            "x-amz-server-side-encryption"
        ],
        "MaxAgeSeconds": 3000
    }
]
```

{% endcode %}

Ce JSON sert à autoriser les navigateurs web à accéder à ce bucket. C'est sécurisé car, comme nous fournissons des redirections depuis notre serveur, nous conservons le périmètre spécifique des autorisations CORS, donc cette configuration peut rester générique.

**Créer la politique ciblée**

1. Sous `IAM` cliquez sur `Policies` puis cliquez sur `Create policy`

   1. La plupart des erreurs que nous voyons se produisent ici, lorsque les politiques ne sont pas correctement personnalisées

   <figure><img src="/files/e8c4012a093ef8619254ebecf383cf27c2c4a5a1" alt=""><figcaption></figcaption></figure>
2. Assurez-vous de personnaliser le fichier JSON ci-dessous pour modifier la `Resource` entrée de `the-bucket-name-you-provisioned-earlier` pour le nom du bucket que vous avez créé en premier. **Cela se trouve à deux endroits : l'un sous la `bucketname` ressource du bucket et l'autre sous la `bucketname/*` ressource**

```
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"s3:ListBucket",
				"s3:GetBucketLocation"
			],
			"Resource": "arn:aws:s3:::the-bucket-name-you-provisioned-earlier"
		},
		{
			"Effect": "Allow",
			"Action": [
				"s3:GetObject",
				"s3:PutObject",
				"s3:DeleteObject"
			],
			"Resource": "arn:aws:s3:::the-bucket-name-you-provisioned-earlier/*"
		}
	]
}
```

3. Utilisez l'éditeur JSON et collez ceci dans l'éditeur de politique
4. Nommez votre politique de manière pertinente pour l'accès au bucket Shade que nous avons créé précédemment et ajoutez une description. Créez la politique

**Créer l'utilisateur**

1. Maintenant, sous `Users` dans la barre latérale gauche d'IAM, cliquez sur `Create user`
2. Donnez à l'utilisateur un nom pertinent pour Shade. Ce sera l'utilisateur par lequel les serveurs Shade accéderont à votre bucket et généreront des URL signées.
3. Choisissez `Attach policies directly` et trouvez la politique que vous avez créée. Cochez la case pour l'attacher, puis cliquez sur suivant

<figure><img src="/files/1edc6adf034be3220adebc263c3b3769c678d16d" alt=""><figcaption></figcaption></figure>

4. Créer l'utilisateur
5. Maintenant, cliquez sur l'utilisateur puis sur `Create access key`

<figure><img src="/files/e581cf3897a4dc7419e98af3150ba41d795c99de" alt=""><figcaption></figcaption></figure>

6. Sélectionnez `Application running outside AWS`

<figure><img src="/files/19a69192065eb9086de645697ffc455c80a4bdf7" alt=""><figcaption></figcaption></figure>

7. Enregistrez sur votre ordinateur la clé d'accès et la clé secrète créées

**Créer des drives dans Shade**

1. Dans l'application Shade, créez un drive BYOS

<figure><img src="/files/04dfc044c616ebe97d72eb4706b39402608d5f79" alt=""><figcaption></figcaption></figure>

2. Utilisez la `Custom` configuration pour créer votre bucket
3. Renseignez la configuration avec les bonnes valeurs. Faites attention à l'endpoint. Utilisez le `s3.<region>.amazonaws.com` format précédé de `https://`. Trouvez ces endpoints en fonction de la région dans laquelle vous avez créé votre bucket, sous `Amazon S3 endpoints` sur cette page : <https://docs.aws.amazon.com/general/latest/gr/s3.html>

<figure><img src="/files/8ef3b513a8055dc829c1822f59af12193f83d491" alt=""><figcaption></figcaption></figure>

4. Téléversez un fichier pour tester. Vous devriez voir des objets apparaître dans votre bucket S3, le fichier devrait se téléverser et obtenir des aperçus/proxys normalement.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://academy.shade.inc/shade-academy/shade-academy-fr/apportez-votre-propre-stockage/connexion-de-shade-avec-aws-s3.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
