Cifrar datos con S3cmd

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.

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.

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
  4. Esto genera la URL firmada. Ahora puedes compartir esta URL para que cualquiera pueda acceder a ese archivo hasta la fecha que hayas especificado.

También puedes firmarlo por una semana usando este formato:

[server]$ s3cmd signurl s3://my_bucket/my_file.png $(echo "`date +%s` + 3600 * 24 * 7" | bc)

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?