Nesta página, você verá como usar a própria chave de criptografia, chamada de chave de criptografia fornecida pelo cliente, com o Cloud Storage. Para ver outras opções de criptografia no Cloud Storage, consulte Opções de criptografia de dados.
Gerar sua própria chave de criptografia
Há muitas maneiras de gerar uma chave de criptografia AES-256 codificada em base64. Veja alguns exemplos:
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Fazer upload com sua chave de criptografia
Para usar chaves de criptografia fornecidas pelo cliente para carregar um objeto:
Console
O console do Google Cloud não pode ser usado para fazer upload de um objeto com uma chave de criptografia fornecida pelo cliente. Use a Google Cloud CLI ou as bibliotecas de cliente.
Linha de comando
Use o comando gcloud storage cp
com a flag
--encryption-key
:
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=YOUR_ENCRYPTION_KEY
Em que:
SOURCE_DATA
é o local de origem dos dados que você está criptografando. Ela pode ser qualquer local de origem aceito pelo comandocp
. Por exemplo, um arquivo local, comoDesktop/dogs.png
, ou outro objeto do Cloud Storage, comogs://my-bucket/pets/old-dog.png
.BUCKET_NAME
é o nome do bucket de destino para este comando de cópia. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto final criptografado. Por exemplo,pets/new-dog.png
.YOUR_ENCRYPTION_KEY
é a chave AES-256 que você quer usar para criptografar o objeto enviado.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto: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"
Em que:
OBJECT
é o caminho para o objeto do qual está sendo feito o upload. Por exemplo,Desktop/dogs.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.YOUR_ENCRYPTION_KEY
é a chave AES-256 usada para criptografar o objeto enviado;HASH_OF_YOUR_KEY
é o hash SHA-256 para sua chave AES-256;BUCKET_NAME
é o nome do bucket para o qual você está fazendo o upload do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto que você está enviando. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Para mais informações sobre cabeçalhos específicos para criptografia, consulte Cabeçalhos de solicitação de criptografia.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação 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"
Em que:
OBJECT
é o caminho para o objeto do qual está sendo feito o upload. Por exemplo,Desktop/dogs.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.YOUR_ENCRYPTION_KEY
é a chave AES-256 usada para criptografar o objeto enviado;HASH_OF_YOUR_KEY
é o hash SHA-256 para sua chave AES-256;BUCKET_NAME
é o nome do bucket para o qual você está fazendo o upload do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto que você está enviando. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Para mais informações sobre cabeçalhos específicos para criptografia, consulte Cabeçalhos de solicitação de criptografia.
Fazer o download de objetos criptografados
Para fazer o download de um objeto armazenado no Cloud Storage e criptografado com uma chave de criptografia fornecida pelo cliente:
Console
O console do Google Cloud não pode ser usado para fazer o download de objetos criptografados com chaves de criptografia fornecidas pelo cliente. Use a Google Cloud CLI ou as bibliotecas de cliente.
Linha de comando
Use o comando gcloud storage cp
com a flag
--decryption-keys
:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME OBJECT_DESTINATION --decryption-keys=YOUR_ENCRYPTION_KEY
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto que você está fazendo o download. Por exemplo,my-bucket
;OBJECT_NAME
é o nome do objeto que você está fazendo o download. Por exemplo,pets/dog.png
;OBJECT_DESTINATION
é o local em que você quer salvar seu objeto. Por exemplo,Desktop
.YOUR_ENCRYPTION_KEY
é a chave AES-256 usada para criptografar o objeto quando ele foi enviado.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação deGET
Objeto: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"
Em que:
YOUR_ENCRYPTION_KEY
é a chave AES-256 que você usou para criptografar o objeto;HASH_OF_YOUR_KEY
é o hash SHA-256 para sua chave AES-256;SAVE_TO_LOCATION
é o local em que você quer salvar seu objeto. Por exemplo,Desktop/dog.png
;BUCKET_NAME
é o nome do bucket do qual você está fazendo o download do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto que você está fazendo o download. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Para mais informações sobre cabeçalhos específicos para criptografia, consulte Cabeçalhos de solicitação de criptografia.
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação 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"
Em que:
YOUR_ENCRYPTION_KEY
é a chave AES-256 que você usou para criptografar o objeto;HASH_OF_YOUR_KEY
é o hash SHA-256 para sua chave AES-256;SAVE_TO_LOCATION
é o local em que você quer salvar seu objeto. Por exemplo,Desktop/dog.png
;BUCKET_NAME
é o nome do bucket do qual você está fazendo o download do objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto que você está fazendo o download. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Para mais informações sobre cabeçalhos específicos para criptografia, consulte Cabeçalhos de solicitação de criptografia.
Alternar suas chaves de criptografia
Para fazer a rotação de uma chave de criptografia fornecida pelo cliente:
Console
O console do Google Cloud não pode ser usado para girar chaves de criptografia fornecidas pelo cliente. Use a Google Cloud CLI ou as bibliotecas de cliente.
Linha de comando
Use o comando gcloud storage objects update
com as
sinalizações apropriadas:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=NEW_KEY --decryption-keys=OLD_KEY
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto cuja chave está girando. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto cuja chave está sendo girada. Por exemplo,pets/dog.png
.NEW_KEY
é a nova chave de criptografia fornecida pelo cliente que você quer usar para criptografar o objeto.OLD_KEY
é a chave de criptografia atual fornecida pelo cliente que é usada para criptografar o objeto.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto: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"
Em que:
NEW_ENCRYPTION_KEY
é a nova chave AES-256 usada para criptografar seu objeto;HASH_OF_NEW_KEY
é o hash SHA-256 para sua nova chave AES-256;OLD_ENCRYPTION_KEY
é a chave AES-256 atual usada para criptografar seu objeto;HASH_OF_OLD_KEY
é o hash SHA-256 atual para sua chave AES-256;BUCKET_NAME
é o nome do bucket que contém o objeto relevante. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto cujas chaves você está girando. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Para mais informações sobre cabeçalhos específicos para criptografia, consulte Cabeçalhos de solicitação de criptografia.
API XML
A API XML não é compatível com a rotação de uma chave de criptografia fornecida pelo cliente por meio de objeto de regravação. Para aplicar uma nova chave fornecida pelo cliente a um objeto usando a API XML:
A seguir
Saiba mais sobre chaves de criptografia fornecidas pelo cliente.
Saiba como alternar sua chave de criptografia fornecida pelo cliente para uma chave do Cloud KMS