Aller au contenu principal

Configurer la livraison des logs d'audit

remarque

Databricks recommande d'utiliser la table système du Log d'audit (system.access.audit) pour accéder aux Logs d'audit de votre compte. Consultez la référence de la table système des logs d'audit. Databricks vous décourage fortement de déplacer ces données en dehors de la plateforme car cela peut exposer des données sensibles et compromettre votre déploiement. En raison de la nature du contenu des logs d'audit, il vous est rappelé que vous êtes responsable de maintenir la sécurité et de prévenir l'utilisation abusive de tout log d'audit exporté.

remarque

Cette fonctionnalité nécessite le forfait Premium.

Cet article décrit comment configurer la livraison des Logs d'audit.

Databricks donne accès aux logs d’audit des activités effectuées par les utilisateurs Databricks, permettant à votre entreprise de surveiller les modèles d’utilisation détaillés de Databricks. Pour plus de détails sur les événements enregistrés, consultez la référence des Audit log.

En tant que propriétaire ou administrateur de compte Databricks, vous pouvez configurer la livraison des journaux d'audit au format de fichier JSON vers un compartiment de stockage Google Cloud Storage (GCS), où vous pouvez rendre les données disponibles pour l'analyse d'utilisation. Databricks livre un fichier JSON distinct pour chaque Workspace de votre compte et un fichier distinct pour les événements au niveau du compte.

Configurez la livraison des Logs d'audit

remarque

Si votre projet ou organisation GCP utilise VPC Service Controls, assurez-vous que tous les identifiants de projet des Logs d'audit ont leur trafic entrant autorisé, sinon les Logs ne pourront pas être livrés. Consultez Activer Private Service Connect pour votre Workspace

Pour configurer la livraison des logs d'audit, vous devez configurer un bucket GCS, donner à Databricks l'accès au bucket, puis utiliser la console de compte pour définir une *configuration de livraison des logs* qui indique à Databricks où livrer vos logs.

Vous ne pouvez pas modifier une configuration de livraison des logs après sa création, mais vous pouvez désactiver temporairement ou définitivement une configuration de livraison des logs à l'aide de la console de compte. Pour les limites de configuration, consultez les limitations de livraison des Logs d'audit.

Vous pouvez utiliser la Google Cloud Console ou la Google CLI pour créer un compartiment Google Cloud Storage dans votre compte GCP. Les instructions suivantes supposent que vous utiliserez la Google Cloud Console.

Créez et configurez votre compartiment GCS

  1. Utilisez la console Google Cloud pour créer un compartiment Google Cloud Storage dans votre compte GCP.

    • Pour la région, choisissez multi-région .
    • Pour la classe de stockage, choisissez Standard pour une utilisation typique. Consultez l'article Google sur les classes de stockage.
    • Pour l'accès de contrôle, choisissez Uniform.
  2. Cliquez sur le Permissions tab de votre nouveau compartiment.

  3. Cliquez sur ADD , puis entrez le compte de service log-delivery@databricks-prod-master.iam.gserviceaccount.com en tant que New member du compartiment de stockage. Accordez au compte de service le rôle Storage Admin sous Cloud Storage, sans spécifier de condition d'accès.

    Ceci est nécessaire pour que Databricks puisse écrire et répertorier les fichiers de Logs livrés pour ce compartiment. Vous ne pouvez pas accorder d'autorisation à un seul sous-répertoire de compartiment. Consultez l'article Google sur le contrôle d'accès, qui recommande de créer plusieurs compartiments pour des autorisations d'accès granulaires.

    Autorisation de compartiment de livraison des Logs

Créer une configuration de livraison de logs

Une configuration de livraison de Logs définit le chemin d'accès à l'emplacement du compartiment GCS où vous souhaitez que Databricks livre vos Logs d'audit.

  1. En tant qu’administrateur de compte, connectez-vous à la console de compte Databricks.

  2. Cliquez sur Paramètres .

  3. Cliquez sur Livraison des logs .

    Configuration de livraison des Logs

  4. Cliquez sur **Ajouter la livraison des Logs**.

  5. Dans Nom de la configuration de livraison des Logs , ajoutez un nom unique au sein de votre compte Databricks. Les espaces sont autorisés.

  6. Dans GCS bucket name , spécifiez le nom de votre GCS bucket.

  7. Dans Préfixe du chemin de livraison , spécifiez éventuellement un préfixe à utiliser dans le chemin. Voir Emplacement.

    Le préfixe peut inclure des caractères de barre oblique, mais ne peut pas start par une barre oblique. Sinon, le préfixe peut inclure n'importe quel caractère de chemin d'objet GCS valide. Notez que les caractères d'espace ne sont pas autorisés.

  8. Cliquez sur **Ajouter la livraison des Logs**.

Désactiver ou activer une configuration de livraison de logs

Vous ne pouvez pas modifier ou supprimer une configuration de livraison de log après la création, mais vous pouvez désactiver temporairement ou définitivement une configuration de livraison de log à l'aide de la console de compte. Pour les limites de configuration, consultez les limitations de livraison des Logs d'audit.

Pour désactiver une configuration de livraison de Logs :

  1. En tant qu’administrateur de compte, connectez-vous à la console de compte Databricks.
  2. Cliquez sur Paramètres .
  3. Cliquez sur Livraison des logs .
  4. À côté de la configuration de livraison des Logs que vous souhaitez désactiver, cliquez sur le menu kebab Icône du menu kebab. à droite du nom.
    • Pour le désactiver, sélectionnez Désactiver la livraison des Logs .
    • Pour l'activer, sélectionnez Activer la livraison des Logs .

Latence

  • Jusqu'à une heure après la configuration de la livraison des Logs, la livraison d'audit commence et vous pouvez accéder aux fichiers JSON.
  • Une fois que la livraison des Logs d'audit commence, les événements auditables sont généralement enregistrés dans l'heure qui suit. Les nouveaux fichiers JSON peuvent potentiellement remplacer les fichiers existants pour chaque Workspace. Le remplacement garantit une sémantique exactement une fois sans nécessiter d'accès en lecture ou en suppression à votre compte.
  • L'activation ou la désactivation d'une configuration de livraison des logs peut prendre jusqu'à une heure pour prendre effet.

Emplacement

L'emplacement de livraison est :

gs://<bucket-name>/<delivery-path-prefix>/workspaceId=<workspaceId>/date=<yyyy-mm-dd>/auditlogs_<internal-id>.json

Si le préfixe de chemin de livraison facultatif est omis, le chemin de livraison n’inclut pas <delivery-path-prefix>/.

Les événements d'audit au niveau du compte qui ne sont associés à aucun Workspace unique sont livrés à la partition workspaceId=0.

Limitations de la livraison des Audit Logs

La création de la livraison des Logs de la console de compte ne prend en charge que les Logs au niveau du compte. Pour créer une configuration au niveau du Workspace, vous devez utiliser l'API de livraison des Logs.

Il y a une limite de deux configurations de livraison des Logs d'audit activées au niveau du compte. Vous pouvez également créer et activer jusqu'à deux configurations au niveau du workspace par workspace, de sorte que le même ID de workspace ne puisse apparaître dans pas plus de deux configurations de livraison.

Vous ne pouvez pas supprimer une configuration de livraison de Logs, vous pouvez seulement la désactiver. Vous pouvez réactiver une configuration désactivée, mais la requête échoue si elle dépasse les limites décrites ci-dessus.

Pour plus d'informations sur l'analyse des logs d'audit à l'aide de Databricks, consultez la référence des tables système de logs d'audit.

Considérations relatives au schéma des Logs d'audit

  • Si les actions prennent beaucoup de temps, la requête et la réponse sont enregistrées séparément, mais la paire requête/réponse a le même requestId.
  • Les actions automatisées, telles que le redimensionnement d'un cluster en raison de la mise à l'échelle automatique ou le lancement d'un job en raison de la planification, sont effectuées par l'utilisateur System-User.
  • Le champ requestParams peut être tronqué. Si la taille de sa représentation JSON dépasse 100 Ko, les valeurs sont tronquées et la chaîne ... truncated est ajoutée aux entrées tronquées. Dans de rares cas où une carte tronquée dépasse encore 100 Ko, une seule clé TRUNCATED avec une valeur vide est présente à la place.

Exemple de schéma de Logs d'audit

Les Audit Logs distribués au stockage cloud génèrent des événements au format JSON. Les propriétés serviceName et actionName identifient l'événement. La convention de nommage suit l'API REST Databricks.

L'exemple suivant concerne un événement createMetastoreAssignment.

JSON
{
"version": "2.0",
"auditLevel": "ACCOUNT_LEVEL",
"timestamp": 1629775584891,
"orgId": "3049056262456431186970",
"shardName": "test-shard",
"accountId": "77636e6d-ac57-484f-9302-f7922285b9a5",
"sourceIPAddress": "10.2.91.100",
"userAgent": "curl/7.64.1",
"sessionId": "f836a03a-d360-4792-b081-baba525324312",
"userIdentity": {
"email": "someone@example.com",
"subjectName": null
},
"serviceName": "unityCatalog",
"actionName": "createMetastoreAssignment",
"requestId": "ServiceMain-da7fa5878f40002",
"requestParams": {
"workspace_id": "30490590956351435170",
"metastore_id": "abc123456-8398-4c25-91bb-b000b08739c7",
"default_catalog_name": "main"
},
"response": {
"statusCode": 200,
"errorMessage": null,
"result": null
},
"MAX_LOG_MESSAGE_LENGTH": 16384
}