La guia de platanus
  • README
  • Acuerdos
    • Guía de Estilo
      • Ejemplo: Módulo para variables de entorno
  • Stack
    • Getting Started
    • Nuestro MVC extendido
    • Ruby/Rails
      • Power Types
        • General
        • Patrones
          • Commands
          • Utils
          • Services
          • Values
          • Observers
      • Potassium
      • Power API
      • Active Admin
        • General
        • Active Admin Addons
      • Pundit
      • Shrine
        • General
        • Manejo y procesamiento de imágenes
      • Pry
      • Strong Migrations
      • Data Migrate
      • Active Job
      • Gems
      • Engines - Modularización en Rails
    • JavaScript
      • Vue
        • General
        • Testing
      • AlpineJS
    • CSS
    • Mobile
      • Expo
      • React Navigation
      • Redux
        • Crear y conectar una slice en Redux
      • Styling
        • Usando Tailwind en React Native
      • Recursos
    • Resolviendo problemas (debugging)
    • Machine Learning
  • Setup
    • Configuración de tu entorno local
      • Instalación Base
        • OSX
        • Windows
        • Linux
      • Tecnologías
        • Ruby
        • Docker
        • Node
      • Herramientas
        • Linters
        • Editores
          • IDE/Editores de Código
            • Visual Studio Code
            • Sublime Text
        • Git
    • Configuración de proyectos
      • Getting Started
      • Heroku
      • Rails
      • Circle CI
      • Vue
      • Apple App Store
      • Google Play
      • Expo
      • S3
      • Git
      • Cloudflare
      • Sendgrid
      • Dominio + Mailing
      • Google Tag Manager, Analytics, Search Console, etc.
        • Google Tag Manager
          • Configurar Google Tag Manager
        • Google Analytics
        • Indexación en Google
        • Google Ads
      • Crear un bucket de S3
      • SlackBot
      • Google BigQuery
  • Deployment
    • Rails
    • Ruby Gems
    • Browser and Node (Open Source)
    • Mobile
      • Mobile Resources
      • Apple App Storage
      • Google Play
  • Upgrades
    • Upgrade de Vue 2 a Vue 3
    • Migración Hound → reviewdog
    • Upgrade de Postgresql
Con tecnología de GitBook
En esta página
  • Crear un bucket de S3
  • Crear el bucket
  • Crear una política de acceso
  • Crear un usuario para acceder al bucket
  1. Setup
  2. Configuración de proyectos

Crear un bucket de S3

AnteriorGoogle AdsSiguienteSlackBot

Última actualización hace 1 año

Crear un bucket de S3

Muchas veces es necesario hacer un bucket en S3 para no usar bucketeer, sobretodo en productos internos.

Para eso, necesitamos hacer 3 cosas: crear un bucket, crear un usuario para acceder al bucket (y tener las credenciales) y una política de acceso que asocie al usuario con el bucket.

Crear el bucket

  1. Apretar el botón Create bucket.

  2. Poner el nombre usando la convención proyecto.platan.us y proyecto-staging.platan.us, por ejemplo lacatan.platan.us y lacatan-staging.platan.us. Seguiré usando lacatan para el ejemplo.

  3. Dejar la región como está. (generalmente es us-east-1)

  4. Desmarcar las opciones que dicen "Bloquear todo" (aparecerá un warning, aceptarlo).

  5. Dejar todos los otros campos como están y crear.

Ahora debemos modificar un permiso del bucket. Para eso, seleccionar el bucket recién creado del listado y:

  1. Ir a la pestaña de permisos

  2. Ir al fondo y buscar la sección Uso compartido de recursos entre orígenes (CORS).

  3. Seleccionar el botón editar.

  4. Escribir lo siguiente dentro, cambiando en allowed origins, las urls que correspondan:

    [
    	{
    		"AllowedHeaders": [
    			"Authorization",
    			"x-amz-date",
    			"x-amz-content-sha256",
    			"content-type"
    		],
    		"AllowedMethods": [
    			"GET",
    			"POST",
    			"PUT"
    		],
    		"AllowedOrigins": [
    			"https://pl-lacatan-staging.herokuapp.com"
    		],
    		"ExposeHeaders": [
    			"ETag"
    		],
    		"MaxAgeSeconds": 3000
    	}
    ]

    Nota: En mute por ejemplo, que hay url para staging, se pueden poner dos orígenes: pl-mute-meetings-staging.herokuapp.com y staging.mute.so

  5. Guardar los cambios

Crear una política de acceso

La política es lo que permite que el usuario que vamos a crear después pueda meter cosas al bucket (y nadie más que el)

  1. En la barra lateral ir a "Políticas"

  2. Apretar crear política

  3. Seleccionar la pestaña JSON

  4. Escribir lo siguiente, reemplazando lacatan por el nombre que corresponda:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::lacatan-staging.platan.us/*",
                    "arn:aws:s3:::lacatan-staging.platan.us"
                ]
            }
        ]
      }
  5. Siguiente y revisar (sin agregar etiquetas)

  6. Poner el nombre, no hay convención dura, pero yo les pongo s3-lacatan o s3-lacatan-staging

  7. Guardar (los otros campos dejar como están).

Crear un usuario para acceder al bucket

Ahora creamos un usuario (y las correspondientes credenciales) para usar la política y tener lo que poner en las vars de heroku

  1. Darle a Create User

  2. En el nombre poner lacatan o lacatan-staging y le damos a siguiente.

  3. Le asignamos una Policy directamente y seleccionamos la que creamos anteriormente y vamos a siguiente.

  4. En el siguiente paso le damos a crear

  5. Una vez creado, entramos al user recién creado a la sección de security credentials y ahí buscamos Access Keys y creamos una nueva.

  1. Elegimos la opción de Application running outside AWS y vamos al siguiente paso.

  2. No le agregamos descripción y creamos la llave de acceso.

  3. IMPORTANTE acá ahora aparecerá la Access Key y Secret Access Key. Acá tenemos que guardar esos valores que nos saldrán para luego poder configurarlos en la aplicación. Abajo sale un botón de Download CSV File. Descarga y guarda el archivo.

  4. **Bonus: **ir a heroku a las vars de entorno y poner las credenciales correspondientes, junto al nombre del bucket. La región en general siempre es us-east-1.4

Ir a o a IAM en el menú del sito de AWS

Ir .

https://console.aws.amazon.com/iam/home
acá
Ir acá