Chave de gerenciamento de clientes para Unity Catalog
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
Este recurso requer o plano Enterprise.
A chave de gerenciamento do cliente (CMK) para Unity Catalog permite proteger os dados gerenciados pelo Databricks com sua própria chave de criptografia. Você pode configurar a criptografia no nível do catálogo, usando uma key separada para cada catálogo com base na sensibilidade dos dados ou nos requisitos compliance .
Para obter informações sobre CMK para serviço gerenciado e armazenamento workspace , consulte Chave gerenciada pelo cliente para serviço gerenciado.
tc
O que é CMK para Unity Catalog?
O CMK para Unity Catalog permite proteger dados em catálogos Unity Catalog com armazenamento default , utilizando proteção de múltiplaskey com sua própria chave de criptografia do serviço de gerenciamento de chaves em nuvem do Google (KMS).
Com o CMK, Databricks criptografa todos os dados em repouso por default , usando a chave gerencia. Para um controle granular, o CMK permite configurar uma key de gerenciamento de cliente separada para catálogos específicos. Para negar o acesso aos dados, você pode revogar a key no Google Cloud KMS.
Benefícios do CMK para Unity Catalog
- Controle granular de criptografia: gerencie a criptografia no nível do catálogo, permitindo que diferentes catálogos usem chaves de criptografia diferentes com base na sensibilidade dos dados ou nos requisitos compliance .
- Proteção com múltiplaskey : CMK protege seus dados contra acesso na camada de armazenamento. Os dados só podem ser acessados em espaços de trabalho autorizados, com base em políticas detalhadas Unity Catalog .
- Conformidade e auditoria: Atender aos requisitos regulamentares para chaves de criptografia controladas pelo cliente e manter registros de auditoria de acesso e uso key .
- Revogação da chave: Revogue o acesso à CMK no Google Cloud KMS para manter a propriedade total dos seus dados.
- Gerenciamento centralizado key : gerencie todas as chaves de criptografia por meio do Google Cloud KMS, de forma consistente com suas práticas de segurança existentes GCP .
Como funciona o CMK para Unity Catalog
O CMK para Unity Catalog no GCP usa a chave do Google Cloud KMS , a conta de gerenciamento de serviços Databrickse as configurações de criptografia em nível de catálogo para impor a criptografia controlada pelo cliente. Os seguintes componentes são essenciais para o CMK para Unity Catalog no GCP:
-
Chave do Google Cloud KMS : Você cria e gerencia chaves de criptografia no serviço de gerenciamento de chaves do Google Cloud. Essas chaves servem como chave raiz de criptografia para os catálogos Unity Catalog .
-
Configurações CMK: Você cria configurações CMK no console account Databricks para registrar sua chave do Google Cloud KMS com Databricks. As configurações CMK são objetos de nível accountque devem ser criados antes que você possa aplicar o CMK a um catálogo. Ao criar uma configuração CMK, Databricks provisiona automaticamente uma account de serviço no projeto Databricks Google Cloud e concede a ela acesso à sua key KMS .
-
Conta de serviço: Databricks cria uma account de serviço na account do Google Cloud Databricks que está autorizada a acessar sua key KMS na nuvem. Esta account de serviço tem o formato
db-cmk-{id}@databricks-<REGION_SUFFIX>.iam.gserviceaccount.com. Databricks concede automaticamente à account serviço as permissões IAM necessárias para criptografia e descriptografia.- Databricks gera uma account de serviço exclusiva com privilégios mínimos para cada instância do CMK, a fim de manter o isolamento de segurança e impedir que a account de serviço herde permissões desnecessárias.
-
Criptografia em nível de catálogo: você configura a criptografia diretamente em catálogos individuais usando o Catalog Explorer ou a API Unity Catalog . Ao criar ou atualizar um catálogo com configurações CMK, Databricks criptografa todos os dados gravados nesse catálogo usando sua key de gerenciamento do cliente. Isso se aplica somente a catálogos com suporte de armazenamento default .
-
Aplicação dinâmica: Quando os dados são gravados em um catálogo protegido por CMK, Databricks usa sua key KMS para criptografar os dados. Ao ler dados, Databricks solicita a descriptografia do Google Cloud KMS. Se você revogar o acesso Databricks à key, a descriptografia falhará e os dados ficarão inacessíveis.
Limitações
- Você só pode configurar esse recurso usando o console account Databricks ou API REST . O suporte para Terraform não está disponível.
- Este recurso aplica-se apenas a catálogos com armazenamento default . Isso não se aplica a catálogos com locais de armazenamento externos.
Pré-requisitos
Antes de configurar o CMK para o Unity Catalog no GCP, verifique se você possui o seguinte:
-
Permissões de administrador da conta: Você precisa ser um administrador account Databricks para criar configurações de CMK no console account .
-
Permissões IAM GCP : Você precisa das seguintes permissões do Google Cloud IAM :
cloudkms.cryptoKeys.setIamPolicy- Necessário para conceder à account do serviço Databricks acesso à sua key KMScloudkms.cryptoKeys.getIamPolicy- Necessário para verificar as permissões account de serviço na sua key KMS
-
key KMS do Google Cloud: Você precisa ter uma key KMS do Google Cloud existente em sua account do Google Cloud. Siga o guia de início rápido do Google Cloud KMS para criar uma key , se necessário. Essa key deve estar ativa em uma região que suporte seu workspace Databricks . Copie o ID do recurso da sua key KMS , que tem o formato:
projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}. -
PermissõesUnity Catalog : Para criar ou atualizar catálogos com CMK, você deve ter privilégios
CREATE CATALOGeUSE CATALOGno Unity Catalog.
Configurar CMK para Unity Catalog
Siga estes passos para configurar a chave customer-gerenciar para catálogos Unity Catalog no GCP.
Passo 1: Crie uma configuração CMK no console account
Permissões necessárias: administrador da conta
Criar uma configuração CMK, registrar sua key do Google Cloud KMS com Databricks e provisionar uma account de serviço que Databricks usa para acessar a key.
-
No console account Databricks , acesse Segurança > Chave de criptografia .
-
Clique em Adicionar chave de criptografia .
-
Configure as definições key de criptografia:
- Nome : Insira um nome descritivo para sua configuração CMK, como
finance-catalog-cmkoupii-data-cmk. - Provedor de nuvem : Selecione Google Cloud Platform .
- Caso de uso : Escolha serviço gerenciado ou Serviço gerenciado e armazenamento de workspace .
- ID do recurso da chave : Insira o ID do recurso da sua key Cloud KMS no formato
projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}.
Ao clicar em Adicionar , Databricks cria uma nova account de serviço na account do Databricks no Google Cloud e concede automaticamente a ela permissão
Cloud KMS CryptoKey Encrypter/Decrypterem sua key KMS . - Nome : Insira um nome descritivo para sua configuração CMK, como
-
Clique em Adicionar para criar a configuração CMK.
-
Copie o ID de configuração da CMK do console account . Você usa esse ID ao criar ou atualizar catálogos.
o passo 2: Verifique a autorização account do serviço
Após criar a configuração da CMK, verifique se a account do serviço Databricks possui as permissões corretas na sua key KMS na nuvem.
-
Recupere o ID da conta do serviço chamando a API GetCustomerManagedKey :
Bashcurl -X GET \
-H "Authorization: Bearer <DATABRICKS_TOKEN>" \
https://accounts.cloud.databricks.com/api/2.0/accounts/<ACCOUNT_ID>/customer-managed-keys/<CUSTOMER_MANAGED_KEY_ID>Substitua os seguintes valores:
<DATABRICKS_TOKEN>: Seu access tokenpessoal de administrador account Databricks<ACCOUNT_ID>Seu ID account Databricks<CUSTOMER_MANAGED_KEY_ID>O ID de configuração CMK do passo 1
A resposta inclui a account do serviço no formato
db-cmk-{id}@databricks-<REGION_SUFFIX>.iam.gserviceaccount.com. As strings account de serviço são geradas dinamicamente e devem ser copiadas exatamente da resposta API para verificação. -
No Console do Google Cloud, acesse sua key do Cloud KMS .
-
Clique na guia Permissões .
-
Verifique se a account de serviço do passo 1 está listada com a função
Cloud KMS CryptoKey Encrypter/Decrypter.
o passo 3: Criar um novo catálogo com CMK
Permissões necessárias: CREATE CATALOG no Unity Catalog
Para criar um novo catálogo com proteção CMK, use a API Unity Catalog :
curl -X POST \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
https://<workspace_url>/api/2.1/unity-catalog/catalogs \
-d '{
"name": "<catalog_name>",
"comment": "Catalog with customer-managed encryption",
"storage_mode": "DEFAULT_STORAGE",
"encryption_settings": {
"customer_managed_key_id": "<cmk-id>"
}
}'
Substitua os seguintes valores:
<workspace_url>: O URL do seu workspace Databricks (por exemplo,https://dbc-1234567-a8b9.cloud.databricks.com)<api_token>Seu access tokenpessoal Databricks<catalog_name>: O nome do seu novo catálogo (por exemplo,finance_dataoucustomer_pii)<cmk-id>O ID de configuração CMK do passo 1
o passo 4: Atualizar um catálogo existente com CMK
Permissões necessárias: MANAGE no catálogo ou propriedade do catálogo
Para adicionar ou alterar a proteção CMK em um catálogo existente que usa o armazenamento default :
- No Explorador de Catálogos, clique no nome do catálogo.
- Clique na tab Detalhes .
- Em Avançado , clique em Configurações de criptografia .
- Na caixa de diálogo, selecione sua key de gerenciamento de cliente.
- Clique em Salvar .
Você pode alterar a key associada a um catálogo a qualquer momento, repetindo esses passos. Não é possível desativar o CMK depois de ele ter sido ativado em um catálogo.
Ao adicionar uma CMK a um catálogo existente, Databricks criptografa apenas os novos dados gravados no catálogo com a sua key de gerenciamento do cliente. Databricks- a chave de gerenciamento continua a criptografar os dados existentes. Para criptografar todos os dados com sua key de gerenciamento de cliente, você deve sobrescrever os dados existentes.
Verificar configuração CMK
Para verificar se o seu catálogo está configurado com CMK, use a API Unity Catalog para obter os detalhes do catálogo:
curl -X GET \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
"https://<workspace_url>/api/2.1/unity-catalog/catalogs/<catalog_name>"
A resposta inclui o campo encryption_settings para catálogos configurados com CMK:
{
"name": "<catalog_name>",
"storage_mode": "DEFAULT_STORAGE",
"encryption_settings": {
"customer_managed_key_id": "<cmk-id>"
}
}
Revogar o acesso a dados criptografados
Para negar Databricks o acesso a dados criptografados com sua key de gerenciamento de cliente, desative sua key no Google Cloud KMS:
- No Console do Google Cloud, acesse sua key do Cloud KMS .
- Desative a versão key .
Após desativar a key, Databricks não poderá mais descriptografar dados em catálogos usando essa configuração de CMK. Qualquer tentativa de ler dados desses catálogos falha com um erro de descriptografia.
Pode haver um atraso entre o momento em que você desativa a key e o momento em que o acesso aos dados é negado.
Para restaurar o acesso, reative a versão key no Google Cloud KMS.