# Conectar Shade con AWS S3

**Crear el bucket**

1. Crea un bucket. Toma nota de la región y del nombre del bucket que crees
   1. Solo cambia el nombre del bucket en la entrada. Todos los demás valores predeterminados pueden dejarse igual (propósito general, sin ACL, bloquear todo el acceso público, sin versionado del bucket, cifrado del lado del servidor, sin configuración avanzada)

**Configuración de CORS**

1. Haz clic en el bucket y luego en la pestaña de permisos. Desplázate hasta la `Compartición de recursos entre orígenes (CORS)` sección.

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

2\. Haz clic en editar y luego pega este 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 %}

Este JSON se usa para permitir que los navegadores web accedan a este bucket. Esto es seguro porque proporcionamos redirecciones desde nuestro servidor y mantenemos el alcance específico de los permisos de CORS, por lo que esta configuración puede dejarse genérica.

**Crear la política con alcance**

1. En `IAM` haz clic en `Policies` y luego haz clic en `Create policy`

   1. La mayoría de los errores que vemos ocurren justo aquí, donde las políticas no se personalizan correctamente

   <figure><img src="/files/67b36f2acd487790ab2f178162e4c70f8b5b8cb2" alt=""><figcaption></figcaption></figure>
2. Asegúrate de personalizar este archivo JSON a continuación para cambiar la `Resource` entrada de `the-bucket-name-you-provisioned-earlier` por el nombre del bucket que creaste primero. **Esto está en dos lugares: uno bajo el recurso `bucketname` y otro bajo el `bucketname/*` recurso**

```
{
	"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. Usa el editor JSON y pega esto en el editor de políticas
4. Ponle a tu política un nombre relevante para el acceso al bucket de Shade que creamos antes y añade una descripción. Crea la política

**Crear el usuario**

1. Ahora, en `Users` en la barra lateral izquierda de IAM, haz clic en `Create user`
2. Dale al usuario un nombre que sea relevante para Shade. Este será el usuario a través del cual los servidores de Shade accederán a tu bucket y firmarán URLs.
3. Elige `Attach policies directly` y busca la política que creaste. Marca la casilla para adjuntarla y pulsa siguiente

<figure><img src="/files/75221222a5681e61f3f7141519262dd24807df0b" alt=""><figcaption></figcaption></figure>

4. Crear el usuario
5. Ahora haz clic en el usuario y pulsa `Create access key`

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

6. Selecciona `Application running outside AWS`

<figure><img src="/files/3a56909db1011da7cb478a5e3e3e0a4a358c4082" alt=""><figcaption></figcaption></figure>

7. Guarda en tu ordenador la Access key y la Secret key creadas

**Crear unidades en Shade**

1. En la aplicación de Shade crea una unidad BYOS

<figure><img src="/files/36118db12f415c0c2ec25f17f70fc95a5d15ac40" alt=""><figcaption></figcaption></figure>

2. Usa la `Custom` configuración para crear tu bucket
3. Completa la configuración con los valores correctos. Presta atención al endpoint. Usa el formato `s3.<region>.amazonaws.com` prefijado con `https://`. Encuentra estos endpoints según la región en la que creaste tu bucket en `Amazon S3 endpoints` en esta página: <https://docs.aws.amazon.com/general/latest/gr/s3.html>

<figure><img src="/files/92df267cbd7ed2e489a4d4f6289fdac448106ac3" alt=""><figcaption></figcaption></figure>

4. Sube un archivo para probar. Deberías ver objetos aparecer en tu bucket S3; el archivo debería subirse y obtener vistas previas/proxies con normalidad.


---

# Agent Instructions: 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:

```
GET https://academy.shade.inc/shade-academy/shade-academy-es/byos/conectar-shade-con-aws-s3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
