Clés gérées par le client pour Unity Catalog
Cette fonctionnalité nécessite le niveau Enterprise.
Les clés gérées par le client (CMK) pour Unity Catalog vous permettent de protéger les données gérées par Databricks avec vos propres clés de chiffrement. Vous pouvez configurer le chiffrement au niveau du catalogue, en utilisant une clé distincte pour chaque catalogue en fonction de la sensibilité des données ou des exigences de conformité.
Pour plus d'informations sur CMK pour les services gérés et le stockage du workspace, consultez Clés gérées par le client pour les services gérés.
Qu'est-ce que CMK pour Unity Catalog ?
Le CMK pour Unity Catalog vous permet de protéger les données des catalogues Unity Catalog sauvegardés par un stockage default avec une protection multi-clés en utilisant vos propres clés de chiffrement de Google Cloud Key Management Service (KMS).
Avec CMK, Databricks chiffre toutes les données au repos by default à l'aide de clés gérées. Pour un contrôle granulaire, CMK vous permet de configurer une clé distincte gérée par le client pour des catalogues spécifiques. Pour refuser l'accès aux données, vous pouvez révoquer la clé dans Google Cloud KMS.
Avantages de CMK pour Unity Catalog
- Contrôle granulaire du chiffrement : gérez le chiffrement au niveau du catalogue, permettant à différents catalogues d’utiliser des clés de chiffrement différentes en fonction de la sensibilité des données ou des exigences de conformité.
- Protection multiclés : la CMK sécurise vos données contre l'accès au niveau de la couche de stockage. Les données ne peuvent être consultées que sur les workspaces autorisés, conformément aux politiques affinées de Unity Catalog.
- Conformité et audit : Satisfaire aux exigences réglementaires concernant les clés de chiffrement contrôlées par le client et maintenir les pistes d'audit d'accès et d'utilisation des clés.
- Révocation de clé : Révoquez l'accès à la CMK dans Google Cloud KMS pour conserver la pleine propriété de vos données.
- Gestion centralisée des clés : Gérez toutes les clés de chiffrement via Google Cloud KMS, conformément à vos pratiques de sécurité GCP existantes.
Fonctionnement de CMK pour Unity Catalog
CMK pour Unity Catalog sur GCP utilise des clés Google Cloud KMS, des comptes de service gérés par Databricks et des paramètres de chiffrement au niveau du catalogue pour appliquer le chiffrement contrôlé par le client. Les composants suivants sont essentiels à CMK pour Unity Catalog sur GCP :
-
Clés KMS Google Cloud : Vous créez et gérez les clés de chiffrement dans Google Cloud Key Management Service. Ces clés servent de clés de chiffrement racine pour les catalogues Unity Catalog.
-
Configurations CMK : Vous créez des configurations CMK dans la console de compte Databricks pour enregistrer vos clés Google Cloud KMS auprès de Databricks. Les configurations CMK sont des objets de niveau compte qui doivent être créés avant de pouvoir appliquer CMK à un catalogue. Lorsque vous créez une configuration CMK, Databricks provisionne automatiquement un compte de service dans le projet Databricks Google Cloud et lui accorde l'accès à votre clé KMS.
-
Comptes de service : Databricks crée un compte de service dans le compte Google Cloud Databricks qui est autorisé à accéder à votre clé KMS cloud. Ce compte de service a le format
db-cmk-{id}@databricks-<REGION_SUFFIX>.iam.gserviceaccount.com. Databricks accorde automatiquement au compte de service les autorisations IAM requises pour le chiffrement et le déchiffrement.- Databricks génère un compte de service unique et à privilège minimum pour chaque instance CMK afin de maintenir l'isolation de sécurité et d'empêcher le compte de service d'hériter de permissions inutiles.
-
Chiffrement au niveau du catalogue : vous configurez le chiffrement directement sur des catalogues individuels à l'aide de Catalog Explorer ou de l'API Unity Catalog. Lorsque vous créez ou mettez à jour un catalogue avec les paramètres CMK, Databricks chiffre toutes les données écrites dans ce catalogue à l'aide de votre clé gérée par le client. Ceci s'applique uniquement aux catalogues soutenus par un stockage default.
-
Application dynamique : Lorsque des données sont écrites dans un catalogue protégé par une clé CMK, Databricks utilise votre clé KMS pour chiffrer les données. Lorsque les données sont lues, Databricks demande le déchiffrement à Google Cloud KMS. Si vous révoquez l'accès de Databricks à la clé, le déchiffrement échoue et les données deviennent inaccessibles.
Limitations
- Vous ne pouvez configurer cette fonctionnalité qu'en utilisant la console de compte Databricks ou l'API REST. La prise en charge de Terraform n'est pas disponible.
- Cette fonctionnalité s'applique uniquement aux catalogues sauvegardés par le stockage default. Cela ne s'applique pas aux catalogues avec des emplacements de stockage externes.
Prérequis
Avant de configurer CMK pour Unity Catalog sur GCP, vérifiez que vous disposez des éléments suivants :
-
Autorisations d'administrateur de compte : vous devez être un administrateur de compte Databricks pour créer des configurations CMK dans la console du compte.
-
Autorisations IAM GCP : Vous avez besoin des autorisations IAM Google Cloud suivantes :
cloudkms.cryptoKeys.setIamPolicy- Nécessaire pour accorder l'accès au compte de service Databricks à votre clé KMScloudkms.cryptoKeys.getIamPolicy- Requis pour vérifier les autorisations du compte de service sur votre clé KMS
-
Clé Google Cloud KMS : Vous devez disposer d'une clé Cloud KMS existante dans votre compte Google Cloud. Suivez le guide de démarrage rapide de Google Cloud KMS pour créer une clé si nécessaire. Cette clé doit être active dans une région qui prend en charge votre Workspace Databricks. Copiez l'ID de ressource de votre clé KMS, qui a le format :
projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}. -
Autorisations Unity Catalog : pour créer ou mettre à jour des catalogues avec CMK, vous devez disposer des privilèges
CREATE CATALOGetUSE CATALOGdans Unity Catalog.
Configurer CMK pour Unity Catalog
Suivez ces étapes pour configurer les clés gérées par le client pour les catalogues Unity Catalog sur GCP.
Étape 1 : créer une configuration CMK dans la console du compte
**Autorisations requises :** Administrateur de compte
La création d'une configuration CMK enregistre votre clé Google Cloud KMS auprès de Databricks et provisionne un compte de service que Databricks utilise pour accéder à la clé.
-
Dans la console de compte Databricks, accédez à Sécurité > Clés de chiffrement .
-
Cliquez sur Ajouter une clé de chiffrement .
-
Configurez les paramètres de clé de chiffrement :
- Nom : Saisissez un nom descriptif pour votre configuration CMK, tel que
finance-catalog-cmkoupii-data-cmk. - Fournisseur de cloud : Sélectionnez Google Cloud Platform.
- Cas d'utilisation : choisissez entre Services gérés ou Services gérés et stockage de l'Workspace .
- ID de ressource de clé : saisissez votre ID de ressource de clé KMS Cloud au format
projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}.
Lorsque vous cliquez sur **Ajouter**, Databricks crée un nouveau compte de service dans le compte Databricks Google Cloud et lui accorde automatiquement
Cloud KMS CryptoKey Encrypter/Decrypterl'autorisation sur votre clé KMS. - Nom : Saisissez un nom descriptif pour votre configuration CMK, tel que
-
Cliquez sur Ajouter pour créer la configuration CMK.
-
Copiez l'ID de configuration CMK à partir de la console du compte. Vous utilisez cet ID lorsque vous créez ou mettez à jour des catalogues.
Étape 2 : Vérifier l'autorisation du compte de service
Après avoir créé la configuration CMK, vérifiez que le compte de service Databricks dispose des autorisations correctes sur votre clé KMS Cloud.
-
Récupérer l'ID du compte de service en appelant l'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>Remplacez les valeurs suivantes :
<DATABRICKS_TOKEN>: votre jeton d'accès personnel d'administrateur de compte Databricks<ACCOUNT_ID>: Votre ID de compte Databricks<CUSTOMER_MANAGED_KEY_ID>: L'ID de configuration CMK de l'étape 1
La réponse inclut le compte de service au format
db-cmk-{id}@databricks-<REGION_SUFFIX>.iam.gserviceaccount.com. La chaîne du compte de service est générée dynamiquement et doit être copiée exactement de la réponse de l'API pour vérification. -
Dans la console Google Cloud, accédez à votre clé cloud KMS.
-
Cliquez sur l'onglet tab .
-
Vérifiez que le compte de service de l'étape 1 est répertorié avec le rôle
Cloud KMS CryptoKey Encrypter/Decrypter.
Étape 3 : créer un nouveau catalogue avec CMK
Autorisations requises : CREATE CATALOG dans Unity Catalog
Pour créer un nouveau catalogue avec protection CMK, utilisez l’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>"
}
}'
Remplacez les valeurs suivantes :
<workspace_url>: URL de votre workspace Databricks (par exemple,https://dbc-1234567-a8b9.cloud.databricks.com)<api_token>: Votre jeton d'accès personnel Databricks<catalog_name>: le nom de votre nouveau catalogue (par exemple,finance_dataoucustomer_pii)<cmk-id>: L'ID de configuration CMK de l'étape 1
Étape 4 : Mettre à jour un catalogue existant avec CMK
Autorisations requises : MANAGE sur le catalogue ou la propriété du catalogue
Pour ajouter ou modifier la protection CMK sur un catalogue existant qui utilise le stockage default :
- Dans l'Explorateur de catalogues, cliquez sur le nom du catalogue.
- Cliquez sur l'onglet tab .
- Sous Avancé , cliquez sur Paramètres de chiffrement .
- Dans la boîte de dialogue, sélectionnez votre clé gérée par le client.
- Cliquez sur Enregistrer .
Vous pouvez modifier la clé associée à un catalogue à tout moment en répétant ces étapes. Vous ne pouvez pas désactiver CMK une fois qu'il est activé sur un catalogue.
Lorsque vous ajoutez CMK à un catalogue existant, Databricks chiffre uniquement les nouvelles données écrites dans le catalogue avec votre clé gérée par le client. Les clés gérées par Databricks continuent de chiffrer les données existantes. Pour chiffrer toutes les données avec votre clé gérée par le client, vous devez réécrire les données existantes.
Vérifier la configuration CMK
Pour vérifier que votre catalogue est configuré avec CMK, utilisez l'API Unity Catalog pour obtenir les détails du catalogue :
curl -X GET \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
"https://<workspace_url>/api/2.1/unity-catalog/catalogs/<catalog_name>"
La réponse inclut le champ encryption_settings pour les catalogues configurés avec CMK :
{
"name": "<catalog_name>",
"storage_mode": "DEFAULT_STORAGE",
"encryption_settings": {
"customer_managed_key_id": "<cmk-id>"
}
}
Révoquer l'accès aux données chiffrées
Pour refuser l’accès de Databricks aux données chiffrées avec votre clé gérée par le client, désactivez votre clé dans Google Cloud KMS :
- Dans la console Google Cloud, accédez à votre clé cloud KMS.
- Désactivez la version de la clé.
Après avoir désactivé la clé, Databricks ne peut plus déchiffrer les données des catalogues à l'aide de cette configuration CMK. Toute tentative de lecture de données à partir de ces catalogues échoue avec une erreur de déchiffrement.
Il peut y avoir un délai entre le moment où vous désactivez la clé et le moment où l'accès aux données est refusé.
Pour restaurer l'accès, réactivez la version de la clé dans Google Cloud KMS.