Neste documento, descrevemos como configurar quais métodos de criptografia são permitidos ou restritos para novos objetos em um bucket do Cloud Storage. É possível configurar um bucket para aplicar ou restringir o uso da criptografia padrão (criptografia padrão do Google), chaves de criptografia gerenciadas pelo cliente (CMEK) ou chaves de criptografia fornecidas pelo cliente (CSEK) para qualquer novo objeto criado no bucket.
Por exemplo, para atender aos requisitos de conformidade sobre gerenciamento de chaves de criptografia, você pode exigir que todos os novos objetos sejam criptografados com criptografia padrão ou CMEK e restringir o uso de chaves de criptografia fornecidas pelo cliente.
Para mais informações sobre os métodos de criptografia disponíveis, consulte Opções de criptografia de dados.
O Cloud Storage aplica a configuração de criptografia a todas as ações que criam um novo objeto, como upload, cópia, composição e restauração de um objeto excluído de maneira reversível.
Antes de começar
Para receber as permissões necessárias
para configurar a aplicação da criptografia em um bucket,
peça ao administrador para conceder a você o papel do IAM de
Administrador do Storage (roles/storage.admin) no bucket.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para configurar a aplicação da criptografia em um bucket. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para configurar a aplicação da criptografia em um bucket:
-
Defina a configuração ao criar um bucket:
storage.buckets.create -
Atualize a configuração de um bucket existente:
storage.buckets.update -
Se você usa o console Google Cloud para realizar as etapas desta página:
-
storage.buckets.get -
storage.buckets.list
-
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar um bucket que aplique tipos de criptografia
É possível especificar os métodos de criptografia permitidos ou restritos para os objetos em um bucket ao criar um novo bucket.
Se você definir uma chave padrão do Cloud KMS para o bucket, também será necessário permitir a criptografia usando CMEKs ou chaves de criptografia fornecidas pelo cliente.
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
- Clique em Criar.
Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima etapa:
-
Na seção Começar, faça o seguinte:
-
Insira um nome globalmente exclusivo que atenda aos requisitos de nome de bucket.
-
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos, clique em add_box Adicionar rótulo e especifique um
keye umvaluepara o rótulo.
-
-
Na seção Escolha onde armazenar seus dados, faça o seguinte:
-
Selecione um tipo de local.
-
Use o menu suspenso do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
-
Se você selecionar o tipo de local birregional, também poderá ativar a replicação turbo usando a caixa de seleção relevante.
-
-
Para configurar a replicação entre buckets, selecione Adicionar replicação entre buckets usando o Serviço de transferência do Cloud Storage e siga as etapas:
Configurar a replicação entre buckets
- No menu Bucket, selecione um bucket.
-
Na seção Configurações de replicação, clique em Configurar para definir as configurações do job de replicação.
O painel Configurar a replicação entre buckets aparece.
- Para filtrar objetos a serem replicados por prefixo de nome de objeto, insira um prefixo com que você quer incluir ou excluir objetos e clique em Adicionar um prefixo.
- Para definir uma classe de armazenamento para os objetos replicados, selecione uma classe de armazenamento no menu Classe de armazenamento. Se você pular esta etapa, os objetos replicados vão usar a classe de armazenamento do bucket de destino por padrão.
- Clique em Concluído.
-
-
Na seção Escolha como armazenar seus dados, faça o seguinte:
-
Selecione uma classe de armazenamento padrão para o bucket ou Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.
-
Na seção Otimizar o armazenamento para cargas de trabalho com uso intensivo de dados, faça o seguinte:
-
Para ativar o namespace hierárquico, selecione Ativar namespace hierárquico neste bucket.
- Para ativar o Rapid Cache, selecione
Ativar Rapid Cache e siga as etapas:
-
Para criar caches, clique em Configurar.
-
Na caixa de diálogo Configurar configurações de cache, clique na seta suspensa ao lado das regiões listadas e selecione as zonas em que você quer criar caches.
-
Clique em Concluído.
-
-
-
-
Na seção Escolha como controlar o acesso a objetos, selecione se o bucket aplica ou não a prevenção de acesso público e selecione o acesso uniforme no nível do bucket para os objetos dele.
-
Na seção Escolha como proteger os dados do objeto, faça o seguinte:
-
Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
-
Para mudar o período em que a exclusão reversível mantém os objetos após a exclusão, marque a caixa de seleção Política de exclusão reversível e selecione a opção Definir duração personalizada da retenção. Em seguida, especifique por quanto tempo você quer reter objetos excluídos.
Para desativar a exclusão reversível, por exemplo, se o bucket contiver principalmente dados temporários de curta duração, desmarque a caixa de seleção Política de exclusão reversível.
-
Para escolher como criptografar os dados do objeto, clique na seta de expansão identificada como Criptografia de dados e faça o seguinte:
- Na seção Tipo de chave de criptografia padrão, selecione a chave de criptografia padrão para o bucket. Se você selecionar Chave do Cloud KMS, forneça uma chave do Cloud Key Management Service.
- Na seção Regras de aplicação de criptografia, em Tipos de chave, selecione quais tipos de criptografia permitir ou restringir para novos objetos no bucket.
-
-
Clique em Criar.
gcloud
Crie um arquivo JSON com as informações a seguir:
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Substitua:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia. Se você omitir a configuração de imposição para um tipo de criptografia específico, esse tipo será permitido por padrão.
-
Use o comando
gcloud storage buckets createcom a flag--encryption-enforcement-file:gcloud storage buckets create gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Substitua:
BUCKET_NAME: o nome do bucketENCRYPTION_ENFORCEMENT_FILE: o caminho para o arquivo JSON que você criou na etapa anterior.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Crie um arquivo JSON com as configurações do bucket. Para uma lista completa de configurações, consulte a documentação Buckets: Insert. As configurações a seguir definem apenas o nome do bucket e a criptografia:
{ "name": "BUCKET_NAME", "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Substitua:
BUCKET_NAME: o nome do bucket.-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia. Se você omitir a configuração de imposição para um tipo de criptografia específico, esse tipo será permitido por padrão.
Use
cURLpara chamar a API JSON com uma solicitação de bucketPOST:curl -X POST --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?project=PROJECT_ID"
Substitua:
JSON_FILE_NAME: o caminho para o arquivo JSON que você criou na etapa anterior.PROJECT_ID: o ID ou o número do projeto do bucket.
API XML
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Crie um arquivo XML com as configurações do bucket. Para uma lista completa de configurações, consulte a documentação XML: criar um bucket. As configurações a seguir definem apenas a aplicação da criptografia:
<CreateBucketConfiguration> <EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration> </CreateBucketConfiguration>
Substitua:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia. Se você omitir a configuração de imposição para um tipo de criptografia específico, esse tipo será permitido por padrão.
-
Use
cURLpara chamar a API XML com uma solicitação de bucketPUT:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
Substitua:
XML_FILE_NAME: o caminho para o arquivo XML que você criou na etapa anterior.PROJECT_ID: o ID ou o número do projeto do bucket.BUCKET_NAME: o nome do bucket
Atualizar os tipos de criptografia permitidos para um bucket
Para atualizar os métodos de criptografia permitidos para novos objetos em um bucket existente, siga estas etapas.
Se o bucket tiver uma chave padrão do KMS definida, não será possível restringir as chaves de criptografia CMEK e fornecidas pelo cliente, porque isso impediria a criação de novos objetos. Permita CMEK ou CSEK em um bucket desse tipo ou remova a chave padrão do Cloud KMS do bucket.
Console
- No console do Google Cloud , acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket.
Clique na guia Configuração.
Na seção Proteção, clique em Editar criptografia.
Na seção Regras de aplicação de criptografia, em Tipos de chave, selecione quais tipos de criptografia permitir ou restringir para novos objetos no bucket.
Clique em Salvar.
gcloud
Crie um arquivo JSON com as informações a seguir:
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Substitua:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia. Se você omitir um tipo de criptografia, a configuração atual será mantida.
-
Use o comando
gcloud storage buckets updatecom a flag--encryption-enforcement-file:gcloud storage buckets update gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Substitua:
BUCKET_NAME: o nome do bucketENCRYPTION_ENFORCEMENT_FILE: o caminho para o arquivo JSON que você criou na etapa anterior.
Pode levar até dois minutos para que a configuração atualizada entre em vigor.
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Crie um arquivo JSON com as informações a seguir:
{ "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Substitua:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia. Se você omitir um tipo de criptografia, a configuração atual será mantida.
-
Use
cURLpara 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"
Substitua:
JSON_FILE_NAME: o caminho para o arquivo JSON que você criou na etapa anterior.BUCKET_NAME: o nome do bucket
Pode levar até dois minutos para que a configuração atualizada entre em vigor.
API XML
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization.Crie um arquivo XML com as configurações de criptografia do bucket. As configurações a seguir definem apenas a configuração de imposição de criptografia.
<EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration>
Substitua:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: se a criptografia usando a criptografia padrão (criptografia padrão do Google) é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar a criptografia padrão.FullyRestricted: novos objetos não podem usar a criptografia padrão.
-
CMEK_RESTRICTION_MODE: se a criptografia usando CMEKs é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar CMEKs.FullyRestricted: novos objetos não podem usar CMEKs.
-
CSEK_RESTRICTION_MODE: se a criptografia usando chaves de criptografia fornecidas pelo cliente é permitida ao criar objetos neste bucket. Os valores a seguir são aceitos:NotRestricted: novos objetos podem usar chaves de criptografia fornecidas pelo cliente.FullyRestricted: novos objetos não podem usar chaves de criptografia fornecidas pelo cliente.
É necessário permitir pelo menos um tipo de criptografia.
-
Use
cURLpara chamar a API XML com uma solicitação de bucketPUTcom escopo definido como?encryptionConfig:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Substitua:
XML_FILE_NAME: o caminho para o arquivo XML que você criou na etapa anterior.BUCKET_NAME: o nome do bucket
Pode levar até dois minutos para que a configuração atualizada entre em vigor.
Ver as configurações de criptografia de um bucket
Para conferir as etapas de como ver quais métodos de criptografia são permitidos para um bucket, consulte Receber metadados do bucket.
A seguir
- Defina uma chave padrão do Cloud KMS em um bucket.
- Saiba como usar restrições personalizadas para aplicar tipos de criptografia.