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 de criptografia padrão (criptografia padrão do Google), chaves de criptografia gerenciadas pelo cliente (CMEK) ou chaves de criptografia fornecidas pelo cliente (CSEK) para novos objetos criados no bucket.
Por exemplo, para ajudar a atender aos requisitos de conformidade sobre o gerenciamento de chaves de criptografia, é possível 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 fazer upload, copiar, compor e restaurar 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 de 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 novo bucket:
storage.buckets.create -
Atualize a configuração de um bucket:
storage.buckets.update -
Se você usa o console do 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 é exibido.
- Para filtrar objetos a serem replicados por prefixo de nome de objeto, digite 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 Definir configurações de cache que aparece, 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, faça o seguinte:
-
Selecione se o bucket aplica a prevenção de acesso público.
-
Selecione Uniforme para ativar o acesso uniforme no nível do bucket.
-
Se quiser, configure a filtragem de IP para o bucket.
-
-
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 tempo que a exclusão reversível reté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 de retenção personalizada. Em seguida, especifique por quanto tempo você quer reter os 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 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 aplicaçã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#
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.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
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 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 aplicaçã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 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 aplicaçã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, siga estas etapas.
Se o bucket tiver uma chave KMS padrão definida, não será possível restringir as CMEKs e as chaves de criptografia fornecidas pelo cliente, porque isso impediria a criação de novos objetos. Permita CMEK ou CSEK em um bucket como esse 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 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#
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.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
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 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 que contenha as configurações de criptografia do bucket. As configurações a seguir definem apenas a configuração de aplicação da 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 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 do bucketPUTcom o 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 ver quais métodos de criptografia são permitidos para um bucket, consulte Acessar 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.