En esta página, se describe cómo usar tu propia clave de encriptación, conocida como clave de encriptación proporcionada por el cliente, con Cloud Storage. Para conocer otras opciones de encriptación en Cloud Storage, consulta Opciones de encriptación de datos.
Genera tu propia clave de encriptación
Hay muchas formas de generar una clave de encriptación AES-256 codificada en Base64. A continuación, se incluyen algunos ejemplos:
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Realiza cargas con tu clave de encriptación
Si quieres usar las claves de encriptación proporcionadas por el cliente para subir un objeto, haz lo siguiente:
Console
La Google Cloud consola no se puede usar para subir un objeto con una clave de encriptación proporcionada por el cliente. En su lugar, usa Google Cloud CLI o las bibliotecas cliente.
Línea de comandos
Usa el comando gcloud storage cp con la marca --encryption-key:
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=YOUR_ENCRYPTION_KEY
Aquí:
SOURCE_DATAes la ubicación de origen de los datos que encriptas. Puede ser cualquier ubicación de origen compatible con el comandocp. Por ejemplo, un archivo local, comoDesktop/dogs.png, o algún otro objeto de Cloud Storage, comogs://my-bucket/pets/old-dog.png.BUCKET_NAMEes el nombre del bucket de destino para este comando de copia. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre del objeto final encriptado. Por ejemplo,pets/new-dog.png.YOUR_ENCRYPTION_KEYes la clave AES-256 que quieres usar para encriptar el objeto subido.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOST:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
Aquí:
OBJECTes la ruta de acceso al objeto que deseas subir. Por ejemplo,Desktop/dogs.png.OBJECT_CONTENT_TYPEes el tipo de contenido del objeto. Por ejemplo,image/png.YOUR_ENCRYPTION_KEYes la clave AES-256 que se usó para encriptar el objeto subido.HASH_OF_YOUR_KEYes el hash SHA-256 para tu clave AES-256.BUCKET_NAMEes el nombre del bucket en el que deseas subir el objeto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto que deseas subir. Por ejemplo,pets/dog.png, codificado en URL comopets%2Fdog.png.
Consulta Opciones de encriptación de datos para obtener más información sobre los encabezados específicos de encriptación.
API de XML
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de XML con una solicitud dePUTOBJETO:curl -X -i PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Aquí:
OBJECTes la ruta de acceso al objeto que deseas subir. Por ejemplo,Desktop/dogs.png.OBJECT_CONTENT_TYPEes el tipo de contenido del objeto. Por ejemplo,image/png.YOUR_ENCRYPTION_KEYes la clave AES-256 que se usó para encriptar el objeto subido.HASH_OF_YOUR_KEYes el hash SHA-256 para tu clave AES-256.BUCKET_NAMEes el nombre del bucket en el que deseas subir el objeto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto que deseas subir. Por ejemplo,pets/dog.png, codificado en URL comopets%2Fdog.png.
Consulta Opciones de encriptación de datos para obtener más información sobre los encabezados específicos de encriptación.
Descarga objetos que encriptaste
Para descargar un objeto almacenado en Cloud Storage que esté encriptado con una clave de encriptación proporcionada por el cliente, haz lo siguiente:
Console
La consola de Google Cloud no se puede usar para descargar objetos encriptados con claves de encriptación proporcionadas por el cliente. En su lugar, usa Google Cloud CLI o las bibliotecas cliente.
Línea de comandos
Usa el comando gcloud storage cp con la marca --decryption-keys:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME OBJECT_DESTINATION --decryption-keys=YOUR_ENCRYPTION_KEY
Aquí:
BUCKET_NAMEes el nombre del depósito que contiene el objeto que se descargará. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre del objeto que deseas descargar. Por ejemplo,pets/dog.png.OBJECT_DESTINATIONes la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop.YOUR_ENCRYPTION_KEYes la clave AES-256 que se usó para encriptar el objeto cuando se subió.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de JSON con una solicitud de objetoGET:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media"
Aquí:
YOUR_ENCRYPTION_KEYes la clave AES-256 que usaste para encriptar el objeto.HASH_OF_YOUR_KEYes el hash SHA-256 para tu clave AES-256.SAVE_TO_LOCATIONes la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop/dog.png.BUCKET_NAMEes el nombre del depósito desde el que descargarás el objeto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto que deseas descargar. Por ejemplo,pets/dog.png, codificado en URL comopets%2Fdog.png.
Consulta Opciones de encriptación de datos para obtener más información sobre los encabezados específicos de encriptación.
API de XML
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de XML con una solicitud deGETOBJETO:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: YOUR_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_YOUR_KEY" \ -o "SAVE_TO_LOCATION" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Aquí:
YOUR_ENCRYPTION_KEYes la clave AES-256 que usaste para encriptar el objeto.HASH_OF_YOUR_KEYes el hash SHA-256 para tu clave AES-256.SAVE_TO_LOCATIONes la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop/dog.png.BUCKET_NAMEes el nombre del depósito desde el que descargarás el objeto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto que deseas descargar. Por ejemplo,pets/dog.png, codificado en URL comopets%2Fdog.png.
Consulta Opciones de encriptación de datos para obtener más información sobre los encabezados específicos de encriptación.
Rota tus claves de encriptación
Para rotar una clave de encriptación proporcionada por el cliente, haz lo siguiente:
Console
La consola de Google Cloud no se puede usar para rotar las claves de encriptación proporcionadas por el cliente. En su lugar, usa Google Cloud CLI o las bibliotecas cliente.
Línea de comandos
Usa el comando gcloud storage objects update con las marcas adecuadas:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=NEW_KEY --decryption-keys=OLD_KEY
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene el objeto cuya clave deseas rotar. Por ejemplo,my-bucketOBJECT_NAMEes el nombre del objeto cuya clave deseas rotar. Por ejemplo,pets/dog.png.NEW_KEYes la clave de encriptación nueva proporcionada por el cliente que quieres usar para encriptar el objeto.OLD_KEYes la clave de encriptación actual proporcionada por el cliente que se usa para encriptar el objeto.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOST:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -H "x-goog-encryption-algorithm: AES256" \ -H "x-goog-encryption-key: NEW_ENCRYPTION_KEY" \ -H "x-goog-encryption-key-sha256: HASH_OF_NEW_KEY" \ -H "x-goog-copy-source-encryption-algorithm: AES256" \ -H "x-goog-copy-source-encryption-key: OLD_ENCRYPTION_KEY" \ -H "x-goog-copy-source-encryption-key-sha256: HASH_OF_OLD_KEY" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME"
Aquí:
NEW_ENCRYPTION_KEYes la clave AES-256 nueva que se usó para encriptar el objeto.HASH_OF_NEW_KEYes el hash SHA-256 para tu clave AES-256 nueva.OLD_ENCRYPTION_KEYes la clave AES-256 actual que se usó para encriptar el objeto.HASH_OF_OLD_KEYes el hash SHA-256 actual para tu clave AES-256.BUCKET_NAMEes el nombre del depósito que contiene el objeto pertinente. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto cuyas claves deseas rotar. Por ejemplo,pets/dog.png, codificado en URL comopets%2Fdog.png.
Consulta Opciones de encriptación de datos para obtener más información sobre los encabezados específicos de encriptación.
API de XML
La API de XML no admite la rotación de una clave de encriptación proporcionada por el cliente mediante el reemplazo del objeto. Para aplicar una nueva clave proporcionada por el cliente a un objeto mediante la API de XML, debes hacer lo siguiente:
¿Qué sigue?
Obtén más información sobre las claves de encriptación proporcionadas por el cliente.
Obtén más información para rotar la clave de encriptación proporcionada por el cliente a una clave de Cloud KMS.