Aller au contenu principal

Configurez les clés gérées par le client pour le chiffrement

Cette page explique comment configurer les clés gérées par les clients pour le chiffrement des services gérés et du stockage du Workspace.

Qu'est-ce qu'une configuration de clés de chiffrement ?

Les clés gérées par le client sont gérées avec des configurations de clés de chiffrement. Les configurations des clés de chiffrement sont des objets de niveau compte qui référencent la clé de votre cloud. Les administrateurs de compte créent des configurations de clés de chiffrement dans la console du compte. Une configuration des clés de chiffrement peut être associée à un ou plusieurs workspaces.

Les administrateurs de compte peuvent utiliser la console de compte Databricks pour configurer les clés gérées par le client pour le chiffrement. Vous pouvez également configurer des clés gérées par le client à l’aide de l’ API de configuration de clé de compte.

Il existe deux cas d'utilisation Databricks pour l'ajout d'une clé gérée par le client :

  • Données des services gérés dans le plan de contrôle Databricks (notebooks, secrets, données des requêtes Databricks SQL, données du projet Lakebase Autoscaling et stockage par default dans les Workspace serverless).

  • Données de stockage du Workspace, qui contient la racine DBFS et les volumes EBS des ressources de compute dans le plan de calcul classique. Ne s'applique pas au default storage dans les workspaces Serverless.

remarque

Pour les workspaces serverless, vous n'avez qu'à configurer la clé des services gérés. C'est parce que le stockage default dans les workspaces Serverless est un service géré.

De plus, les clés des volumes EBS ne s'appliquent pas aux ressources de compute Serverless. Les disques pour les ressources de compute serverless sont éphémères et liés au cycle de vie de la charge de travail serverless. Lorsque les ressources de compute sont arrêtées ou réduites, les machines virtuelles et leur stockage sont détruits.

Pour comparer les cas d'utilisation des clés gérées par le client, consultez Comparer les cas d'utilisation des clés gérées par le client.

Vous pouvez partager un objet de configuration de clé Databricks entre les deux cas d'utilisation de chiffrement différents (services gérés et stockage du workspace).

Pour obtenir la liste des régions qui prennent en charge les clés gérées par le client, consultez Clouds et régions Databricks. Cette fonctionnalité nécessite le niveau Enterprise.

Étape 1 : Créez ou sélectionnez une clé dans AWS KMS

Vous pouvez utiliser la même clé AWS KMS entre le stockage du Workspace et les cas d'utilisation des services gérés.

  1. Créez ou sélectionnez une clé symétrique dans AWS KMS, en suivant les instructions de Création de CMK symétriques ou Affichage des clés.

La clé KMS doit se trouver dans la même région AWS que votre Workspace.

  1. Copiez ces valeurs, dont vous aurez besoin à une étape ultérieure :

    • ARN de la clé : Récupérez l'ARN à partir de la console ou de l'API (le champ Arn dans la réponse JSON).
    • Alias de clé : un alias spécifie un nom d'affichage pour la CMK dans AWS KMS.
  2. Dans l’onglet Key policy tab, passez à la vue de la politique. Modifiez la politique clé pour ajouter le JSON ci-dessous dans la section "Statement". Ne supprimez pas les politiques de clé existantes.

    Sélectionnez un tab pour votre cas d'utilisation de chiffrement ci-dessous et cliquez sur Copier .

remarque

Pour les workspaces Serverless, ne configurez que le cas d'utilisation des services gérés. Default storage in Serverless workspaces is a managed service.

La politique utilise l'ID de compte AWS 414351767826. Si vous utilisez Databricks sur AWS GovCloud, utilisez l'ID de compte AWS 044793339203 pour AWS GovCloud ou 170661010020 pour AWS GovCloud DoD.

Pour permettre à Databricks de chiffrer les volumes EBS du cluster, remplacez le <cross-account-iam-role-arn> dans la politique par l'ARN du rôle IAM inter-cloud que vous avez créé pour permettre à Databricks d'accéder à votre compte. Il s'agit du même ARN de rôle que vous utilisez pour enregistrer une configuration d'identifiant Databricks pour un Databricks Workspace.

JSON
{
"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"
}
}
}
remarque

To retrieve your Databricks account ID, follow Locate your account ID.

Étape 2 : Ajouter une politique d'accès à votre rôle IAM inter-comptes (Facultatif)

Si votre clé KMS se trouve dans un compte AWS différent de celui du rôle IAM inter-comptes utilisé pour déployer votre Workspace, vous devez ajouter une politique à ce rôle IAM inter-comptes. Cette politique permet à Databricks d'accéder à votre clé. Si votre clé KMS se trouve dans le même compte AWS que le rôle IAM inter-comptes utilisé pour déployer votre Workspace, vous n'avez pas besoin d'effectuer cette étape.

  1. Connectez-vous à la console de gestion AWS en tant qu'utilisateur disposant de privilèges d'administrateur et accédez à la console IAM .
  2. Dans le volet de navigation gauche, cliquez sur Rôles .
  3. Dans la liste des rôles, cliquez sur le rôle IAM inter-comptes que vous avez créé pour Databricks.
  4. Ajouter une politique en ligne.
    1. Dans l'onglet Autorisations , cliquez sur Ajouter une politique en ligne .

      Politique en ligne

    2. Dans l’éditeur de stratégies, cliquez sur l’onglet JSON .

      Éditeur JSON

    3. Copiez la politique d'accès ci-dessous

      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"
      }
      }
      }
    4. Cliquez sur Vérifier la politique .

    5. Dans le champ Nom , entrez un nom de stratégie.

    6. Cliquez sur Créer une politique .

Étape 3 : Créer une nouvelle configuration de clé

Créez un objet de configuration de clé de chiffrement Databricks à l'aide de la console de compte Databricks. Vous pouvez utiliser une configuration de clé de chiffrement sur plusieurs Workspaces.

  1. En tant qu'administrateur de compte, connectez-vous à la console du compte.

  2. Dans la barre latérale, cliquez sur Sécurité .

  3. Cliquez sur la **tab Clés de chiffrement**.

  4. Cliquez sur Ajouter une clé de chiffrement .

  5. Sélectionnez les cas d'utilisation pour cette clé de chiffrement :

    • Services gérés et stockage du Workspace
    • Services gérés
    • Stockage du Workspace
  6. Dans le champ ARN de clé AWS , saisissez l'ARN de la clé que vous avez copié ci-dessus.

  7. Dans le champ d'alias de clé AWS , saisissez l'alias de clé que vous avez copié ci-dessus.

  8. Cliquez sur **Ajouter**.

  9. Dans **Configurations**, copiez l'**ID**.

Étape 4 : Ajoutez la configuration de clé à un Workspace

Pour créer un nouveau Workspace à l'aide de la configuration de la clé de chiffrement, suivez les instructions dans Créer un Workspace avec des configurations AWS manuelles ou Créer un Workspace à l'aide de l'API de compte.

La console de compte ne prend pas en charge l'ajout de clés de chiffrement du stockage de Workspace aux Workspaces existants. Utilisez la CLI Databricks ou l' API de mise à jour de la configuration du Workspace à la place.

Suivez les étapes suivantes pour utiliser la CLI Databricks :

remarque

Les mises à jour des clés gérées par le client pour le stockage de Workspace peuvent prendre jusqu'à 24 heures pour prendre effet.

  1. Terminez toutes les ressources de compute en cours d'exécution dans votre workspace Databricks.

  2. Mettez à jour un Workspace avec votre configuration de clé.

    Pour ajouter la clé des services gérés, définissez managed_services_customer_managed_key_id sur l'ID de clé que vous avez copiée ci-dessus.

    Pour ajouter la clé de stockage du workspace, définissez storage_customer_managed_key_id sur l'ID de clé que vous avez copié ci-dessus.

    Remplacez <workspace-id> par l'ID de votre Workspace Databricks.

    Par exemple :

    Bash
    databricks 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>",
    }'
  3. Redémarrez le compute que vous avez arrêté à l'étape précédente.

Faire pivoter une clé existante

Vous ne pouvez que faire pivoter (mettre à jour) une clé existante pour la clé gérée par le client pour les services gérés. Vous ne pouvez pas faire pivoter une clé existante pour la clé gérée par les clients pour le stockage. Cependant, AWS fournit une rotation automatique des clés maîtresses CMK, qui fait pivoter la clé sous-jacente sans modifier l'ARN de la clé. La rotation automatique de la clé principale CMK est compatible avec les clés gérées par le client Databricks pour le stockage. Pour plus d’information, consultez Rotation des clés AWS KMS.

Pour faire pivoter une clé existante pour les services gérés, suivez les instructions de l'Étape 4 : Ajouter la configuration de la clé à un Workspace. Vous devez conserver votre ancienne clé KMS disponible pour Databricks pendant 24 heures.