Esta página ha sido traducida por una máquina.

Cifrado de datos de Object Storage

Obtenga información sobre cómo el servicio Object Storage cifra y descifra todos los objetos mediante el estándar de cifrado avanzado de 256 bits (AES-256) para cifrar datos de objetos en el servidor.

Cada objeto se cifra con su propia clave de cifrado de datos. Las claves de cifrado de datos siempre se cifran con una clave de cifrado maestra asignada al cubo. El cifrado está activado por defecto y no se puede desactivar. Por defecto, Oracle gestiona la clave de cifrado maestra.

Además de este cifrado por defecto, puede utilizar estas estrategias para cifrar datos:
  • Utilice el cifrado del cliente para cifrar objetos con sus claves de cifrado antes de almacenarlos en cubos de Object Storage. Una opción disponible es utilizar la API de compatibilidad de Amazon S3 junto con el soporte de cifrado de objetos del cliente disponible en el SDK de AWS para Java. Consulte API de compatibilidad de Amazon S3 para obtener más información sobre este SDK.

  • Utilice el cifrado del servidor con sus propias claves. Para obtener más información, consulte Uso de sus propias claves para el cifrado del servidor.

  • Asigne una clave de cifrado maestra de Oracle Cloud Infrastructure Vault que pueda controlar y rotar según su propio programa. Para obtener más información, consulte Uso de sus propias claves en Vault para el cifrado del servidor.

Uso de sus propias claves para cifrado del servidor

En este tema se proporcionan los detalles para implementar y utilizar el cifrado de servidor con claves proporcionadas por un cliente (SSE-C).

Acerca de SSE-C

Con las cabeceras de API opcionales, puede proporcionar su propia clave de cifrado AES de 256 bits que se utiliza para cifrar y descifrar objetos cargados y descargados en Object Storage.

  • Al cargar un objeto, proporcione la clave de cifrado. Object Storage cifra el objeto con esa clave y suprime inmediatamente la clave.
  • Cuando desea descargar un objeto, debe proporcionar la misma clave que se utilizó para cifrar el objeto y Object Storage descifrará y le devolverá el objeto.

El usuario gestiona las claves de cifrado y el Object Storage gestiona el cifrado y el descifrado.

Importante

Object Storage no almacena sus claves de cifrado. El usuario es responsable de realizar el seguimiento de la clave asociada a cada objeto y rotar las claves según sea necesario. Si pierde la clave de cifrado, no puede recuperar el objeto.

Ámbito y restricciones

Comprenda el siguiente ámbito y las restricciones relacionados con SSE-C:

  • Una clave SSE-C no se puede asociar a un cubo y solo se puede utilizar para cifrar objetos individuales.
  • Puede cifrar objetos utilizando su propia clave de cifrado mediante solicitudes autenticadas previamente. Para recuperar un objeto cifrado por SSE-C mediante una solicitud autenticada previamente, debe especificar su clave de cifrado.
  • Para suprimir o cambiar el nombre de un objeto cifrado por SSE-C, no es necesario especificar la clave de cifrado.
  • Solo puede especificar kmsKeyId o sseCustomerKey en la carga útil de solicitud de ReencryptObject, no ambas. Si la carga útil de solicitud está vacía, el objeto se cifra mediante la clave de cifrado asignada al cubo. El mecanismo de cifrado del cubo puede ser una clave de cifrado maestra gestionada por Oracle o el servicio de almacén de claves.
  • Solo puede utilizar las API de Object Storage y la CLI para proporcionar claves SSE-C. No puede utilizar la consola para cargar o recuperar objetos mediante una clave proporcionada por un cliente.
  • La API de compatibilidad de Amazon S3 también soporta SSE-C.

Uso de la API de REST para SSE-C

Si desea utilizar sus propias claves para el cifrado de servidor, especifique las tres cabeceras de solicitud siguientes con la información de clave de cifrado:

Cabeceras Descripción API soportadas
opc-sse-customer-algorithm Especifica "AES256" como algoritmo de cifrado. CopyObject

GetObject

HeadObject

PutObject

CreateMultipartUpload

UploadPart

opc-sse-customer-key Especifica la clave de cifrado de 256 bits codificada en base64 que se utilizará para cifrar o descifrar los datos.
opc-sse-customer-key-sha256 Especifica el hash SHA256 codificado en base64 de la clave de cifrado.

Para CopyObject:

Si el objeto de origen está cifrado con una clave SSE-C, también debe especificar las tres cabeceras siguientes para que Object Storage pueda descifrar el objeto.

Cabeceras Descripción API soportadas
opc-source-sse-customer-algorithm Especifica "AES256" como algoritmo de cifrado que se utilizará para descifrar el objeto de origen. CopyObject
opc-source-sse-customer-key Especifica la clave de cifrado de 256 bits codificada en base64 que se utilizará para descifrar el objeto de origen.
opc-source-sse-customer-key-sha256 Especifica el hash SHA256 codificado en base64 de la clave de cifrado utilizada para descifrar el objeto de origen.

Uso de la CLI para SSE-C

También puede utilizar sus propias claves de cifrado para cifrar objetos mediante la CLI.

Puede proporcionar su propia clave de cifrado con el parámetro opcional --encryption-key-file filename para los siguientes comandos:

  • oci os object put
  • oci os object get
  • oci os object head
  • oci os object resume-put
  • oci os object bulk-upload
  • oci os object bulk-download
  • oci os object copy
  • oci os object reencrypt

filename apunta a un archivo que contiene la cadena codificada en base64 de la clave de cifrado AES-256. No son necesarios otros parámetros. Object Storage descodifica la clave para calcular el hash de SHA256 de la clave de cifrado.

Si el objeto de origen está cifrado con una clave SSE-C, también debe especificar el parámetro opcional --source-encryption-key-file filename para los siguientes comandos:

  • oci os object copy
  • oci os object reencrypt

filename apunta a un archivo que contiene la cadena codificada en base64 de la clave de cifrado de origen AES-256. No son necesarios otros parámetros. Object Storage descodifica la clave para calcular el hash SHA256 de la clave de cifrado de origen.

Para obtener información sobre el uso de la CLI, consulte Interfaz de línea de comandos (CLI). Para obtener una lista completa de los indicadores y las opciones disponibles para los comandos de la CLI, consulte Referencia de la línea de comandos.

Uso de sus propias claves en Vault para el cifrado del servidor

En este tema se proporcionan los detalles para implantar el cifrado del servidor mediante sus propias claves en Vault.

El servicio Oracle Cloud Infrastructure Object Storage cifra sus datos y metadatos (pares de valores de clave proporcionados por el cliente) mediante claves de cifrado de datos (DEK) generadas aleatoriamente. Object Storage le permite especificar su propia clave de cifrado maestra (MEK) gestionada por el servicio Vault para cubos (consulte Uso de la consola) y objetos individuales. Puede especificar la MEK que se va a utilizar para un objeto determinado sin tener que realizar el mantenimiento y la gestión de sus propias claves.

Debe tener los permisos necesarios en las políticas de IAM para poder especificar su propia MEK. Consulte Política de IAM necesaria y Permitir a un grupo de usuarios delegar el uso de claves en un compartimento.

Uso de la CLI para SSE con sus claves en Vault

Puede utilizar sus propias claves de cifrado en Vault para cifrar objetos mediante la CLI.

Puede proporcionar su propia clave de cifrado mediante el parámetro opcional --opc-sse-kms-key-id target_key_id para los siguientes comandos:

  • oci os object put
  • oci os object copy

target_key_id es el OCID de una clave existente en el almacén de claves que se utilizará para cifrar el objeto.

Ejemplo para cargar un objeto en el cubo utilizando una clave de Vault:

oci os object put -bn "MyKeyBucket" --name "MyObjectName" --file "InputFile" --opc-sse-kms-key-id "ocid1.key.region1.sea..exampleuniqueID"

Uploading object  [####################################]  100%
{
  "etag": "cadb9f8a-3292-45e6-a1e8-f075699fb619",
  "last-modified": "Tue, 13 Jul 2021 05:52:47 GMT",
  "opc-content-md5": "9KJsgOK/X5C1sARb2tkhVA=="
}

Ejemplo para realizar una carga en varias partes utilizando una clave de Vault:

oci os object put --bucket-name MyBucket --name MyObjectName --file  ~/path/to/file  --parallel-upload-count 10 --part-size 500 --opc-sse-kms-key-id ocid1.key.oc1.region1.sea..exampleuniqueID
Upload ID: 813bb394-377d-d5cf-cb3f-31b025346199
Split file into 1 parts for upload.
Uploading object  [####################################]  100%
{
"etag": "a55f1c69-1cf4-4134-9113-7a866bac712f",
"last-modified": "Wed, 29 May 2024 21:54:55 GMT",
"opc-multipart-md5": "sAVJt/6nEVizTbwRblZZSg==-1"
}

Ejemplo para copiar un objeto utilizando una clave en Vault:

oci os object copy --bucket-name MyBucket1 --destination-bucket MyBucket2 --source-object-name MyObjectName --opc-sse-kms-key-id ocid1.key.oc1.region1.sea..exampleuniqueID
{
"opc-work-request-id": "115e230c-04b8-4dc6-89eb-7e1269b4ab47"
}
Nota

Los ejemplos de esta sección utilizan la sintaxis completa de los parámetros, por ejemplo --namespace y --bucket-name. En algunos casos, hay términos de parámetro abreviados que puede utilizar en lugar de los completos, por ejemplo, -ns para --namespace y -bn para --bucket-name. El comando --help en línea de la CLI para un comando concreto muestra los parámetros abreviados que puede utilizar.

Para obtener información sobre el uso de la CLI, consulte Interfaz de línea de comandos (CLI). Para obtener una lista completa de los indicadores y las opciones disponibles para los comandos de la CLI, consulte Referencia de la línea de comandos.

Uso de la API de REST para SSE con claves en Vault

Si desea utilizar sus propias claves en Vault para el cifrado de servidor, especifique la siguiente cabecera de solicitud con el OCID de la clave de Vault:

Cabeceras Descripción API soportadas
opc-sse-kms-key-id Especifica el OCID de una clave existente en Vault que se va a utilizar para cifrar el objeto.

PutObject

CopyObject

CreateMultipartUpload

UploadPart

Para obtener más información sobre el uso de la API y la firma de solicitudes, consulte la documentación de la API de REST y Credenciales de seguridad. Para obtener información sobre los SDK, consulte Los SDK y la CLI.

Nuevo cifrado del cubo

Si ha rotado una clave de cifrado maestra desde el momento en el que la asignó a un cubo, puede que desee volver a cifrar el cubo. Hasta que vuelva a cifrar explícitamente un cubo, la versión de clave asociada al cubo cuando se inserta un objeto en el cubo sigue descifrando todas las claves de cifrado de datos.

Para cifrar y descifrar todas las claves de cifrado de datos con la misma versión más reciente de la clave de cifrado maestra asignada, vuelva a cifrar el cubo. Consulte Volver a cifrar el cifrado de datos de un cubo para obtener más información.

Volver a cifrar el objeto

Para cifrar y descifrar las claves de cifrado de los datos de un objeto con una clave de cifrado maestra diferente, puede volver a cifrar el objeto. Al volver a cifrar un objeto, puede seleccionar una clave diferente a la asignada al cubo o la versión más reciente de la clave asignada al cubo. Hasta que vuelva a cifrar explícitamente un cubo, la versión de la clave asociada al cubo (cuando se inserta un objeto en el cubo) sigue descifrando todas las claves de cifrado de datos del objeto.

Puede volver a cifrar las claves de cifrado de datos de un objeto con una clave gestionada por Oracle, una clave que creó y controla a través de un almacén de claves que gestiona o una clave de cifrado proporcionada por el cliente (SSE-C).

Nota

Si utiliza el cifrado del servidor con claves proporcionadas por un cliente (SSE-C), debe utilizar la CLI para proporcionar la clave de SSE-C durante el proceso de cifrado o nuevo cifrado. Con la CLI, puede volver a cifrar un objeto con una clave SSE-C diferente, una clave gestionada por Oracle o una clave gestionada a través del servicio Vault. En la Consola, solo puede volver a cifrar un objeto para utilizar la versión más reciente de la clave gestionada por Oracle asignada al cubo o la versión más reciente de una clave de Vault. Independientemente de si la versión de clave seleccionada es la asignada al cubo.

Consulte Recifrado de un objeto para obtener más información.