Nesta página, descrevemos como usar uma chave de criptografia do Cloud Key Management Service com o Cloud Storage, incluindo a configuração de chaves padrão em buckets e a adição de chaves a objetos individuais. Uma chave de criptografia do Cloud KMS é uma chave de criptografia gerenciada pelo cliente (CMEK). Essas chaves são criadas e gerenciadas por meio do Cloud KMS e armazenadas como chaves de software, em um cluster do HSM ou externamente.
Criação manual ou automatizada de chaves
É possível criar as CMEKs manualmente ou usar a chave automática do Cloud KMS (Visualização). O Autokey simplifica a criação e gerenciando CMEKs automatizando o provisionamento e a atribuição. Com ele, não é preciso provisionar keyrings, chaves e contas de serviço com antecedência. Em vez disso, eles são gerados sob demanda como parte da criação de recursos do Cloud Storage.
O uso das chaves geradas pelo Autokey pode ajudar você a se alinhar de maneira consistente aos padrões do setor e às práticas recomendadas de segurança de dados, como nível de proteção, separação de tarefas, rotação de chaves, localização e granularidade da chave. Para mais informações, consulte Visão geral das chaves automáticas.
Antes de começar
Antes de usar este recurso no Cloud Storage, realize estas etapas:
Ative a API Cloud KMS para o projeto que armazenará as chaves de criptografia.
Tenha permissões suficientes para o projeto que armazenará as chaves de criptografia:
Se você é proprietário do projeto que armazenará as chaves, é provável que tenha a permissão necessária.
Se planejar criar novas chaves e keyrings de criptografia, deverá ter permissão para
cloudkms.keyRings.create
ecloudkms.cryptoKeys.create
.Se você planeja usar keyrings e chaves novas ou atuais, é preciso ter a permissão
cloudkms.cryptoKeys.setIamPolicy
para as chaves que você usará para criptografia.Essa permissão possibilita conceder aos agente de serviço do Cloud Storage o acesso a chaves do Cloud KMS.
As permissões acima estão contidas no papel Administrador do Cloud KMS.
Consulte Como usar IAM com o Cloud KMS para ver instruções sobre como receber esse ou outros papéis do Cloud KMS.
Tenha um keyring do Cloud KMS e pelo menos uma chave dentro dele.
O keyring precisa estar no mesmo local que os dados que você pretende criptografar, mas pode estar em um projeto diferente. Para conhecer os locais disponíveis do Cloud KMS, consulte Locais do Cloud KMS.
Tenha permissões suficientes para trabalhar com objetos no bucket do Cloud Storage:
Se você é proprietário do projeto que contém o bucket, é provável que tenha a permissão necessária.
Para usar o IAM, é necessário ter a permissão
storage.objects.create
para gravar objetos no bucket e a permissãostorage.objects.get
para ler objetos do bucket. Consulte Como usar permissões do IAM para ver instruções sobre como conseguir um papel, como Administrador de objetos do Storage, com essas permissões.Para usar ACLs, é necessário ter a permissão
WRITER
no escopo do bucket para gravar objetos e a permissãoREADER
no escopo de objetos para ler objetos do bucket. Consulte Como configurar ACLs para instruções sobre como fazer isso.
-
Encontre o endereço de e-mail do agente de serviço associado ao projeto que contém seu bucket do Cloud Storage. Ao executar esta etapa, você cria automaticamente o agente de serviço, se ele não existir.
Atribuir uma chave do Cloud KMS a um agente de serviço
Para usar CMEKs, conceda o agente de serviço do Cloud Storage associado ao bucket a permissão para usar a chave do Cloud KMS criptografia e descriptografia:
Console
- Abra o navegador de chaves do Cloud Key Management Service no Console do Google Cloud.
Abrir o navegador de Chaves do Cloud KMS Clique no nome do keyring que contém a chave que você quer usar.
Marque a caixa de seleção da chave.
A guia Permissões fica disponível no painel da janela à direita.
Na caixa de diálogo Adicionar participantes, especifique o endereço de e-mail do agente de serviço do Cloud Storage a que você está concedendo acesso.
Na lista suspensa Selecionar um papel, escolha Criptografador/descriptografador do Cloud KMS CryptoKey.
Clique em Adicionar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage service-agent
com a flag
--authorize-cmek
para conceder ao agente de serviço associado ao
bucket a permissão para criptografar e descriptografar objetos usando a
chave do Cloud KMS:
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Em que:
PROJECT_STORING_OBJECTS
é o ID ou o número do projeto que contém os objetos que você quer criptografar ou descriptografar. Por exemplo,my-pet-project
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
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.
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
.Crie um arquivo JSON com as informações a seguir:
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS" }, } }
Em que
SERVICE_AGENT_EMAIL_ADDRESS
é o endereço de e-mail associado ao agente de serviço. Por exemplo,service-7550275089395@gs-project-accounts.iam.gserviceaccount.com
.Use
cURL
para chamar a API Cloud KMS com uma solicitaçãoPOST setIamPolicy
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo JSON criado na Etapa 2.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
API XML
Não é possível usar a API XML para atribuir um Cloud KMS a um agente de serviço. Use uma das outras ferramentas do Cloud Storage, como a CLI gcloud, em vez disso.
Usar chaves de criptografia padrão
Configurar a chave padrão de um bucket
Para adicionar, alterar ou remover a chave do Cloud KMS que é usada por padrão quando os objetos são gravados em um bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket pretendido.
Na página Detalhes do bucket, clique na guia Configuração.
Clique no ícone de lápis associado à entrada Tipo de criptografia.
Defina ou remova a chave padrão do Cloud KMS para o bucket.
Se o bucket não estiver usando uma chave do Cloud KMS, selecione o botão de opção Chave gerenciada pelo cliente e, em seguida, selecione uma das chaves disponíveis no menu suspenso associado.
Se o bucket atualmente usa uma chave do Cloud KMS, altere a chave do Cloud KMS no menu suspenso ou remova a chave do Cloud KMS selecionando o botão de opção chave gerenciada pelo Google.
Clique em Salvar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage buckets update
com a flag apropriada:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Em que:
BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.FLAG
é a configuração desejada para a chave padrão no bucket. Use um dos seguintes formatos:--default-encryption-key=
e um recurso de chave do Cloud KMS, se você quiser adicionar ou alterar uma chave padrão.--clear-default-encryption-key
, se você quiser remover a chave padrão no bucket.
Se bem-sucedida, a resposta terá esta aparência:
Updating gs://my-bucket/... Completed 1
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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.
No exemplo a seguir, uma chave de criptografia padrão gerenciada pelo cliente é definida em um bucket:
Veja na amostra a seguir como remover a chave de criptografia padrão gerenciada pelo cliente de um bucket:
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
.Crie um arquivo JSON com as informações a seguir:
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Em que
KEY_RESOURCE
é o recurso de chave do Cloud KMS.Para remover a chave padrão do Cloud KMS de um bucket, use o seguinte no arquivo JSON:
{ "encryption": { "defaultKmsKeyName": null } }
Use
cURL
para chamar a API JSON com uma solicitação de bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo JSON criado na Etapa 2.BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
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
.Crie um arquivo XML que contenha as seguintes informações:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Em que
KEY_RESOURCE
é o recurso de chave do Cloud KMS.Para remover a chave padrão do Cloud KMS de um bucket, use o seguinte no arquivo XML:
<EncryptionConfiguration></EncryptionConfiguration>
Use
cURL
para chamar a API XML com uma solicitação do bucketPUT
e o parâmetro de string de consultaencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Em que:
XML_FILE_NAME
é o caminho para o arquivo XML criado na Etapa 2.BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
Visualizar a chave padrão de um bucket
Para visualizar a chave do Cloud KMS definida como padrão no bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket pretendido.
Na página Detalhes do bucket, clique na guia Configuração.
A chave padrão atual do seu bucket aparece no campo Chave de criptografia.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage buckets describe
com a flag --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_kms_key)"
Em que BUCKET_NAME
é o nome do bucket
com a chave que você quer visualizar. Por exemplo, my-bucket
.
Se bem-sucedida, a resposta terá esta aparência:
default_kms_key: KEY_RESOURCE
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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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.
Para visualizar a chave KMS padrão, siga as instruções para exibir os metadados de um bucket e procure o campo de chave do KMS padrão na resposta.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 de bucketGET
que inclui ofields
desejado:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Em que
BUCKET_NAME
é o nome do bucket com a chave que você quer visualizar. Por exemplo,my-bucket
.A resposta terá esta aparência:
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
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
para chamar a API XML com uma solicitação de bucketGET
que inclua o parâmetro de consultaencryption
:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Em que
BUCKET_NAME
é o nome do bucket com a chave que você quer visualizar. Por exemplo,my-bucket
.A resposta terá esta aparência:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Criptografar um objeto com uma chave do Cloud KMS
Você pode criptografar um objeto individual com uma chave do Cloud KMS. Isso é útil se você quiser usar uma chave diferente do conjunto de chaves padrão no bucket ou se ele não tiver um conjunto de chaves padrão. O nome do recurso de chave usado para criptografar o objeto é armazenado nos metadados do objeto.
Console
O console do Google Cloud não pode ser usado para especificar chaves do Cloud KMS por objeto. Use a gcloud 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=KEY_RESOURCE
Em que:
SOURCE_DATA
é o local de origem dos dados que você está criptografando. Ela pode ser qualquer local de origem aceito pelo comandocp
. Exemplo:gs://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
.KEY_RESOURCE
é o recurso de chave do Cloud KMS que você quer usar 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
.Adicione os dados do objeto ao corpo da solicitação.
Use
cURL
para chamar a API JSON com uma solicitação de ObjetoPOST
:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
Em que:
OBJECT
é o caminho para o objeto do qual está sendo feito o upload. Por exemplo,Desktop/dog.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.BUCKET_NAME
é o nome do bucket de 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
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
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
.Adicione os dados do objeto ao corpo da solicitação.
Use
cURL
para chamar a API XML com uma solicitação de ObjetoPUT
:curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-kms-key-name: KEY_RESOURCE" \ "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/dog.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.BUCKET_NAME
é o nome do bucket de 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
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
Fazer a rotação de uma chave fornecida pelo cliente para uma chave do Cloud KMS
Se seus objetos forem criptografados com chaves de criptografia fornecidas pelo cliente, você poderá trocá-los para usar as chaves do Cloud KMS reescrevendo o objeto:
Console
O console do Google Cloud não pode ser usado para alterar as chaves de criptografia por objeto. Use a gcloud 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=KMS_KEY --decryption-keys=CSEK_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
.KMS_KEY
é o recurso de chave do Cloud KMS que você quer usar para criptografar o objeto.CSEK_KEY
é a chave de criptografia atual fornecida pelo cliente usada no 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 de ObjetoPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -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?kmsKeyName=KEY_RESOURCE"
Em que:
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
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
API XML
A API XML não é compatível com a rotação de uma chave de criptografia fornecida pelo cliente para uma chave do Cloud KMS usando o objeto de regravação. Para realizar essa rotação usando a API XML:
.
Identifique a chave usada para criptografar um objeto
Para encontrar a chave do Cloud KMS usada para criptografar um objeto:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto desejado.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Navegue até o objeto, que pode estar localizado em uma pasta.
Na coluna Criptografia, passe o cursor do mouse sobre a entrada do objeto desejado.
O nome e a versão da chave aparecem no formato:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Linha de comando
Use o comando gcloud storage objects describe
com a flag --format
:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(kms_key)"
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto criptografado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto criptografado. Por exemplo,pets/dog.png
.
Se bem-sucedida, a resposta terá esta aparência:
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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.
Para visualizar a chave do KMS associada a um objeto, siga as instruções para exibir os metadados de um objeto e procure o campo do nome da chave do KMS na resposta.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 de ObjetoGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto criptografado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto criptografado. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
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
para chamar a API XML com uma solicitação de ObjetoGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
Em que:
BUCKET_NAME
é o nome do bucket que contém o objeto criptografado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado por URL do objeto criptografado. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.
Descriptografar um objeto
A descriptografia de um objeto criptografado com uma chave do Cloud KMS é realizada automaticamente, desde que o agente de serviço relevante tenha acesso à chave. Para para mais informações, consulte Agentes de serviço com CMEKs.
A seguir
- Saiba mais sobre CMEKs no Cloud Storage.
- Saiba mais sobre outras opções de criptografia disponíveis no Cloud Storage.
- Faça a rotação de suas chaves do Cloud KMS.
- Explore outros produtos compatíveis com o Cloud KMS.
- Saiba mais sobre as restrições das políticas da organização
restrictNonCmekServices
erestrictCmekCryptoKeyProjects
para ter mais controle sobre o uso das chaves do Cloud KMS.