Configurar a chave gerenciadora de clientes para criptografia
Os administradores de conta podem usar o console Databricks account para configurar a chave gerenciadora de clientes para criptografia. O senhor também pode configurar a chave do gerenciador de clientes usando a chave da conta Configurações API.
Há dois casos de uso Databricks para adicionar um gerenciador de clientes key:
-
dados do serviço gerenciado no plano de controle doDatabricks (Notebook, segredos e dados de consulta do Databricks SQL ).
-
dados de armazenamento do espaço de trabalho, que contêm DBFS root e os volumes EBS de compute recurso no plano clássico compute. Não se aplica ao armazenamentodefault na área de trabalho serverless.
Para um espaço de trabalho dserverless, é necessário apenas configurar o serviço gerenciado key. Isso ocorre porque o armazenamento default no espaço de trabalho serverless é um serviço gerenciado.
Além disso, a chave para volumes EBS não se aplica ao recurso serverless compute . Os discos para o recurso serverless compute são de curta duração e estão vinculados ao ciclo de vida da carga de trabalho serverless. Quando um recurso do compute é interrompido ou reduzido, as VMs e seu armazenamento são destruídos.
Chave de gerenciamento de clientes para volumes EBS, não se aplica a serverless compute recurso. Os discos para serverless compute recurso são de curta duração e estão vinculados ao ciclo de vida da carga de trabalho serverless. Quando o recurso compute é interrompido ou reduzido, as VMs e seu armazenamento são destruídos.
Para comparar os casos de uso do gerenciador de clientes key, consulte Comparar os principais casos de uso do gerenciador de clientes.
Para obter uma lista das regiões que suportam a chave gerenciadora de clientes, consulte Databricks clouds and regions. Esse recurso requer a camada Enterprise.
O que é uma configuração de chave de criptografia?
A chave gerenciar-cliente é gerenciar com configurações de chave de criptografia. As configurações de chave de criptografia são objetos de nível accountque fazem referência à sua nuvem key.
Os administradores de conta criam configurações de chave de criptografia no console account e uma configuração de chave de criptografia pode ser anexada a um ou mais espaços de trabalho.
O senhor pode compartilhar um objeto de configuração Databricks key entre os dois casos de uso de criptografia diferentes (serviço gerenciado e armazenamento workspace ).
O serviço gerenciado key pode ser adicionado a um workspace durante ou após a criação de um workspace. O armazenamento workspace key só pode ser adicionado a um workspace durante a criação de um workspace.
Etapa 1: Criar ou selecionar um key em AWS KMS
O senhor pode usar o mesmo AWS KMS key entre os casos de uso workspace storage e serviço gerenciado.
- Crie ou selecione uma chave simétrica key em AWS KMS, seguindo as instruções em Creating symmetric CMKs ou Viewing key.
O site KMS key deve estar na mesma região AWS que o seu site workspace.
-
Copie esses valores, que você precisará em uma passo posterior:
- key ARN : Obtenha o ARN do console ou o API (o campo
Arn
na resposta JSON ). - alias de chave : Um alias especifica um nome de exibição para o CMK em AWS KMS.
- key ARN : Obtenha o ARN do console ou o API (o campo
-
Na política principal tab, mude para a política view. Edite a política key para adicionar o abaixo JSON na seção
"Statement"
. Não exclua as políticas existentes do site key.Selecione tab para seu caso de uso de criptografia abaixo e clique em Copy (Copiar ).
Para o espaço de trabalho sem servidor, configure apenas o caso de uso serviço gerenciado.
A política usa o AWS account ID 414351767826
. Se o senhor estiver usando Databricks on AWS GovCloud use o AWS account ID 044793339203
para AWS GovCloud ou 170661010020
para AWS GovCloud DoD.
- Both managed services and workspace storage
- Managed services
- Workspace storage
Para permitir que o Databricks criptografe volumes EBS de cluster, substitua o <cross-account-iam-role-arn>
na política pelo ARN para a função IAM de nuvem cruzada que você criou para permitir que o Databricks acesse sua conta. Este é o mesmo ARN de função que você usa para registrar uma configuração de credencial Databricks para um workspace Databricks.
{
"Sid": "Allow Databricks to use KMS key for DBFS",
"Effect": "Allow",
"Principal":{
"AWS":"arn:aws:iam::414351767826:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
},
{
"Sid": "Allow Databricks to use KMS key for managed services in the control plane",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::414351767826:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
},
{
"Sid": "Allow Databricks to use KMS key for EBS",
"Effect": "Allow",
"Principal": {
"AWS": "<cross-account-iam-role-arn>"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"kms:ViaService": "ec2.*.amazonaws.com"
}
}
}
{
"Sid": "Allow Databricks to use KMS key for managed services in the control plane",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::414351767826:root"
},
"Action": ["kms:Encrypt", "kms:Decrypt"],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
}
Para permitir que o Databricks criptografe volumes EBS de cluster, substitua o <cross-account-iam-role-arn>
na política pelo ARN para a função IAM de nuvem cruzada que você criou para permitir que o Databricks acesse sua conta. Este é o mesmo ARN de função que você usa para registrar uma configuração de credencial Databricks para um workspace Databricks.
{
"Sid": "Allow Databricks to use KMS key for DBFS",
"Effect": "Allow",
"Principal":{
"AWS":"arn:aws:iam::414351767826:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
},
{
"Sid": "Allow Databricks to use KMS key for EBS",
"Effect": "Allow",
"Principal": {
"AWS": "<cross-account-iam-role-arn>"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"kms:ViaService": "ec2.*.amazonaws.com"
}
}
}
To retrieve your Databricks account ID, follow Locate your account ID.
Etapa 2: Adicione uma política de acesso ao seu siteaccount IAM role (opcional)
Se o seu KMS key estiver em um AWS account diferente do account IAM roleusado para implantar o seu workspace, o senhor deverá adicionar uma apólice a esseaccount IAM role. Esta política permite que Databricks acesse seu key. Se o seu KMS key estiver no mesmo AWS account que oaccount IAM role cruzado usado para implantar o seu workspace, o senhor não precisará executar esta etapa.
-
Faça login no AWS Management Console como um usuário com privilégios de administrador e vá para o IAM console.
-
No painel de navegação esquerdo, clique em Funções .
-
Na lista de funções, clique no cruzamentoaccount IAM roleque o senhor criou para Databricks.
-
Adicione uma política em linha.
-
Em Permissions (Permissões ) tab, clique em Add inline policy (Adicionar política em linha ).
-
No editor de políticas, clique na guia JSON .
-
Copie a política de acesso abaixo
JSON{
"Sid": "AllowUseOfCMKInAccount <AccountIdOfCrossAccountIAMRole>",
"Effect": "Allow",
"Action": ["kms:Decrypt", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey"],
"Resource": "arn:aws:kms:<region>:<AccountIdOfKMSKey>:key/<KMSKeyId>",
"Condition": {
"ForAnyValue:StringLike": {
"kms:ViaService": "ec2.*.amazonaws.com"
}
}
} -
Clique em Revisar política .
-
No campo Nome , insira um nome de política.
-
Clique em Criar política .
-
Etapa 3: Criar uma nova configuração do site key
Crie um objeto de configuração Databricks encryption key usando o console Databricks account . O senhor pode usar uma configuração de criptografia key em vários espaços de trabalho.
-
Como administrador da conta, faça login no console da conta.
-
Na barra lateral, clique em Recurso na nuvem .
-
Clique em Encryption key configuration (Configuração da chave de criptografia ) tab.
-
Clique em Add encryption key (Adicionar chave de criptografia ).
-
Selecione os casos de uso para essa criptografia key:
- Tanto o serviço gerenciado quanto o workspace storage
- Serviços gerenciados
- Armazenamento do workspace
-
No campo AWS key ARN digite o endereço key ARN que o senhor copiou acima.
-
No campo AWS key al ias, digite o key alias que o senhor copiou acima.
-
Clique em Adicionar .
-
Em Configurações , copie o ID.
Etapa 4: Adicione a configuração do key a um workspace
Para criar um novo workspace usando a configuração de criptografia key, siga as instruções em Create a workspace with custom AWS configurations ou Create a workspace using the account API.
Não é possível adicionar uma criptografia de armazenamento workspace key a um workspace existente usando o console account. Siga as etapas a seguir para utilizar o Databricks CLI para adicionar o key de criptografia a um workspace existente:
O senhor também pode usar a conta API.
-
Encerre todos os compute recursos em execução em seu Databricks workspace.
-
Atualize o site workspace com sua configuração key.
Para adicionar o key para o serviço gerenciado, defina
managed_services_customer_managed_key_id
como o ID key que o senhor copiou acima.Para adicionar o key para o armazenamento workspace, defina
storage-customer-managed-key-id
como o ID key que o senhor copiou acima.Substitua
<workspace-id>
pelo seu Databricks workspace ID.Por exemplo:
Bashdatabricks account workspaces update <workspace-id> --json '{
"managed_services_customer_managed_key_id": "<databricks-encryption-key-id>",
"storage-customer-managed-key-id": "<databricks-encryption-key-id>",
}' -
Se o senhor estiver adicionando uma chave para o armazenamento workspace, aguarde pelo menos 20 minutos para começar qualquer compute ou usar o DBFS API.
-
Reinicie o site compute que o senhor encerrou em uma etapa anterior.
Girar um key
O senhor só pode rotacionar (atualizar) um site existente key for customer-gerenciar key for serviço gerenciado. O senhor não pode girar um key existente para gerenciar o cliente key para armazenamento. No entanto, o site AWS oferece rotação automática do CMK master key, que gira o key subjacente sem alterar o key ARN. A rotação automática do mestre CMK key é compatível com a chave gerenciadora de clientes Databricks para armazenamento. Para obter mais informações, consulte Rotating AWS KMS key.
Para rotacionar um key existente para o serviço gerenciado, siga as instruções na Etapa 4: Adicionar a configuração key a um workspace. O senhor deve manter seu antigo KMS key disponível para Databricks por 24 horas.