Cifrar datos con S3cmd

Cómo cifrar sus 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:

[server]$ nano ~/.s3cfg

Agrega las siguientes líneas para que pueda 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 depósito al que está cargando contenido. textfile.txt es el nombre del único archivo que está 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 su depósito.

Haz clic en el objeto, copie la URL y luego pégalo en un navegador.

Verás que los datos del archivo están cifrados.

Descifrar un archivo

Cuando usa 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 en la que deseas permitir que se firme/acceda a la URL hasta.
  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. Ejecuta el siguiente comando para firmar la URL hasta esta marca de tiempo. (Asegúrate de cambiar el nombre del depósito 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 puede compartir esta URL para que cualquiera pueda acceder a ese archivo hasta la fecha que haya especificado.

También puedes firmarlo por 1 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?