Página 1 de 27 Guía C5 – Configuración de la API de S3 en FreeNAS Fase I. Crear grupo de cuenta de usuario y crear cuenta de usuario para S3 ........................................... 2 Paso 1. Contar con una cuenta en AWS y tenerla activa. .................................................................. 2 Paso 2. Crear un grupo de cuentas de usuario para el acceso a S3 .................................................. 2 Paso 3. Definir las políticas de acceso ............................................................................................... 2 Paso 4. Crear un usuario para el acceso de S3 ................................................................................. 3 Paso 5. Crear Bucket ......................................................................................................................... 6 Paso 6. Probar acceso a Bucket ........................................................................................................ 8 Fase II – Configuración de srv03 (FreeNAS)........................................................................................... 10 Primera Parte: Pasos previos en FreeNAS.......................................................................................... 10 Segunda parte – Instalar plugins (complementos) ............................................................................... 11 2.1 Instalar el plugin para acceso a S3 de AWS .............................................................................. 11 2.2 Configurar la jail de s3cmd ......................................................................................................... 12 2.3 Probar comunicación con la jail s3cmd_1 .................................................................................. 13 2.4 Instalar las librerías requeridas por la API de S3 en FreeBSD ................................................... 14 Tercera parte – Crear dataset para los datos locales .......................................................................... 18 3.1 Crear un dataset para el almacenamiento de los archivos locales ............................................. 18 Cuarta parte – Vincular el directorio local de FreeBSD a la jail s3cmd_1............................................. 20 Quinta parte – Vincular un bucket con el directorio local ..................................................................... 22 5.1 Verificar la información que se requiere en la API de S3............................................................ 22 5.2 ejecutar asistente de configuración de s3cmd ............................................................................ 22 5.3 Pruebas de comunicación .......................................................................................................... 24 5.3.1 Listado de contenido ........................................................................................................... 24 5.3.2 Copiar un archivo desde la jail hacia el bucket .................................................................... 24 5.3.3 Subir un archivo cualquiera al bucket y descargarlo en la jail .............................................. 25 5.4 Sincronizar el contenido del punto de montaje del dataset y el bucket de destino...................... 26 Objetivo general Permitir la sincronización de archivos entre FreeNAS y el servicio S3 de AWS, por medio de la vinculación de un directorio local en FreeBSD y un Bucket Objetivos de la guía: Instalar el plugin S3. Configurar las opciones de red de la jail para s3_cmd Instalar las librerías de FreeBSD que permitan tener funcional el entorno de la API de S3. Asociar un dataset previamente creado para compartir recursos SMB/CIFS. Utilizar los comandos de sincronización.
27
Embed
Guía C5 Configuración de la API de S3 en FreeNAS · Página 1 de 27 Guía C5 – Configuración de la API de S3 en FreeNAS Fase I. Crear grupo de cuenta de usuario y crear cuenta
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Página 1 de 27
Guía C5 – Configuración de la API de S3 en FreeNAS Fase I. Crear grupo de cuenta de usuario y crear cuenta de usuario para S3 ........................................... 2
Paso 1. Contar con una cuenta en AWS y tenerla activa. .................................................................. 2
Paso 2. Crear un grupo de cuentas de usuario para el acceso a S3 .................................................. 2
Paso 3. Definir las políticas de acceso ............................................................................................... 2
Paso 4. Crear un usuario para el acceso de S3 ................................................................................. 3
Paso 6. Probar acceso a Bucket ........................................................................................................ 8
Fase II – Configuración de srv03 (FreeNAS) ........................................................................................... 10
Primera Parte: Pasos previos en FreeNAS .......................................................................................... 10
Segunda parte – Instalar plugins (complementos) ............................................................................... 11
2.1 Instalar el plugin para acceso a S3 de AWS .............................................................................. 11
2.2 Configurar la jail de s3cmd ......................................................................................................... 12
2.3 Probar comunicación con la jail s3cmd_1 .................................................................................. 13
2.4 Instalar las librerías requeridas por la API de S3 en FreeBSD ................................................... 14
Tercera parte – Crear dataset para los datos locales .......................................................................... 18
3.1 Crear un dataset para el almacenamiento de los archivos locales ............................................. 18
Cuarta parte – Vincular el directorio local de FreeBSD a la jail s3cmd_1............................................. 20
Quinta parte – Vincular un bucket con el directorio local ..................................................................... 22
5.1 Verificar la información que se requiere en la API de S3 ............................................................ 22
5.2 ejecutar asistente de configuración de s3cmd ............................................................................ 22
5.3 Pruebas de comunicación .......................................................................................................... 24
5.3.1 Listado de contenido ........................................................................................................... 24
5.3.2 Copiar un archivo desde la jail hacia el bucket .................................................................... 24
5.3.3 Subir un archivo cualquiera al bucket y descargarlo en la jail .............................................. 25
5.4 Sincronizar el contenido del punto de montaje del dataset y el bucket de destino ...................... 26
Objetivo general Permitir la sincronización de archivos entre FreeNAS y el servicio S3 de AWS, por medio de la vinculación de un directorio local en FreeBSD y un Bucket Objetivos de la guía:
Instalar el plugin S3.
Configurar las opciones de red de la jail para s3_cmd
Instalar las librerías de FreeBSD que permitan tener funcional el entorno de la API de S3.
Asociar un dataset previamente creado para compartir recursos SMB/CIFS.
Utilizar los comandos de sincronización.
Página 2 de 27
Fase I. Crear grupo de cuenta de usuario y crear cuenta de usuario para S3
Paso 1. Contar con una cuenta en AWS y tenerla activa.
Paso 2. Crear un grupo de cuentas de usuario para el acceso a S3 2.1 Services/IAM 2.2 Group 2.3 Clic en botón “Create new group” 2.4 Escriba un nombre, para esta guía utilice: gpoS3
2.5 Dar un clic en el botón “Next Step”
Paso 3. Definir las políticas de acceso 3.1 seleccione AmazonS3FullAccess
3.2 Dar un clic en el botón “Next Step” 3.3 Revisar los datos
Página 3 de 27
3.4 Dar un clic en el botón “Create Group”
Paso 4. Crear un usuario para el acceso de S3 4.1 Services/IAM 4.2 Users 4.3 Clic en botón “Add user” 4.4 Definir el nombre del usuario: acceso_S301 4.5 Seleccionar el tipo de acceso AWS: “Programmatic Access” 4.6 Clic en el botón “Next Permitions”
4.7 Definir la pertenencia a un grupo: dar clic en “Add user to group”
Página 4 de 27
4.8 Seleccionar el grupo “gpoS3”
4.9 Clic en el botón “Next Review”
Página 5 de 27
4.10 Verificar los valores de la cuenta de usuario.
Nombre de la cuenta: acceso_S301
Tipo de acceso: Programmatic access
Grupo de cuentas de usuario: gpoS3
4.11 Clic en botón “Create user”
4.12 Descargar archivo CSV con datos de usuario, en un lugar seguro. 4.13 Copiar el Access Key ID y el Secret Access key, en un lugar seguro 4.14 Dar clic en botón “Close”
Página 6 de 27
Paso 5. Crear Bucket 5.1 Ingresar a Services 5.2 Seleccionar S3 5.3 clic en botón “Create bucket”
Definir un nombre único para el Bucket name: por ejemplo: “repoempresay”
Región: Verificar que la región seleccionada corresponda a la región de la cuenta de AWS
5.4 Clic en botón “Next” 5.5 No se seleccionarán las propiedades sobre versionada, bitácora y etiquetas.
5.6 Clic en botón “Next”
Página 7 de 27
5.7 Seleccionar permisos del bucket
Asignar permisos al usuario propietario (cuenta de AWS): Read = Write =
Asignar permisos al objeto: Read = Write = ,
Permisos públicos: Do not grant public read Access
Manage System Permition: Do not grant Amazon S3 Log Delivery
5.8 Dar clic en botón “Next” 5.9 Revisar los permisos del Bucket
5.10 Dar clic en botón “Create bucket”
Página 8 de 27
Paso 6. Probar acceso a Bucket 6.1 Utilizar el navegador Web y crear un directorio en el bucket. 6.2 Subir cualquier archivo en el directorio creado en el bucket 6.3 Descargar el S3 Browser Enlace para descarga: http://s3browser.com/ 6.4. Instalar el S3Browser en un cliente Windows 6.5 Definir las credenciales
Primera Parte: Pasos previos en FreeNAS 0.1 Tener configurado los parámetros de red IPv4 y salida a Internet
0.2 Actualizar el sistema operativo y el Appliance. /Sistema/Actualización Botón Comprobar ahora
0.3 Tener un dataset o volumen disponible para configurar el almacenamiento local 0.4 Tener de 6.0 GB a 8.0 GB de memoria RAM (Recomendado en equipo físico de pruebas, en equipo de producción de 8.0 GB a 12 GB)
Página 11 de 27
Segunda parte – Instalar plugins (complementos) Verificar que el appliance de FreeNAS tenga salida a internet
2.1 Instalar el plugin para acceso a S3 de AWS 1. Seleccionar el menú plugins 2. Ubicar el complemento s3cmd 3. Dar clic e el botón “instalar”
4. Aceptar pantalla de confirmación.
5. Esperar proceso de descarga y creación de la jail.
Nota: este proceso puede tomar varios minutos ya que dependerá del ancho de banda para la Internet, la velocidad de los microporcesadores y la cantidad de memoria RAM Si se obtiene el error “no hay suficiente espacio en SWAP”, verifique que la MV o equipo físico tenga al menos 6.0 GB
Página 12 de 27
6. Verificar que se haya creado la jail
2.2 Configurar la jail de s3cmd Para asignar las direcciones IPv4 a una jail se utiliza el botón “edit” y no la configuración por comandos internos de la jail. 1. Dar clic en menú Jail 2. Seleccionar la jaula s3cmd_1 3. Dar clic en opción Editar.
4. Completar las opciones de configuración de la interfaz:
Verificar que se tenga la dirección 192.168.50+Y.31
Desactivar Vimage
Sysctls: allow.raw_sockets=true
Página 13 de 27
Dar clic en botón guardar 5. Reiniciar la jail
2.3 Probar comunicación con la jail s3cmd_1 1. Verificar que la jail responde desde la red 192.168.50+Y.0 Microsoft Windows [Versión 10.0.14393]
(c) 2016 Microsoft Corporation. Todos los derechos reservados.
C:\> ping 192.168.50.31
Haciendo ping a 192.168.50.31 con 32 bytes de datos:
Respuesta desde 192.168.50.31: bytes=32 tiempo<1m TTL=64
Página 14 de 27
Respuesta desde 192.168.50.31: bytes=32 tiempo<1m TTL=64
Respuesta desde 192.168.50.31: bytes=32 tiempo<1m TTL=64
Respuesta desde 192.168.50.31: bytes=32 tiempo<1m TTL=64
Verificar que el sistema de paquetes se encuentre actualizado y sin conflictos root@s3cmd_1:/ # pkg autoremove
Checking integrity... done (0 conflicting)
Nothing to do.
root@s3cmd_1:/ # pkg update
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Página 18 de 27
Tercera parte – Crear dataset para los datos locales Este paso solo se realizará si no existe un dataset para los archivos, este dataset corresponde al directorio local que es compartido por los protocolos SMB/CIFS, NFS y WebDAV de srv03
3.1 Crear un dataset para el almacenamiento de los archivos locales 1. Seleccionar Almacenamiento 2. Seleccionar el volumen (por ejemplo: vol_3g) 3. Dar clic en el botón “Create Dataset”
4. llenar formulario
Nombre: dtset_win
Nivel compresión: Heredar lz4
Tipo de recurso: UNIX
Distinción entre mayúsculas y minúsculas: Sensible
Página 19 de 27
5. Dar clic en botón “Añadir un conjunto de datos”
Nota: Hay que recordar que este paso solo se realizará si no hubiera un dataset (en la guía anterior se debió crear un dataset para los datos compartidos por medio de SMB/CIFS, NFS y WebDAV)
Página 20 de 27
Cuarta parte – Vincular el directorio local de FreeBSD a la jail s3cmd_1 1. Seleccionar menú jaulas 2. Seleccionar la jaula s3cmd_1 3. Seleccionar Almacenamiento 4. Seleccionar Añadir Almacenamiento
5. Crear directorio interno en la jail y asociarlo con el dataset dset_win
Origen: /mnt/vol_3g/dtset_win
Destino: /mnt/dtset_win_ori
Solo lectura: deshabilitado
Crear directorio: Habilitado
6. Dar clic en el botón OK
Página 21 de 27
6. Verificar que se haya añadido el dataset
7 Verificar que el recurso esté montado dentro de la jail 7.1 Copie desde un equipo cliente Windows o Linux algunos archivos al directorio local. 7.2 Ingresar a la consola de la jail 7.3 verificar que se puede ver el contenido del punto /mnt/dtset_win_ori root@s3cmd_1:/ # ls -l /mnt/dtset_win_ori/
total 3
-rwxrwxr-x+ 1 1001 1001 0 Dec 13 07:52 .windows
-rwxrwxr-x+ 1 1001 1001 15 Dec 13 08:09 carta01.txt
-rwxrwxr-x+ 1 1001 1001 20 Dec 13 08:28 carta02.txt
-rwxrwxr-x+ 1 1001 1001 200 Dec 13 08:28 carta03.txt
Página 22 de 27
Quinta parte – Vincular un bucket con el directorio local
5.1 Verificar la información que se requiere en la API de S3 1. La ruta del programa gpg 2. El valor del Access key ID y del Secret access key 3. La región donde se encuentran los buckets
5.1.1 Ruta del programa para cifrado y firmas digitales (en FreeBSD se está utilizando la versión 2 de gpg) root@s3cmd_1:/ # whereis gpg
5.1.2 Valores del Access Key y del Secret Access Key 5.1.3 Para verificar la región de los bucket Vaya a s3 / buckets/ seleccionar el bucket deseado / dar clic en botón properties Puede seleccionar vista antigua para que la pantalla de S3 sea similar a la siguiente figura
5.2 ejecutar asistente de configuración de s3cmd 5.2.1 Digite el siguiente comando root@s3cmd_1:/ # s3cmd --configure
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3. Leave them empty for
using the env variables.
5.2.2 Escriba el valor del Access Key Access Key [AKIAJTFUJLTWULKY4EMA]: AKI_EL_ACCESS_KEY
5.2.3 Escriba el valor del Secreet Key Secret Key [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]: Onn7_Aqui_el_Secret_Ke
Página 23 de 27
5.2.4 Defina la región de los buckets Default Region [US]: Oregon
5.2.5 Definir la palabra o frase para la encriptación de la comunicación Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password [test]: Cristo_vive
6.2.6 Definir la ruta del programa para cifrado y firmas digitales Path to GPG program [None]: /usr/local/bin/gpg
6.2.7 Definir si se utilizará HTTPS When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [No]: Enter
Página 24 de 27
6.2.8 Definir si se utilizará un HTTP proxy On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't connect to S3 directly
HTTP Proxy server name:
6.2.9 Verificar la información que utilizará la API New settings:
6.2.10 Prueba de comunicación con las credenciales Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
6.2.11 Guardar la configuración Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'
5.3 Pruebas de comunicación
5.3.1 Listado de contenido
A. Listar los buckets disponibles root@s3cmd_1:/ # s3cmd ls
2016-12-04 15:37 s3://contabcuc
2016-06-10 01:24 s3://pruebacuc01
B. Listar el contenido del bucket contabcuc root@s3cmd_1:/ # s3cmd ls s3://contabcuc
Nota: para este ejemplo, no hay archivos
5.3.2 Copiar un archivo desde la jail hacia el bucket
Para este ejemplo se creará un archivo con el ombre prueba01.txt, con el contenido del directorio raíz A. Listar el contenido para próxima verificación root@s3cmd_1:/ # ls /
.cshrc bin lib proc sys
.plugins boot libexec rescue tmp
.profile dev media root usr
COPYRIGHT etc mnt sbin var
Página 25 de 27
B. Crear archivo con el contenido del directorio raíz root@s3cmd_1:/ # ls > /root/prueba01.txt
C. Copiar el archivo desde la jail hasta el bucket root@s3cmd_1:/ # s3cmd put /root/prueba01.txt s3://contabcuc
upload: '/root/prueba01.txt' -> 's3://contabcuc/prueba01.txt' [1 of 1]
112 of 112 100% in 0s 314.49 B/s done
upload: '/root/prueba01.txt' -> 's3://contabcuc/prueba01.txt' [1 of 1]
112 of 112 100% in 0s 282.52 B/s done
D. Verificar que se haya creado enviado el archivo root@s3cmd_1:/ # s3cmd ls s3://contabcuc
2016-12-13 17:37 112 s3://contabcuc/prueba01.txt
5.3.3 Subir un archivo cualquiera al bucket y descargarlo en la jail
A. Desde un navegador Web subir un archivo cualquiera al bucket
B. Listar archivos en el bucket root@s3cmd_1:/ # s3cmd ls s3://contabcuc
2016-12-13 17:49 397416 s3://contabcuc/Hola.docx
2016-12-13 17:37 112 s3://contabcuc/prueba01.txt
C. Copiar desde el bucket hacia el jail root@s3cmd_1:/ # s3cmd get s3://contabcuc/Hola.docx /root
download: 's3://contabcuc/Hola.docx' -> '/root/Hola.docx' [1 of 1]
download: 's3://contabcuc/Hola.docx' -> '/root/Hola.docx' [1 of 1]
397416 of 397416 100% in 1s 218.96 kB/s done
Página 26 de 27
D. Verificar la copia del archivo root@s3cmd_1:/ # ls /root/
.cshrc .history .login .s3cfg prueba01.txt
.gnupg .k5login .profile Hola.docx
5.4 Sincronizar el contenido del punto de montaje del dataset y el bucket de destino 5.4.1 Realizar la sincronización root@s3cmd_1:/ # s3cmd -v sync /mnt/jdset_win s3://contabcuc
INFO: Compiling list of local files...
INFO: Running stat() and reading/calculating MD5 values on 4 files, this may take some time...
INFO: Retrieving list of remote files for s3://contabcuc/jdset_win ...
INFO: Forwarding request to us-west-2
INFO: Found 4 local files, 0 remote files
INFO: Verifying attributes...
INFO: Summary: 4 local files to upload, 0 files to remote copy, 0 remote files to delete
WARNING: jdset_win/.windows: Owner username not known. Storing UID=1001 instead.
WARNING: jdset_win/.windows: Owner groupname not known. Storing GID=1001 instead.
upload: '/mnt/jdset_win/.windows' -> 's3://contabcuc/jdset_win/.windows' [1 of 4]
0 of 0 0% in 0s 0.00 B/s done
WARNING: jdset_win/carta01.txt: Owner username not known. Storing UID=1001 instead.
WARNING: jdset_win/carta01.txt: Owner groupname not known. Storing GID=1001 instead.
upload: '/mnt/jdset_win/carta01.txt' -> 's3://contabcuc/jdset_win/carta01.txt' [2 of 4]
15 of 15 100% in 0s 61.57 B/s done
ARNING: jdset_win/carta02.txt: Owner username not known. Storing UID=1001 instead.
WARNING: jdset_win/carta02.txt: Owner groupname not known. Storing GID=1001 instead.
upload: '/mnt/jdset_win/carta02.txt' -> 's3://contabcuc/jdset_win/carta02.txt' [3 of 4]
20 of 20 100% in 0s 78.28 B/s done
WARNING: jdset_win/carta03.txt: Owner username not known. Storing UID=1001 instead.
WARNING: jdset_win/carta03.txt: Owner groupname not known. Storing GID=1001 instead.
upload: '/mnt/jdset_win/carta03.txt' -> 's3://contabcuc/jdset_win/carta03.txt' [4 of 4]
200 of 200 100% in 0s 757.48 B/s done
Done. Uploaded 235 bytes in 1.1 seconds, 213.82 B/s.
5.4.2 Verificar que se haya subido el directorio root@s3cmd_1:/ # s3cmd ls s3://contabcuc
DIR s3://contabcuc/jdset_win/
2016-12-13 17:49 397416 s3://contabcuc/Hola.docx
2016-12-13 17:37 112 s3://contabcuc/prueba01.txt
root@s3cmd_1:/ # s3cmd ls s3://contabcuc/jdset_win/
Nota: si se desea un proceso automatizado se puede utilizar el comando cron / crontab Tarea. Agregue otro archivo al directorio /mnt/jdset_win y compruebe que en el proceso de sincronización, solo el archivo que se ha agregado se subirá. Recuerde que el directorio dentro de la jail se ha montado como read only, por lo que solamente podrá agregar un archivo por la red SMB Para mayor información sobre los comabdos de la API de s3cmd consulte: http://s3tools.org/s3cmd-howto Para mayor información del comando cron consulte https://www.freebsd.org/doc/handbook/configtuning-cron.html