Esta página descreve como usar uma chave de encriptação do Cloud Key Management Service com o Cloud Storage, incluindo a definição de chaves predefinidas em contentores e a adição de chaves a objetos individuais. Uma chave de encriptação do Cloud KMS é uma chave de encriptação gerida pelo cliente (CMEK). Essas chaves são criadas e geridas através do Cloud KMS e armazenadas como chaves de software ou externamente.
Antes de começar
Antes de usar esta funcionalidade no Cloud Storage, tem de:
Ative a API Cloud KMS para o projeto que vai armazenar as suas chaves de encriptação.
Ter autorização suficiente para o projeto que vai armazenar as suas chaves de encriptação:
Se for proprietário do projeto que vai armazenar as chaves, é muito provável que tenha a autorização necessária.
Se planeia criar novos conjuntos de chaves e chaves de encriptação, deve ter autorização
cloudkms.keyRings.create
ecloudkms.cryptoKeys.create
.Quer planeie usar anéis de chaves e chaves novos ou existentes, deve ter autorização
cloudkms.cryptoKeys.setIamPolicy
para as chaves que vai usar para a encriptação.Esta autorização permite-lhe conceder aos agentes de serviço do Cloud Storage acesso às chaves do Cloud KMS.
As autorizações acima estão contidas na função Administrador do Cloud KMS.
Consulte o artigo Usar a IAM com o Cloud KMS para obter instruções sobre como obter esta ou outras funções do Cloud KMS.
Ter um conjunto de chaves do Cloud KMS e ter, pelo menos, uma chave no conjunto de chaves.
O conjunto de chaves tem de estar na mesma localização que os dados que pretende encriptar, mas pode estar num projeto diferente. Para ver as localizações do Cloud KMS disponíveis, consulte o artigo Localizações do Cloud KMS.
Ter autorização suficiente para trabalhar com objetos no seu contentor do Cloud Storage:
Se for proprietário do projeto que contém o contentor, é muito provável que tenha a autorização necessária.
Se usar o IAM, deve ter a
storage.objects.create
autorização para escrever objetos no contentor e a autorizaçãostorage.objects.get
para ler objetos do contentor. Consulte o artigo Usar autorizações de IAM para ver instruções sobre como obter uma função, como Administrador de objetos de armazenamento que tenha estas autorizações.Se usar LCAs, deve ter a autorização
WRITER
no âmbito do contentor para escrever objetos no contentor e a autorizaçãoREADER
no âmbito do objeto para ler objetos do contentor. Consulte Definir ACLs para ver instruções sobre como fazê-lo.
-
Obtenha o endereço de email do agente de serviço associado ao projeto que contém o seu contentor do Cloud Storage. Ao realizar este passo, cria automaticamente o agente de serviço se este não existir atualmente.
Atribua uma chave do Cloud KMS a um agente de serviço
Para usar as CMEKs, conceda ao agente de serviço do Cloud Storage associado ao seu contentor a autorização para usar a sua chave do Cloud KMS para encriptar e desencriptar:
Consola
- Na Trusted Cloud consola, aceda à página Gestão de chaves.
Clique no nome do conjunto de chaves que contém a chave que quer usar.
Selecione a caixa de verificação da chave pretendida.
O separador Autorizações no painel da janela do lado direito fica disponível.
Na caixa de diálogo Adicionar membros, especifique o endereço de email do agente do serviço do Cloud Storage ao qual está a conceder acesso.
No menu pendente Selecionar uma função, selecione Encriptador/desencriptador de CryptoKey do Cloud KMS.
Clique em Adicionar.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Linha de comandos
Use o comando gcloud storage service-agent
com a flag --authorize-cmek
para conceder ao agente de serviço associado ao seu bucket autorização para encriptar e desencriptar objetos através da sua chave do Cloud KMS:
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Onde:
PROJECT_STORING_OBJECTS
é o ID ou o número do projeto que contém os objetos que quer encriptar ou desencriptar. Por exemplo,my-pet-project
.KEY_RESOURCE
é o seu recurso de chave do Cloud KMS.
Bibliotecas cliente
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS" }, } }
Onde
SERVICE_AGENT_EMAIL_ADDRESS
é o endereço de email associado ao seu agente de serviço. Por exemplo,service-7550275089395@gs-project-accounts.s3ns.iam.gserviceaccount.com
.Use
cURL
para chamar a API Cloud KMS com um pedidoPOST 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"
Onde:
JSON_FILE_NAME
é o caminho para o ficheiro JSON que criou no passo 2.KEY_RESOURCE
é o seu 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. Em alternativa, use uma das outras ferramentas do Cloud Storage, como a CLI gcloud.
Use chaves de encriptação predefinidas
Defina a chave predefinida para um contentor
Para adicionar, alterar ou remover a chave do Cloud KMS usada por predefinição quando os objetos são escritos num contentor:
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor pretendido.
Na página Detalhes do contentor, clique no separador Configuração.
Clique no ícone de lápis associado à entrada Tipo de encriptação.
Defina ou remova a chave do Cloud KMS predefinida para o contentor.
Se o contentor não estiver atualmente a usar uma chave do Cloud KMS, selecione o botão de opção Chave gerida pelo cliente e, em seguida, selecione uma das chaves disponíveis no menu pendente associado.
Se o contentor usar atualmente uma chave do Cloud KMS, altere a chave do Cloud KMS no menu pendente ou remova-a selecionando o botão de opção Google Cloud-powered encryption key.
Clique em Guardar.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Linha de comandos
Use o comando gcloud storage buckets update
com a flag adequada:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Onde:
BUCKET_NAME
é o nome do contentor relevante. Por exemplo,my-bucket
.FLAG
é a definição pretendida para a chave predefinida no contentor. Use um dos seguintes formatos:--default-encryption-key=
e um recurso de chave do Cloud KMS, se quiser adicionar ou alterar uma chave predefinida.--clear-default-encryption-key
, se quiser remover a chave predefinida no contentor.
Se for bem-sucedido, a resposta tem o seguinte aspeto:
Updating gs://my-bucket/... Completed 1
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
O exemplo seguinte define uma chave de encriptação gerida pelo cliente predefinida num contentor:
O exemplo seguinte remove a chave de encriptação gerida pelo cliente predefinida de um contentor:
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Onde
KEY_RESOURCE
é o seu recurso de chave do Cloud KMS.Para remover a chave do Cloud KMS predefinida de um contentor, use o seguinte no ficheiro JSON:
{ "encryption": { "defaultKmsKeyName": null } }
Use
cURL
para chamar a API JSON com um pedido dePATCH
Bucket:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=encryption"
Onde:
JSON_FILE_NAME
é o caminho para o ficheiro JSON que criou no passo 2.BUCKET_NAME
é o nome do contentor relevante. Por exemplo,my-bucket
.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro XML que contenha as seguintes informações:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Onde
KEY_RESOURCE
é o seu recurso de chave do Cloud KMS.Para remover a chave do Cloud KMS predefinida de um contentor, use o seguinte no ficheiro XML:
<EncryptionConfiguration></EncryptionConfiguration>
Use
cURL
para chamar a API XML com um pedido dePUT
Bucket e um parâmetro de string de consultaencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?encryptionConfig"
Onde:
XML_FILE_NAME
é o caminho para o ficheiro XML que criou no passo 2.BUCKET_NAME
é o nome do contentor relevante. Por exemplo,my-bucket
.
Veja a chave predefinida de um contentor
Para ver a chave do Cloud KMS que está atualmente definida como predefinida para o seu contentor:
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor pretendido.
Na página Detalhes do contentor, clique no separador Configuração.
A chave predefinida atual do seu contentor aparece no campo Chave de encriptação.
Para saber como obter informações detalhadas sobre erros relativos a operações do Cloud Storage falhadas na Trusted Cloud consola, consulte a secção Resolução de problemas.
Linha de comandos
Use o comando gcloud storage buckets describe
com a flag
--format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_kms_key)"
Onde BUCKET_NAME
é o nome do contentor cuja chave quer ver. Por exemplo, my-bucket
.
Se for bem-sucedido, a resposta tem o seguinte aspeto:
default_kms_key: KEY_RESOURCE
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedido deGET
contentor que inclua ofields
pretendido:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=encryption"
Onde
BUCKET_NAME
é o nome do contentor cuja chave quer ver. Por exemplo,my-bucket
.A resposta tem o seguinte aspeto:
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API XML com um pedido deGET
Bucket que inclua o parâmetro de consultaencryption
:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME?encryptionConfig"
Onde
BUCKET_NAME
é o nome do contentor cuja chave quer ver. Por exemplo,my-bucket
.A resposta tem o seguinte aspeto:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Encriptar um objeto com uma chave do Cloud KMS
Pode encriptar um objeto individual com uma chave do Cloud KMS. Isto é útil se quiser usar uma chave diferente do conjunto de chaves predefinido no contentor ou se não tiver um conjunto de chaves predefinido no contentor. O nome do recurso de chave usado para encriptar o objeto é armazenado nos metadados do objeto.
Consola
Não é possível usar a Trusted Cloud consola para especificar chaves do Cloud KMS por objeto. Em alternativa, use a CLI gcloud ou as bibliotecas de cliente.
Linha de comandos
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
Onde:
SOURCE_DATA
é a localização de origem dos dados que está a encriptar. Pode ser qualquer localização de origem suportada pelo comandocp
. Por exemplo,gs://my-bucket/pets/old-dog.png
.BUCKET_NAME
é o nome do contentor de destino para este comando de cópia. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto final encriptado. Por exemplo,pets/new-dog.png
.KEY_RESOURCE
é o recurso de chave do Cloud KMS que quer usar para encriptar o objeto.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Adicione os dados do objeto ao corpo do pedido.
Use
cURL
para chamar a API JSON com um pedido dePOST
objeto:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.s3nsapis.fr/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
Onde:
OBJECT
é o caminho para o objeto que está a carregar. Por exemplo,Desktop/dog.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.BUCKET_NAME
é o nome do contentor para o qual está a carregar o seu objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome com codificação URL do objeto que está a carregar. Por exemplo,pets/dog.png
, URL codificado comopets%2Fdog.png
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Adicione os dados do objeto ao corpo do pedido.
Use
cURL
para chamar a API XML com um pedido dePUT
Object: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.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME"
Onde:
OBJECT
é o caminho para o objeto que está a carregar. Por exemplo,Desktop/dog.png
.OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto. Por exemplo,image/png
.BUCKET_NAME
é o nome do contentor para o qual está a carregar o seu objeto. Por exemplo,my-bucket
.OBJECT_NAME
é o nome com codificação URL do objeto que está a carregar. Por exemplo,pets/dog.png
, URL codificado comopets%2Fdog.png
.KEY_RESOURCE
é o seu recurso de chave do Cloud KMS.
Alterne de uma chave fornecida pelo cliente para uma chave do Cloud KMS
Se os seus objetos estiverem encriptados com chaves de encriptação fornecidas pelo cliente, pode alterná-los para usar chaves do Cloud KMS reescrevendo o objeto:
Consola
Não é possível usar a consola Trusted Cloud para alterar as chaves de encriptação por objeto. Em alternativa, use a CLI gcloud ou as bibliotecas de cliente.
Linha de comandos
Use o comando gcloud storage objects update
com os flags adequados:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=KMS_KEY --decryption-keys=CSEK_KEY
Onde:
BUCKET_NAME
é o nome do contentor que contém o objeto cuja chave está a rodar. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto cuja chave está a rodar. Por exemplo,pets/dog.png
.KMS_KEY
é o recurso de chave do Cloud KMS que quer usar para encriptar o objeto.CSEK_KEY
é a chave de encriptação fornecida pelo cliente atual usada no objeto.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedido dePOST
objeto: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.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
Onde:
OLD_ENCRYPTION_KEY
é a chave AES-256 atual usada para encriptar o seu objeto.HASH_OF_OLD_KEY
é o hash SHA-256 atual da sua chave AES-256.BUCKET_NAME
é o nome do contentor que contém o objeto relevante. Por exemplo,my-bucket
.OBJECT_NAME
é o nome codificado em URL do objeto cujas chaves está a rodar. Por exemplo,pets/dog.png
, URL codificado comopets%2Fdog.png
.KEY_RESOURCE
é o recurso de chave do Cloud KMS.
API XML
A API XML não suporta a rotação de uma chave de encriptação fornecida pelo cliente para uma chave do Cloud KMS através da reescrita de objetos. Para fazer essa rotação através da API XML, deve:
Identifique a chave usada para encriptar um objeto
Para encontrar a chave do Cloud KMS que foi usada para encriptar um objeto:
Consola
- Na Trusted Cloud consola, aceda à página Recipientes do Cloud Storage.
Na lista de contentores, clique no nome do contentor que contém o objeto pretendido.
É aberta a página Detalhes do contentor, com o separador Objetos selecionado.
Navegue para o objeto, que pode estar localizado numa pasta.
Na coluna Encriptação, passe o cursor do rato sobre a entrada do objeto pretendido.
O nome e a versão da chave são apresentados no formato:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Linha de comandos
Use o comando gcloud storage objects describe
com a flag --format
:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(kms_key)"
Onde:
BUCKET_NAME
é o nome do contentor que contém o objeto encriptado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome do objeto encriptado. Por exemplo,pets/dog.png
.
Se for bem-sucedido, a resposta tem o seguinte aspeto:
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com um pedido deGET
objeto:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Onde:
BUCKET_NAME
é o nome do contentor que contém o objeto encriptado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome com codificação URL do objeto encriptado. Por exemplo,pets/dog.png
, URL codificado comopets%2Fdog.png
.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API XML com um pedido deGET
Object:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/BUCKET_NAME/OBJECT_NAME?encryption"
Onde:
BUCKET_NAME
é o nome do contentor que contém o objeto encriptado. Por exemplo,my-bucket
.OBJECT_NAME
é o nome com codificação URL do objeto encriptado. Por exemplo,pets/dog.png
, URL codificado comopets%2Fdog.png
.
Descriptografe um objeto
A desencriptação de um objeto encriptado com uma chave do Cloud KMS é realizada automaticamente, desde que o agente do serviço relevante tenha acesso à chave. Para mais informações, consulte o artigo Agentes de serviço com CMEKs.
O que se segue?
- Saiba mais acerca das CMEKs no Cloud Storage.
- Saiba mais sobre outras opções de encriptação disponíveis no Cloud Storage.
- Alterne as suas chaves do Cloud KMS.
- Explore outros produtos que podem funcionar com o Cloud KMS.
- Saiba mais sobre as restrições da política da organização
restrictNonCmekServices
erestrictCmekCryptoKeyProjects
para ter mais controlo sobre a utilização das chaves do Cloud KMS.