Cifrar datos con S3cmd

Migración de clusteres de DreamObjects

DreamHost en este momento está en el proceso de migrar todas la cuentas de DreamObjects a una nueva plataforma de hardware.

Por favor revisa este artículo para identificar el cluster en el que está tu cuenta de DreamObjects y las herramientas que este soporta.

Cómo cifrar tus datos

S3cmd puede cifrar tus datos mientras los carga en DreamObjects. Para utilizar esta funcionalidad, primero debes configurar tu archivo .s3cfg como se muestra en este artículo:

Configurar tu archivo .s3cfg

Abre el archivo en el directorio de tu usuario.

[server]$ nano ~/.s3cfg

Agrega las siguientes líneas para que puedas usar el cifrado. Asegúrate de crear tu propia contraseña para gpg_passphrase:

check_ssl_certificate = True
check_ssl_hostname = True
gpg_command = /usr/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase = yourpassword

Tu configuración ahora está configurada para encriptar datos.

Cifrar datos mientras se cargan

Para cifrar tus datos durante la carga, usa la marca -e. En el siguiente ejemplo, bucket-name es el nombre del bucket al que estás cargando contenido. textfile.txt es el nombre del único archivo que estás cargando:

[server]$  s3cmd -e put testfile.txt s3://bucket-name

upload: '/tmp/tmpfile-zFGwbLHMVEINdHh3615n' -> 's3://bucket-name/testfile.txt'  [1 of 1]
 63 of 63   100% in    0s   129.96 B/s  done

Para confirmar que está encriptado, navega a la página DreamObjects. Haz clic en el botón Ver objetos debajo de tu nombre de usuario. Se abre un mensaje para que puedas ver los objetos en tu bucket.

ES DreamObjects view an object

Haz clic en el objeto, copia la URL y luego pégalo en un navegador. Verás que los datos del archivo están cifrados.

DreamObjects view encrypted object

Descifrar un archivo

Cuando usas s3cmd para descargar un archivo cifrado, se descifra automáticamente:

[server]$ s3cmd get s3://bucket-name/encrypted-file.txt
download: 's3://bucket-name/encrypted-file.txt' -> './encrypted-file.txt'  [1 of 1]
 70 of 70   100% in    0s   323.19 B/s  done

Si lees el contenido del archivo, verás que ya no está encriptado:

[server]$ cat encrypted-file.txt
Testing a file

Firmar una URL de S3 para proporcionar acceso público limitado

Puedes establecer manualmente una fecha de vencimiento para acceder a un archivo. Para hacer esto, primero debes convertir la fecha en una marca de tiempo de Unix Epoch.

  1. Decide la fecha límite en la que deseas permitir que se firme/acceda a la URL.
  2. Visita Epoch Converter para convertir tu fecha en una marca de tiempo de la época. Se verá como una cadena de números. Por ejemplo: 1540232086
  3. Corre el siguiente comando para firmar la URL hasta esta marca de tiempo. (Asegúrate de cambiar el nombre del bucket y el nombre del archivo por tu información real).
    [server]$ s3cmd signurl s3://my_bucket/my_file.png 1540232086
    http://my-bucket.objects-us-east-1.dream.io/my_file.png?AWSAccessKeyId=DHDPTCQ3WFGHPSS5FAXG&Expires=1540232086&Signature=9nf8f9kG%2FqDa76rmET4R%2FpbtaGM%3D
    Esto genera la URL firmada.

    Alternativamente, puedes firmarla por 1 semana usando este formato:

    [server]$ s3cmd signurl s3://my_bucket/my_file.png  $(echo "`date +%s` + 3600 * 24 * 7" | bc)
  4. Comparte esta URL para que cualquiera pueda accesar ese archivo hasta la fecha que hayas especificado.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?