Passer au contenu principal
Utilisez les journaux d’audit W&B pour suivre l’activité des utilisateurs au sein de votre organisation et répondre à vos exigences de gouvernance d’entreprise. Les journaux d’audit sont disponibles au format JSON. Voir Audit log schema. La méthode d’accès aux journaux d’audit dépend du type de déploiement de votre plateforme W&B :
Type de déploiement de la plateforme W&BMécanisme d’accès aux journaux d’audit
Cloud dédié
  • BYOB au niveau de l’instance : synchronisés vers le bucket au niveau de l’instance (BYOB) toutes les 10 minutes. Également disponibles via l’API.
  • Stockage par défaut au niveau de l’instance : disponible uniquement via l’API.
Cloud mutualiséDisponible uniquement pour les plans Enterprise. Disponible uniquement via l’API.
AutogéréSynchronisés vers le bucket au niveau de l’instance toutes les 10 minutes. Également disponibles via l’API.
Après avoir récupéré les journaux d’audit, vous pouvez les analyser à l’aide d’outils tels que Pandas, Amazon Redshift, Google BigQuery ou Microsoft Fabric. Certains outils d’analyse des journaux d’audit ne prennent pas en charge le format JSON ; consultez la documentation de votre outil d’analyse pour connaître les recommandations et les exigences relatives à la transformation des journaux d’audit au format JSON avant l’analyse. Pour plus de détails sur le format des journaux, voir Audit log schema et Actions.

Conservation des journaux d’audit

  • Si vous devez conserver les journaux d’audit pendant une durée déterminée, W&B recommande de les transférer régulièrement vers un stockage à long terme, soit à l’aide de buckets de stockage, soit via l’API Audit Logging.
  • Si vous êtes soumis au Health Insurance Portability and Accountability Act of 1996 (HIPAA), les journaux d’audit doivent être conservés pendant au moins 6 ans dans un environnement où ils ne peuvent être ni supprimés ni modifiés par un acteur interne ou externe avant la fin de la période de conservation obligatoire. Pour les instances Cloud dédié conformes à HIPAA avec BYOB, vous devez configurer des garde-fous pour votre stockage géré, y compris tout stockage de conservation à long terme.

Audit log schema

Ce tableau présente toutes les clés susceptibles d’apparaître dans une entrée du journal d’audit, par ordre alphabétique. Selon l’action et le contexte, une entrée de journal donnée peut ne contenir qu’un sous-ensemble des champs possibles.
CléDéfinition
actionL’action de l’événement.
actor_emailL’adresse e-mail de l’utilisateur à l’origine de l’action, le cas échéant.
actor_ipL’adresse IP de l’utilisateur à l’origine de l’action.
actor_user_idL’ID de l’utilisateur connecté ayant effectué l’action, le cas échéant.
artifact_assetL’ID de l’artifact associé à l’action, le cas échéant.
artifact_digestLe digest de l’artifact associé à l’action, le cas échéant.
artifact_qualified_nameLe nom complet de l’artifact associé à l’action, le cas échéant.
artifact_sequence_assetL’ID de la séquence d’artifact associée à l’action, le cas échéant.
cli_versionLa version du SDK Python à l’origine de l’action, le cas échéant.
entity_assetL’ID de l’entité ou de l’équipe associée à l’action, le cas échéant.
entity_nameLe nom de l’entité ou de l’équipe associée à l’action, le cas échéant.
project_assetLe projet associé à l’action, le cas échéant.
project_nameLe nom du projet associé à l’action, le cas échéant.
report_assetL’ID du rapport associé à l’action, le cas échéant.
report_nameLe nom du rapport associé à l’action, le cas échéant.
response_codeLe code de réponse HTTP de l’action, le cas échéant.
timestampL’heure de l’événement au format RFC3339. Par exemple, 2023-01-23T12:34:56Z représente le 23 janvier 2023 à 12:34:56 UTC.
user_assetLa ressource utilisateur concernée par l’action (et non l’utilisateur qui effectue l’action), le cas échéant.
user_emailL’adresse e-mail de l’utilisateur concerné par l’action (et non celle de l’utilisateur qui effectue l’action), le cas échéant.

Informations personnelles identifiables (PII)

Les informations personnelles identifiables (PII), telles que les adresses e-mail et les noms des Projects, des équipes et des rapports, sont disponibles uniquement via l’option API endpoint.
  • Pour Autogéré et Cloud dédié, un administrateur d’organisation peut exclure les PII lors de la récupération des journaux d’audit.
  • Pour Cloud mutualisé, l’API endpoint renvoie toujours les champs pertinents pour les journaux d’audit, y compris les PII. Cela n’est pas configurable.

Avant de commencer

  1. Les administrateurs de l’organisation peuvent récupérer les journaux d’audit. Si vous recevez une erreur 403, assurez-vous que vous ou votre compte de service disposez des autorisations nécessaires.
  2. Cloud mutualisé : Si vous êtes membre de plusieurs organisations en Cloud mutualisé, vous devez configurer l’organisation API par défaut, qui détermine vers quelle organisation sont acheminés les appels à l’API des journaux d’audit. Sinon, vous recevrez l’erreur suivante :
    user is associated with multiple organizations but no valid org ID found in user info
    
    Pour définir votre organisation API par défaut :
    1. Cliquez sur votre image de profil, puis sur Paramètres utilisateur.
    2. Pour l’organisation API par défaut, sélectionnez une organisation.
    Cela ne s’applique pas à un compte de service, qui ne peut être membre que d’une seule organisation en Cloud mutualisé.

Récupérer les journaux d’audit

Pour récupérer les journaux d’audit :
  1. Déterminez l’API endpoint approprié pour votre instance : Dans les étapes suivantes, remplacez <API-endpoint> par votre API endpoint.
  2. (Facultatif) Construisez les paramètres de requête à ajouter à l’endpoint. Dans les étapes suivantes, remplacez <parameters> par la chaîne obtenue.
    • anonymize : si l’URL inclut le paramètre anonymize=true, supprimez toute PII. Sinon, la PII est incluse. Référez-vous à Exclure la PII lors de la récupération des journaux d’audit. Non pris en charge pour le Cloud mutualisé, où tous les champs sont inclus, y compris la PII.
    • Configurez la plage de dates des journaux à récupérer à l’aide d’une combinaison de numdays et startDate. Chaque paramètre est facultatif, et ils interagissent entre eux.
      • Si aucun des deux paramètres n’est inclus, seuls les journaux du jour sont récupérés.
      • numDays : entier indiquant le nombre de jours à remonter à partir de startDate pour récupérer les journaux. S’il est omis ou défini sur 0, les journaux ne sont récupérés que pour startDate. Sur Multi-tenant Cloud, vous pouvez récupérer au maximum 7 jours de journaux d’audit, même si vous définissez numDays sur une valeur supérieure.
      • startDate : pris en charge sur Multi-tenant Cloud uniquement. Contrôle les journaux les plus récents à récupérer, au format startDate=YYYY-MM-DD. S’il est omis ou explicitement défini sur la date du jour, les journaux sont récupérés à partir d’aujourd’hui sur numDays jours.
  3. Construisez l’URL complète de l’endpoint au format <API-endpoint>?<parameters>.
  4. Exécutez une requête HTTP GET sur l’API endpoint complète à l’aide d’un navigateur web ou d’un outil comme Postman, HTTPie, ou cURL.
La réponse de l’API contient des objets JSON séparés par des sauts de ligne. Les objets incluent les champs décrits dans le schéma, comme lorsque les journaux d’audit sont synchronisés avec un bucket au niveau de l’instance. Dans ce cas, les journaux d’audit se trouvent dans le répertoire /wandb-audit-logs de votre bucket.

Utiliser l’authentification de base

Pour utiliser l’authentification de base avec votre clé API afin d’accéder à l’API des journaux d’audit, définissez l’en-tête Authorization de la requête HTTP sur la chaîne Basic, suivie d’un espace, puis de la chaîne encodée en base 64 au format username:API-KEY. En d’autres termes, remplacez le nom d’utilisateur et la clé API par vos valeurs, séparées par le caractère :, puis encodez le résultat en base 64. Par exemple, pour vous authentifier en tant que demo:p@55w0rd, l’en-tête doit être Authorization: Basic ZGVtbzpwQDU1dzByZA==.

Exclure les PII lors de la récupération des journaux d’audit

Pour Autogéré et Cloud dédié, un administrateur d’organisation ou d’instance W&B peut exclure les PII lors de la récupération des journaux d’audit. Pour Cloud mutualisé, l’API endpoint renvoie toujours les champs pertinents des journaux d’audit, y compris les PII. Ce comportement n’est pas configurable. Pour exclure les PII, passez le paramètre d’URL anonymize=true. Par exemple, si l’URL de votre instance W&B est https://mycompany.wandb.io et que vous souhaitez obtenir les journaux d’audit de l’activité des utilisateurs sur la dernière semaine tout en excluant les PII, utilisez un API endpoint comme :
https://mycompany.wandb.io/admin/audit_logs?anonymize=true&<additional-parameters>.

Actions

Ce tableau décrit les actions que W&B peut enregistrer, classées par ordre alphabétique.
ActionDéfinition
artifact:createArtifact est créé.
artifact:delete Artifact est supprimé.
artifact:readArtifact est lu.
project:deleteLe projet est supprimé.
project:readLe projet est lu.
report:readLe rapport est lu. 1
run:delete_manyUn lot de runs est supprimé.
run:deleteLe run est supprimé.
run:stopLe run est arrêté.
run:undelete_manyUn lot de runs est restauré depuis la corbeille.
run:update_manyUn lot de runs est mis à jour.
run:updateLe run est mis à jour.
sweep:create_agentL’agent de balayage est créé.
team:create_service_accountUn compte de service est créé pour l’équipe.
team:createL’équipe est créée.
team:deleteL’équipe est supprimée.
team:invite_userL’utilisateur est invité à rejoindre l’équipe.
team:uninviteL’utilisateur ou le compte de service est retiré de l’équipe.
user:create_api_keyUne clé API est créée pour l’utilisateur ou le compte de service. 1
user:createL’utilisateur est créé. 1
user:deactivateL’utilisateur est désactivé. 1
user:delete_api_keyLa clé API de l’utilisateur ou du compte de service est supprimée. 1
user:initiate_loginL’utilisateur lance la connexion. 1
user:loginL’utilisateur se connecte. 1
user:logoutL’utilisateur se déconnecte. 1
user:permanently_deleteL’utilisateur est supprimé définitivement. 1
user:reactivateL’utilisateur est réactivé. 1
user:readLe profil de l’utilisateur est lu. 1
user:updateL’utilisateur est mis à jour. 1
1: Sur Cloud mutualisé, les journaux d’audit ne sont pas collectés pour :
  • Les projets Open ou Public.
  • L’action report:read.
  • Les actions Users qui ne sont pas liées à une organisation spécifique.