Ir al contenido

Webinar: Regístrese para nuestro próximo seminario web

Regístrate Ahora

AWS S3: cifrado del lado del cliente y del servidor

AWS S3: cifrado del lado del cliente y del servidor

Cifrado es uno de los requisitos más básicos para garantizar la privacidad de los datos, especialmente para la protección de extremo a extremo de los datos transmitidos a través de redes. Texto sin formato is cifrado utilizando un cifrado algoritmo y un cifrado clave. El cifrado convierte el texto legible en un texto ilegible, que se denomina texto cifrado (cifrado datos).

En el blog de hoy, analizaremos diversas opciones de cifrado del Servicio de Almacenamiento Simple de AWS (Simple Storage Service, S3). S3 es altamente confiable, seguro y económico en comparación con el almacenamiento local (On-Prem) para aplicaciones con uso intensivo de almacenamiento, como Hadoop EMR. S3 almacena los datos en objetos llamados "Buckets" y cada objeto puede tener un tamaño de hasta 5 TB.

Metodologías de cifrado

AWS S3 ofrece ambas metodologías de cifrado, Cifrado en tránsito y Cifrado en reposo.

Cifrado en tránsito

Cifrado en tránsito Para Amazon S3 se puede facilitar con la ayuda de SSL / TLS en el extremo del cliente, así como con la siguiente política de depósito similar a nivel de depósito:

{
  "Id": "Policy1600282742195",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1600282739517",
      "Action": [
        "s3:GetObject"
      ],
      "Effect": "Deny",
      "Resource": "arn:aws:s3:::mysecures3buket",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

Cifrado en reposo

Cifrado en reposo se pueden clasificar además en Encriptación del lado del cliente y Cifrado del lado del servidor También. Tanto para el cifrado del lado del servidor como del lado del cliente, AWS utiliza AES-256 con modo de contador Galois (GCM) para cualquier operación de cifrado de clave simétrica. GCM proporciona cifrado autenticado añadiendo una etiqueta única al texto cifrado que verifica que los datos cifrados no hayan sido manipulados de ninguna manera.

Cifrado del lado del cliente

In Encriptación del lado del clienteLos datos se cifran antes de enviarlos al bucket de S3. Para implementar... Encriptación del lado del cliente En S3, tenemos las siguientes dos opciones:

  • Utilice una CMK (clave de cliente) llave maestra) almacenados en AWS KMS (Servicio de administración de claves)
  • Utilice una clave maestra proporcionada por el cliente almacenada en la aplicación propia del cliente

Nota: Sus claves maestras del lado del cliente y sus datos sin cifrar nunca se envían a AWS. Es fundamental que gestione sus claves de cifrado con sumo cuidado. Si las pierde, no podrá descifrar sus datos.

Cifrado del lado del servidor

In Cifrado del lado del servidorLos datos se cifran después de enviarse al bucket S3 y antes de almacenarse en el bucket S3.

El cifrado del lado del servidor tiene las siguientes tres opciones:

  1. Utilice claves administradas por Amazon S3 (SSE-S3)En este caso, el material clave y la clave serán proporcionados por el propio AWS para cifrar los objetos en el bucket S3.
  2. Utilice CMK (clave maestra del cliente) en AWS KMS (SSE-KMS)En este caso, el material clave y la clave se generarán en el servicio AWS KMS para cifrar los objetos en el bucket S3.
  3. Utilice una clave de cifrado proporcionada por el cliente (SSE-C)En este caso, la clave la proporcionará el cliente y Amazon S3 gestionará el cifrado y desencriptación proceso durante la carga/descarga de objetos en el bucket S3.

Con SSE-S3El cifrado del lado del servidor administrado por Amazon S3 utiliza uno de los cifrados de bloque más seguros, AES de 256 bits (Estándar de Cifrado Avanzado), para cifrar cada objeto con una clave única, lo que significa que no se utilizan claves superpuestas. Además, estas claves únicas se cifran con una clave maestra que se rota periódicamente para mayor seguridad de los datos.

Con SSE-KMSAmazon S3 utiliza la funcionalidad AWS KMS para cifrar los datos en el bucket de S3. La combinación de Amazon S3 con AWS KMS proporciona una combinación perfecta de seguridad y disponibilidad.

Servicios de gestión de claves en la nube a medida

Obtenga servicios de consultoría flexibles y personalizables que se alineen con sus requisitos de nube.

Ilustración esquemática de cómo funciona SSE-KMS

  1. CMK, utilizando el algoritmo de cifrado (AES-256), crea dos claves, una es una clave de datos de texto simple y la otra es una clave de datos cifrados.

    clave de datos en texto plano a clave de datos cifrados

  2. Al subir el objeto al bucket de S3, S3 lo cifra con la clave de datos de texto sin formato. El objeto cifrado (texto cifrado), junto con la clave de datos cifrados, se almacena en S3.

    datos en texto plano a texto cifrado

  3. Al descargar el objeto del bucket de S3, S3 envía la clave de datos cifrada a KMS. KMS compara la CMK correcta, descifra la clave de datos cifrada y envía la clave de datos sin formato a S3. S3 descarga el objeto descifrándolo con esta clave de datos sin formato.

    descifra los datos cifrados

Durante el uso SSE-KMS, puedes tener las siguientes combinaciones:

  1. CMK gestionada por el cliente (Clave maestra del cliente)Este es un caso de uso en el que desea tener control total sobre la CMK, es decir, puede crearla, rotarla, deshabilitarla, auditarla y controlar completamente el acceso de quienes la usan. Si desea usar CMK administradas por el cliente, puede crearlas en la consola de AWS KMS antes de usarlas en S3.
  2. AWS Managed CMK (Clave maestra del cliente)En este caso de uso, no se especifica una CMK administrada por el cliente. Para facilitar el proceso a los usuarios, Amazon S3 crea automáticamente una CMK administrada por AWS en la cuenta de AWS la primera vez que se agrega un objeto cifrado con SSE-KMS a un bucket. De forma predeterminada, Amazon S3 utiliza esta CMK para SSE-KMS.

Nota: Todas las solicitudes (GET y PUT) de un objeto cifrado por SSE-KMS generarán un error si no se realizan mediante HTTPS o SigV4. Amazon SigV4 es un mecanismo de autenticación compatible con Amazon S3 para firmar las solicitudes de API. Esto permite a Amazon S3 identificar el remitente y el origen, y protege sus solicitudes de usuarios maliciosos.

  • El cifrado del lado del servidor cifra únicamente los datos del objeto, no los metadatos del objeto.

Con SSE-CAmazon S3 realiza el cifrado del lado del servidor con claves proporcionadas por el cliente. Con la clave proporcionada por el usuario, Amazon S3 gestiona el cifrado y el descifrado mientras se escriben y se accede a los datos en los discos consecutivamente. Dado que Amazon S3 gestiona el cifrado y el descifrado, no es necesario gestionar el código a nivel de usuario. El único requisito desde la perspectiva del usuario es gestionar las claves de cifrado. Amazon S3 utiliza cifrado AES de 256 bits para cifrar los datos con la clave proporcionada por el cliente y la elimina de su memoria una vez finalizado el proceso de cifrado. Durante el descifrado, primero verifica y comprueba si se proporciona la misma clave (la proporcionada durante el cifrado) y, a continuación, descifra los datos y los pone a disposición del usuario.

Nota: Amazon S3 no almacena la clave de cifrado, sino un valor HMAC (código de autenticación de mensajes basado en hash) con sal aleatoria de la clave de cifrado para validar futuras solicitudes. Este valor HMAC con sal no se puede utilizar para obtener la clave de cifrado real ni para descifrar el contenido de los datos cifrados, lo que significa que si se pierde la clave de cifrado, se pierden los datos.

Comparación de las opciones de cifrado S3

S3 ofrece múltiples opciones para cifrar los datos en el bucket de S3. La siguiente tabla resume todas las opciones disponibles para cifrar los datos en reposo y en tránsito:

 Cifrado en reposoCifrado en tránsitoCifrado de clave simétricaCifrado de clave asimétricaResponsable del cifrado/descifrado de datosResponsable del almacenamiento secreto
AWS: Transporte seguroNYYYAWSAWS
SSE-S3YNYNAWSAWS
SSE-KMS (CMK administrado por AWS)YNYNAWSAWS
SSE-KMS (CMK gestionado por el cliente)YNYNAWSAWS
SSE-CYNYNAWSEl cliente
AWS SDK + KMS (CMK administrado por AWS)YNYNEl clienteAWS
AWS SDK + KMS (CMK administrado por el cliente)YNYNEl clienteAWS
AWS SDK + secreto autogestionadoYNYYEl clienteEl cliente

Conclusión

Amazon S3 es ideal si tiene un entorno con varias aplicaciones que generan una gran cantidad de datos. La razón principal para elegir S3 no es solo su capacidad para almacenar grandes volúmenes de datos a precios más bajos, sino también su durabilidad, escalabilidad y alta disponibilidad. La privacidad y el cumplimiento normativo de los datos son vitales para la seguridad de los datos, lo cual se puede lograr mediante los diversos métodos de cifrado que ofrece Amazon S3. Con las múltiples opciones de cifrado de S3, puede estar tranquilo sin preocuparse por la vulneración de sus datos.