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. 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.
Pré-requisitos
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.
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 chaves de criptografia gerenciadas pelo cliente, conceda ao agente de serviço do Cloud Storage associado à permissão do bucket o uso da chave do Cloud KMS:
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.
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 Add.
Para informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage, consulte Solução de problemas.
Linha de comando
Use o comando gsutil kms authorize
para conceder ao agente de serviço
associado ao bucket permissão para criptografar e descriptografar objetos
usando a chave do Cloud KMS:
gsutil kms authorize -p PROJECT_STORING_OBJECTS -k 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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
Se quiser remover a permissão concedida, use a Google Cloud CLI ou o Console do Google Cloud.
Amostras de código
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.
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 OAUTH2_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.OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.KEY_RESOURCE
é o recurso de chave do Cloud KMS. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
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 o gsutil.
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 Cloud, acesse a página Navegador do Cloud Storage.
Selecione um bucket na lista de buckets.
Na página de 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 Save.
Para informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage, consulte Solução de problemas.
Linha de comando
Use o comando gsutil kms encryption
:
gsutil kms encryption STATE
gs://BUCKET_NAME
Em que:
STATE
é o estado desejado da chave padrão no bucket. Use um dos seguintes formatos:-k
e um recurso de chave do Cloud KMS, se você quiser adicionar ou alterar uma chave padrão. Por exemplo,-k projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.-d
, se você quiser remover a chave padrão no bucket.
BUCKET_NAME
é o nome do bucket relevante. Por exemplo,my-bucket
.
Se bem-sucedida, a resposta terá esta aparência:
Setting default KMS key for bucket gs://my-bucket...
Amostras de código
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage para C++.
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 para C#.
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 para Go.
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 para Java.
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 para Node.js.
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 para PHP.
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 para Python.
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 para Ruby.
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
- 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.
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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.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 OAUTH2_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.OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.BUCKET_NAME
é o nome do bucket pertinente. Por exemplo,my-bucket
.
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.
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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.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 de bucketPUT
e um parâmetro de string de consultaencryption
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Em que:
XML_FILE_NAME
é o caminho para o arquivo XML criado na Etapa 2.OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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 Cloud, acesse a página Navegador do Cloud Storage.
Selecione um bucket na lista de buckets.
Na página de detalhes do bucket, clique na guia Configuração.
A chave padrão atual do seu bucket aparece no campo Chave de criptografia.
Para informações detalhadas sobre erros de operações com falha no navegador do Cloud Storage, consulte Solução de problemas.
Linha de comando
Use o comando gsutil kms encryption
:
gsutil kms encryption gs://BUCKET_NAME
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 encryption key for gs://my-bucket: KEY_RESOURCE
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#.
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 para Go.
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 para Java.
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 para Node.js.
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 para PHP.
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 para Python.
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 para Ruby.
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
- 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 de bucketGET
que inclui ofields
desejado:curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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
- 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 XML com uma solicitação de bucketGET
que inclua o parâmetro de consultaencryption
:curl -X GET -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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 da chave usada para criptografar o objeto é armazenado nos metadados do objeto.
Console
O console não pode ser usado para especificar chaves do Cloud KMS por objeto. Use gsutil ou as bibliotecas de cliente.
Linha de comando
Adicione a seguinte opção à seção
[GSUtil]
do arquivo de configuração .boto:encryption_key = KEY_RESOURCE
Em que
KEY_RESOURCE
é o recurso de chave do Cloud KMS. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.Grave um objeto no bucket como faria normalmente, por exemplo, com
gsutil cp
ougsutil rewrite
.
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.
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 OAUTH2_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
.OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
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.
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 OAUTH2_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
.OAUTH2_TOKEN
é o token de acesso gerado na etapa 1;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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
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 não pode ser usado para alterar as chaves de criptografia por objeto. Use gsutil ou as bibliotecas de cliente.
Linha de comando
Adicione as seguintes opções à seção
[GSUtil]
do seu arquivo de configuração do boto:encryption_key = KEY_RESOURCE decryption_key1 = CUSTOMER_SUPPLIED_ENCRYPTION_KEY
Em que:
KEY_RESOURCE
é o recurso de chave do Cloud KMS. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.CUSTOMER_SUPPLIED_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 de ObjetoPOST
:curl -X POST \ -H "Authorization: Bearer OAUTH2_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:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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. Por exemplo,projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key
.
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:
Identificar a chave usada para criptografar um objeto
Para encontrar o nome da chave do Cloud KMS que foi usada para criptografar um objeto:
Console
- No Console do Cloud, acesse a página Navegador do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto que você quer.
A página Detalhes do bucket será 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 da chave aparece no formato:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Linha de comando
Use o comando gsutil stat
:
gsutil stat gs://BUCKET_NAME/OBJECT_NAME
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 conterá o nome da chave:
gs://my-bucket/pets/dog.png: ... KMS key: projects/my-pet-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key ...
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#.
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 para Go.
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 para Java.
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 para Node.js.
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 para PHP.
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 para Python.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage para Ruby.
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
- 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 de ObjetoGET
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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
- 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 XML com uma solicitação de ObjetoGET
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
Em que:
OAUTH2_TOKEN
é o token de acesso gerado na Etapa 1.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 mais informações, consulte Agentes de serviço com chaves de criptografia gerenciadas pelo cliente.
A seguir
- Saiba mais sobre chaves de criptografia gerenciadas pelo cliente 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.