Nesta página, descrevemos como usar o consultor do Storage Intelligence para identificar e criptografar novamente objetos que violam a configuração de aplicação de criptografia no bucket.
Quando você aplica ou restringe os tipos de criptografia de um bucket, o Cloud Storage aplica essa configuração a todos os objetos novos ou reescritos no bucket. No entanto, o Cloud Storage não criptografa novamente de forma automática os objetos que você enviou antes da configuração entrar em vigor. Esses objetos permanecem criptografados com o método original. Para mais informações sobre os métodos de criptografia disponíveis, consulte Opções de criptografia de dados.
O consultor do Storage Intelligence mostra a descoberta Os objetos violam as regras de criptografia aplicadas quando um bucket contém objetos que usam um método de criptografia restrito. Uma descoberta é uma anomalia ou lacuna de configuração de segurança detectada nas métricas e nos metadados de objetos que precisa da sua atenção. Para uma visão geral do consultor do Storage Intelligence, consulte Sobre o consultor do Storage Intelligence. Para ver uma lista completa de descobertas, consulte o catálogo de referência de descobertas.
Limites que acionam uma descoberta
Quando você ativa o Storage Intelligence, o Cloud Storage avalia automaticamente os metadados de criptografia no nível do objeto em relação às configurações de aplicação de criptografia no nível do bucket em todo o projeto, pasta ou organização. O consultor do Storage Intelligence gera uma descoberta quando um bucket atende aos dois critérios a seguir:
- O bucket restringe um ou mais métodos de criptografia na configuração
enforcedEncryptionAllowedTypes, como criptografia padrão (criptografia padrão do Google ouGMEK), chaves de criptografia gerenciadas pelo cliente (CMEK) ou chaves de criptografia fornecidas pelo cliente (CSEK). - O bucket contém pelo menos um objeto em que o campo de metadados
encryptionTypenão está na listaenforcedEncryptionAllowedTypesdo bucket.
As descobertas iniciais de referência aparecem em até 48 horas após a ativação do Storage Intelligence e são atualizadas a cada 24 horas. Para reduzir o volume de alertas, o consultor do Storage Intelligence agrega violações no nível do objeto por bucket no painel. É possível consultar metadados de criptografia no nível do objeto em conjuntos de dados do Storage Insights.
Responder a uma descoberta
Para responder à descoberta, identifique os objetos afetados em cada bucket e reescreva os objetos não compatíveis com um método de criptografia permitido:
Veja os detalhes da descoberta para identificar os buckets afetados e os tipos de criptografia permitidos (
CMEK,GMEKouCSEK).Opcional: para listar os objetos em um bucket afetado que violam a configuração de criptografia aplicada, consulte o conjunto de dados do Storage Insights no BigQuery. Se você não tiver configurado um conjunto de dados vinculado, consulte Configurar conjuntos de dados do Storage Insights.
SELECT bucket, name, encryptionType FROM `DATASET_NAME.object_attributes_latest_snapshot_view` WHERE bucket = 'BUCKET_NAME' AND encryptionType NOT IN (ALLOWED_ENCRYPTION_TYPES) AND timeDeleted IS NULL AND softDeleteTime IS NULL;
Substitua:
DATASET_NAME: o nome do conjunto de dados vinculado do Storage Insights no BigQuery.BUCKET_NAME: o nome do bucket afetado.ALLOWED_ENCRYPTION_TYPES: uma lista separada por vírgulas dos tipos de criptografia permitidos pelo bucket, como'CMEK'ou'CMEK', 'GMEK'.
Use a tabela a seguir para selecionar o método de criptografia para seus objetos ativos:
Cenário Ação recomendada Detalhes O bucket permite chaves de criptografia gerenciadas pelo cliente ( CMEK)Criptografar novamente os objetos com CMEK Para objetos GMEKativos, exporte arquivos de manifesto CSV do BigQuery e execute um job de operações em lote do Storage para reescrever os objetos com uma chave do Cloud KMS. Para objetos criptografados por CSEK, execute o comandogcloud storage objects update.O bucket permite criptografia padrão ( GMEK)Criptografar novamente os objetos com a criptografia padrão (GMEK) Verifique se o bucket não tem uma chave padrão do Cloud KMS e use o comando gcloud storage objects updatecom a flag--clear-encryption-keypara reescrever os objetos afetados com a criptografia padrão.O bucket permite apenas chaves de criptografia fornecidas pelo cliente ( CSEK)Criptografar novamente os objetos com CSEK Use o comando gcloud storage objects updatecom a flag--encryption-keypara reescrever os objetos afetados com sua chave de criptografia AES-256.Depois de criptografar novamente todos os objetos não compatíveis em um bucket, a descoberta será removida desse bucket durante o próximo ciclo de atualização de 24 horas. No entanto, a descoberta permanece ativa nos seguintes casos até que você ou o Cloud Storage exclua permanentemente as versões de objeto retidas:
- Controle de versão de objeto: quando você reescreve um objeto ativo,
o Cloud Storage retém o objeto original não compatível como uma
versão não atual. Para limpar a descoberta, exclua as versões não atuais do objeto ou configure uma regra de
Deletedo Gerenciamento do ciclo de vida de objetos. - Exclusão reversível: quando você reescreve ou exclui um objeto, o Cloud Storage mantém a versão original não compatível em um estado de exclusão reversível até que a duração da retenção da exclusão reversível do bucket expire.
- Controle de versão de objeto: quando você reescreve um objeto ativo,
o Cloud Storage retém o objeto original não compatível como uma
versão não atual. Para limpar a descoberta, exclua as versões não atuais do objeto ou configure uma regra de
Criptografar novamente os objetos com CMEK
Se o bucket permitir chaves de criptografia gerenciadas pelo cliente (CMEK), criptografe novamente os
objetos afetados com base no método de criptografia atual.
Criptografar novamente objetos criptografados com GMEK em grande escala usando operações em lote do Storage
Para criptografar novamente objetos criptografados com GMEK usando CMEK em grande escala, exporte arquivos de manifesto CSV do BigQuery e execute um job de operações em lote do Storage:
Execute a seguinte consulta
EXPORT DATAno BigQuery para criar um manifesto CSV usando conjuntos de dados do Storage Insights para objetos ativos afetados que usam criptografia padrão (GMEK):EXPORT DATA OPTIONS( uri='gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv', format='CSV', overwrite=true, header=true ) AS SELECT bucket, name FROM `DATASET_NAME.object_attributes_latest_snapshot_view` WHERE bucket = 'BUCKET_NAME' AND encryptionType = 'GMEK' AND timeDeleted IS NULL AND softDeleteTime IS NULL;
Substitua:
DESTINATION_BUCKET: o nome do bucket do Cloud Storage em que você quer armazenar os arquivos de manifesto CSV exportados.DATASET_NAME: o nome do conjunto de dados vinculado do Storage Insights no BigQuery.BUCKET_NAME: o nome do bucket afetado.
Conclua os pré-requisitos das operações em lote do Storage e peça ao administrador para conceder o papel de criptografador/descriptografador de CryptoKey do Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) na chave do Cloud KMS aos dois agentes de serviço a seguir:- O agente de serviço de operações em lote do Storage
(
service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com) - O agente de serviço do Cloud Storage
(
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)
Substitua
PROJECT_NUMBERpelo número do projeto que contém o bucket.- O agente de serviço de operações em lote do Storage
(
Execute o comando
gcloud storage batch-operations jobs createpara criar um job de operações em lote do Storage usando o arquivo de manifesto e reescrever os objetos com sua chave do Cloud KMS. Para verificar a configuração do job antes de modificar objetos, inclua a flag--dry-run:gcloud storage batch-operations jobs create JOB_NAME \ --bucket="BUCKET_NAME" \ --manifest-location="gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv" \ --rewrite-object="kms-key=KMS_KEY"
Substitua:
JOB_NAME: um ID exclusivo para o job em lote, comore-encrypt-objects-job.BUCKET_NAME: o nome do bucket afetado.DESTINATION_BUCKET: o nome do bucket que contém os arquivos de manifesto exportados.KMS_KEY: o nome do recurso da chave do Cloud KMS que você quer usar para criptografar os objetos. A chave precisa estar no mesmo local que o bucket e usar o formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.
Criptografar novamente objetos criptografados com CSEK usando a Google Cloud CLI
Como o Google Cloud não armazena chaves de criptografia fornecidas pelo cliente (CSEK),
as operações em lote do Storage não podem descriptografar objetos criptografados com CSEK. Para criptografar novamente
objetos criptografados com CSEK usando CMEK, execute o comando gcloud storage objects update
com as flags --decryption-keys e --encryption-key:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --decryption-keys=DECRYPTION_KEY \ --encryption-key=KMS_KEY
Substitua:
BUCKET_NAME: o nome do bucket afetado.OBJECT_NAME: o nome do objeto criptografado por CSEK que você quer criptografar novamente. Para atualizar vários objetos em um único comando, use caracteres curinga de URI ou a flag--read-paths-from-stdin(-I).DECRYPTION_KEY: a chave AES-256 codificada em base64 RFC 4648 que criptografa o objeto.KMS_KEY: o nome do recurso da chave do Cloud KMS que você quer usar para criptografar o objeto, no formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.
Criptografar novamente os objetos com criptografia padrão (GMEK)
Para criptografar novamente os objetos com a criptografia padrão (criptografia padrão do Google ou
GMEK), verifique se o bucket não tem uma chave padrão do Cloud KMS
e limpe a chave de criptografia personalizada em cada objeto afetado:
Verifique se o bucket não tem uma chave padrão do Cloud KMS. Quando você limpa a chave de criptografia personalizada de um objeto, o Cloud Storage criptografa o objeto com criptografia padrão (
GMEK) somente se o bucket não tiver uma chave padrão do Cloud KMS. Se o bucket tiver uma chave padrão do Cloud KMS, o Cloud Storage vai criptografar o objeto com essa chave. Se o bucket também restringir a CMEK, a regravação vai falhar.Para remover uma chave padrão do Cloud KMS do bucket, execute o comando
gcloud storage buckets updatecom a flag--clear-default-encryption-key:gcloud storage buckets update gs://BUCKET_NAME \ --clear-default-encryption-key
Substitua
BUCKET_NAMEpelo nome do bucket afetado.Use o comando
gcloud storage objects updatecom a flag--clear-encryption-keypara reescrever os objetos afetados com criptografia padrão. Se os objetos forem criptografados com chaves de criptografia fornecidas pelo cliente (CSEK), inclua também a sinalização--decryption-keys:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --clear-encryption-key \ [--decryption-keys=DECRYPTION_KEY]
Substitua:
BUCKET_NAME: o nome do bucket afetado.OBJECT_NAME: o nome do objeto que você quer criptografar novamente. Para atualizar vários objetos em um único comando, use caracteres curinga de URI (comogs://BUCKET_NAME/**) ou a flag--read-paths-from-stdin(-I).DECRYPTION_KEY: se o objeto for criptografado comCSEK, a chave AES-256 codificada em base64 RFC 4648 que criptografa o objeto. Se o objeto for criptografado comCMEK, omita a flag--decryption-keys.
Criptografar novamente os objetos com CSEK
Se o bucket permitir apenas chaves de criptografia fornecidas pelo cliente (CSEK), use o comando gcloud storage objects update com a flag --encryption-key para regravar os objetos afetados com sua chave de criptografia AES-256. Se um objeto
for criptografado com uma CSEK diferente, inclua também a flag --decryption-keys:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --encryption-key=YOUR_ENCRYPTION_KEY \ [--decryption-keys=DECRYPTION_KEY]
Substitua:
BUCKET_NAME: o nome do bucket afetado.OBJECT_NAME: o nome do objeto que você quer criptografar novamente. Para atualizar vários objetos em um único comando, use caracteres curinga de URI ou a flag--read-paths-from-stdin(-I).YOUR_ENCRYPTION_KEY: sua string de chave de criptografia AES-256 codificada em base64 RFC 4648.DECRYPTION_KEY: se o objeto for criptografado com umaCSEKdiferente, a chave AES-256 codificada em Base64 RFC 4648 que criptografa o objeto. Se o objeto for criptografado comGMEKouCMEK, omita a flag--decryption-keys.
A seguir
- Principais tarefas:
- Confira outras descobertas:
- Criptografar novamente objetos que violam as políticas de CMEK padrão para buckets
- Otimizar o uso de dados de armazenamento Coldline e Archive Storage
- Melhorar o desempenho mitigando erros de solicitação com limitação de taxa
- Identificar o consumo de armazenamento acima da tendência
- Gerenciar a saída de dados entre regiões
- Analisar o catálogo de referência de descobertas
- Conceitos relacionados: