Configurar a chave gerenciadora de clientes para criptografia

account os administradores podem usar o console do 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 API Account key Configurations.

Há dois casos de uso da Databricks para adicionar um gerenciador de clientes key:

  • workspace armazenamento (os buckets S3 raiz do seu workspacee os volumes EBS do compute recurso no plano clássico compute ).

Observação

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 e regiões. Esse recurso requer a camada Enterprise preços.

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 ao key de suas nuvens.

account Os administradores 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 do Databricks key entre os dois casos de uso de criptografia diferentes (serviço gerenciado e armazenamento workspace ).

O senhor pode adicionar uma configuração de chave de criptografia ao seu Databricks workspace durante a criação do workspace ou pode atualizar um workspace existente com uma configuração de criptografia key.

o passo 1: Criar ou selecionar uma chave no AWS KMS

O senhor pode usar o mesmo AWS KMS key entre os casos de uso workspace storage e serviço gerenciado.

  1. Crie ou selecione uma chave simétrica key no AWS KMS, seguindo as instruções em Creating symmetric CMKs or Viewing key.

O KMS key deve estar na mesma região da AWS que o seu workspace.

  1. Copie esses valores, que você precisará em uma passo posterior:

    • key ARN: Obtenha o ARN do console ou da API (o campo Arn na resposta JSON).

    • key alias: Um alias especifica um nome de exibição para o CMK no AWS KMS.

  2. Na políticakey tab, mude para a política view. Edite a política key para adicionar o texto abaixo, de modo que o Databricks possa usar o key para realizar operações de criptografia e descriptografia.

    Selecione um tab para seu caso de uso de criptografia abaixo e clique em Copy (Copiar).

    Adicione o JSON à sua política key na seção "Statement". Não exclua as políticas existentes do site key.

    A política usa o endereço Databricks AWS account ID 414351767826. Se o senhor estiver usando Databricks on AWS GovCloud use o endereço Databricks account ID 044793339203.

    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 DBFS (Grants)",
        "Effect": "Allow",
        "Principal":{
          "AWS":"arn:aws:iam::414351767826:root"
        },
        "Action": [
          "kms:CreateGrant",
          "kms:ListGrants",
          "kms:RevokeGrant"
        ],
        "Resource": "*",
        "Condition": {
          "Bool": {
            "kms:GrantIsForAWSResource": "true"
          },
          "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 DBFS (Grants)",
        "Effect": "Allow",
        "Principal":{
          "AWS":"arn:aws:iam::414351767826:root"
        },
        "Action": [
          "kms:CreateGrant",
          "kms:ListGrants",
          "kms:RevokeGrant"
        ],
        "Resource": "*",
        "Condition": {
          "Bool": {
            "kms:GrantIsForAWSResource": "true"
          },
          "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"
          }
        }
      }
    

    Observação

    Para recuperar o ID de sua conta Databricks, siga Localizar o ID de sua conta.

o passo 2: Adicionar uma política de acesso à sua conta cruzada IAM role (opcional)

Se sua key KMS estiver em uma conta da AWS diferente da IAM roleentre contas usada para melhorar seu workspace, você deverá adicionar uma política a essa IAM role entre contas. Essa política permite que o Databricks acesse sua key. Se sua key KMS estiver na mesma account da AWS que aIAM role entre account usada para aprimorar seu workspace, não será necessário executar esta passo.

  1. Faça login no AWS Management Console como um usuário com privilégios de administrador e acesse o console IAM.

  2. No painel de navegação esquerdo, clique em Roles (Funções).

  3. Na lista de funções, clique no cruzamentoaccount IAM roleque o senhor criou para Databricks.

  4. Adicione uma política em linha.

    1. Em Permissions (Permissões ) tab, clique em Add inline policy (Adicionar política em linha).

      Política em linha
    2. No editor de políticas, clique na guia JSON.

      Editor JSON
    3. Copie a política de acesso abaixo

      {
        "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"
          }
        }
      }
      
    4. Clique em Revisar política.

    5. No campo Nome , insira um nome de política.

    6. Clique em Criar política.

o passo 3: Criar uma nova configuração de chave

Crie um objeto de configuração de criptografia do Databricks key usando o console do Databricks account. O senhor pode usar uma configuração de criptografia key em vários espaços de trabalho.

  1. Como administrador da conta, faça login no console da conta.

  2. Na barra lateral, clique em clouds recurso.

  3. Clique em Encryption key configuration (Configuração da chave de criptografia ) tab.

  4. Clique em Add encryption key (Adicionar chave de criptografia).

  5. Selecione os casos de uso para essa criptografia key:

    • Tanto o serviço gerenciado quanto o workspace storage

    • Serviços gerenciados

    • Armazenamento do workspace

  6. No campo AWS key ARN, digite o ARN key que o senhor copiou acima.

  7. No campo AWS key al ias, digite o alias key que o senhor copiou acima.

  8. Clique em Adicionar.

  9. Copiar o nome.

o passo 4: Adicionar a configuração da chave a um espaço de trabalho

Adicione a configuração de criptografia key que o senhor criou a um workspace. Não é possível adicionar a criptografia key a um workspace usando o console account. Esta seção usa a CLI do Databricks para adicionar uma criptografia key a um workspace. O senhor também pode usar a API da conta.

Para criar um novo workspace usando a configuração de criptografia key, siga as instruções em Create a workspace using the account API .

  1. Encerre todos os sites em execução compute em seu workspace.

  2. 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 nome key que o senhor copiou acima.

    Para adicionar o key para o armazenamento workspace, defina storage-customer-managed-key-id como o nome key que o senhor copiou acima.

    Substitua <workspace-id> pelo seu Databricks workspace ID.

    Por exemplo:

    databricks account workspaces update <workspace-id> --json '{
      "managed_services_customer_managed_key_id": "<databricks-key-name>",
      "storage-customer-managed-key-id": "<databricks-key-name>",
    }'
    
  3. Se o senhor estiver adicionando uma chave para o armazenamento workspace, aguarde pelo menos 20 minutos para começar qualquer compute ou usar a API DBFS.

  4. Reinicie o site compute que o senhor encerrou em um passo anterior.

Girar uma chave existente

O senhor só pode rotacionar (atualizar) um site existente key para cliente-gerenciar key para serviço gerenciado. O senhor não pode girar um key existente para gerenciar o cliente key para armazenamento. No entanto, a AWS oferece rotação automática do mestre CMK 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 da Databricks para armazenamento. Para obter mais informações, consulte Rotação da chave AWS KMS.

Para girar um key existente para o serviço gerenciado, siga as instruções no passo 4: Adicionar a configuração do key a um espaço de trabalho. O senhor deve manter seu antigo KMS key disponível para a Databricks por 24 horas.