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 para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
Fazer upload com sua chave de criptografia
Para usar chaves de criptografia fornecidas pelo cliente para carregar um objeto:
Console
O console não pode ser usado para fazer upload de um objeto com uma chave de criptografia fornecida pelo cliente. Use a gsutil ou as bibliotecas de cliente.
gsutil
Adicione a seguinte opção à seção
[GSUtil]
do seu arquivo de configuração do boto:encryption_key = YOUR_ENCRYPTION_KEY
onde
YOUR_ENCRYPTION_KEY
é a chave de criptografia AES-256 usada para criptografar seu objeto.Use o comando
gsutil cp
:gsutil cp LOCAL_OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME
Em que:
LOCAL_OBJECT_LOCATION
é o caminho para o objeto sendo enviado. Por exemplo,Desktop/dogs.png
;DESTINATION_BUCKET_NAME
é o nome do bucket para o qual você está fazendo o upload do objeto. Por exemplo,my-bucket
.
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_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
.OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
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 OAUTH2_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
.OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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 não pode ser usado para fazer o download de objetos criptografados com chaves de criptografia fornecidas pelo cliente. Use a gsutil ou as bibliotecas de cliente.
gsutil
Adicione a seguinte opção à seção
[GSUtil]
do seu arquivo de configuração do boto:decryption_key1 = YOUR_ENCRYPTION_KEY
em que
YOUR_ENCRYPTION_KEY
é a chave usada para criptografar o objeto quando ele foi enviado.Use o comando
gsutil cp
:gsutil cp gs://BUCKET_NAME/OBJECT_NAME OBJECT_DESTINATION
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
.
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitação deGET
Objeto:curl -X GET \ -H "Authorization: Bearer OAUTH2_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:
OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
(em inglês) para chamar a API XML com uma solicitação de OBJETOGET
:curl -X GET \ -H "Authorization: Bearer OAUTH2_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:
OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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 não pode ser usado para rotação de chaves de criptografia fornecidas pelo cliente. Use gsutil ou as bibliotecas de cliente.
gsutil
Adicione as seguintes opções à seção
[GSUtil]
do seu arquivo de configuração do boto:encryption_key = NEW_ENCRYPTION_KEY decryption_key1 = OLD_ENCRYPTION_KEY
Em que:
NEW_ENCRYPTION_KEY
é a nova chave de criptografia para seu objeto;OLD_ENCRYPTION_KEY
é a chave de criptografia atual para seu objeto.
Use o comando
gsutil rewrite
com a sinalização-k
:gsutil rewrite -k gs://BUCKET_NAME/OBJECT_NAME
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto relevante. Por exemplo,my-bucket
;OBJECT_NAME
é o nome do objeto relevante. Por exemplo,pets/dog.png
.
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage para C#.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage para Go.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage para Java.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage para Node.js.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage para PHP.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
APIs REST
API JSON
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto:curl -X POST \ -H "Authorization: Bearer OAUTH2_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:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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