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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 consola de Google Cloud 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_DATA
es 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_NAME
es el nombre del bucket de destino para este comando de copia. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre del objeto final encriptado. Por ejemplo,pets/new-dog.png
.YOUR_ENCRYPTION_KEY
es 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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para 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í:
OBJECT
es la ruta de acceso al objeto que deseas subir. Por ejemplo,Desktop/dogs.png
.OBJECT_CONTENT_TYPE
es el tipo de contenido del objeto. Por ejemplo,image/png
.YOUR_ENCRYPTION_KEY
es la clave AES-256 que se usó para encriptar el objeto subido.HASH_OF_YOUR_KEY
es el hash SHA-256 para tu clave AES-256.BUCKET_NAME
es el nombre del bucket en el que deseas subir el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es 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 inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de XML con una solicitud de OBJETOPUT
: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í:
OBJECT
es la ruta de acceso al objeto que deseas subir. Por ejemplo,Desktop/dogs.png
.OBJECT_CONTENT_TYPE
es el tipo de contenido del objeto. Por ejemplo,image/png
.YOUR_ENCRYPTION_KEY
es la clave AES-256 que se usó para encriptar el objeto subido.HASH_OF_YOUR_KEY
es el hash SHA-256 para tu clave AES-256.BUCKET_NAME
es el nombre del bucket en el que deseas subir el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es 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_NAME
es el nombre del depósito que contiene el objeto que se descargará. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre del objeto que deseas descargar. Por ejemplo,pets/dog.png
.OBJECT_DESTINATION
es la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop
.YOUR_ENCRYPTION_KEY
es 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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para 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_KEY
es la clave AES-256 que usaste para encriptar el objeto.HASH_OF_YOUR_KEY
es el hash SHA-256 para tu clave AES-256.SAVE_TO_LOCATION
es la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop/dog.png
.BUCKET_NAME
es el nombre del depósito desde el que descargarás el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es 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 inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de XML 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/BUCKET_NAME/OBJECT_NAME"
Aquí:
YOUR_ENCRYPTION_KEY
es la clave AES-256 que usaste para encriptar el objeto.HASH_OF_YOUR_KEY
es el hash SHA-256 para tu clave AES-256.SAVE_TO_LOCATION
es la ubicación en la que deseas guardar tu objeto. Por ejemplo,Desktop/dog.png
.BUCKET_NAME
es el nombre del depósito desde el que descargarás el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es 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_NAME
es el nombre del bucket que contiene el objeto cuya clave deseas rotar. Por ejemplo,my-bucket
OBJECT_NAME
es el nombre del objeto cuya clave deseas rotar. Por ejemplo,pets/dog.png
.NEW_KEY
es la clave de encriptación nueva proporcionada por el cliente que quieres usar para encriptar el objeto.OLD_KEY
es 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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
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 un entorno de desarrollo local.
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para 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_KEY
es la clave AES-256 nueva que se usó para encriptar el objeto.HASH_OF_NEW_KEY
es el hash SHA-256 para tu clave AES-256 nueva.OLD_ENCRYPTION_KEY
es la clave AES-256 actual que se usó para encriptar el objeto.HASH_OF_OLD_KEY
es el hash SHA-256 actual para tu clave AES-256.BUCKET_NAME
es el nombre del depósito que contiene el objeto pertinente. Por ejemplo,my-bucket
.OBJECT_NAME
es 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.