Journalisation pour HSM managé

Une fois que vous avez créé un ou plusieurs HSM managés, vous voulez probablement superviser qui accède à ces derniers, par quel moyen et quand. Pour ce faire, vous pouvez activer la journalisation, ce qui permet d’enregistrer les informations dans un compte de stockage Azure que vous fournissez. Un conteneur nommé insights-logs-auditevent est automatiquement créé pour le compte de stockage spécifié. Vous pouvez utiliser ce même compte de stockage pour collecter les journaux de plusieurs HSM managés.

Vous pouvez accéder aux informations de journalisation 10 minutes (au maximum) après l’opération sur le HSM managé. Dans la plupart des cas, ce sera plus rapide. C’est à vous de gérer vos journaux d’activité dans votre compte de stockage :

  • Utilisez les méthodes de contrôle d’accès Azure standard pour sécuriser vos journaux en limitant qui y a accès.
  • Supprimez les journaux d’activité que vous ne souhaitez plus conserver dans votre compte de stockage.

Utilisez ce tutoriel pour démarrer avec la journalisation pour HSM managé. Vous allez créer un compte de stockage, activer la journalisation et interpréter les informations de journal collectées.

Notes

Ce tutoriel n’inclut pas d’instructions pour créer des HSM managés ni des clés. Cet article fournit des instructions Azure CLI pour la mise à jour de la journalisation des diagnostics.

Prérequis

Pour effectuer les étapes de cet article, vous devez disposer des éléments suivants :

Azure Cloud Shell

Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.

Pour démarrer Azure Cloud Shell :

Option Exemple/Lien
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. Capture d’écran présentant un exemple d’essai pour Azure Cloud Shell.
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. Bouton permettant de lancer Azure Cloud Shell.
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. Capture d’écran présentant le bouton Cloud Shell dans le portail Azure.

Pour utiliser Azure Cloud Shell :

  1. Démarrez Cloud Shell.

  2. Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.

  3. Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.

  4. Sélectionnez Entrer pour exécuter le code ou la commande.

Connectez-vous à un abonnement Azure

La première étape de la configuration de la journalisation de clés consiste à faire pointer Azure CLI vers le HSM managé à journaliser.

az login

Pour plus d’informations sur les options de connexion par le biais de l’interface CLI, consultez Se connecter avec Azure CLI

Vous devrez peut-être spécifier l’abonnement que vous avez utilisé pour créer votre HSM managé. Entrez la commande ci-après pour afficher les abonnements de votre compte :

Identifier le HSM managé et le compte de stockage

hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name ContosoMHSMLogs --query id -o tsv)

Activation de la journalisation

Pour activer la journalisation du HSM managé, utilisez la commande az monitor diagnostic-settings create ainsi que les variables que nous avons créées pour le nouveau compte de stockage et le HSM managé. Nous allons également définir l’indicateur -Enabled sur $true et la catégorie sur AuditEvent (la seule catégorie pour la journalisation pour HSM managé) :

Cette sortie confirme que la journalisation est à présent activée pour votre HSM managé et qu’elle enregistrera les informations dans votre compte de stockage.

Si vous le souhaitez, vous pouvez définir une stratégie de rétention pour vos journaux, par exemple la suppression automatique des anciens journaux. Par exemple, définissez une stratégie de rétention en paramétrant l’indicateur -RetentionEnabled sur la valeur $true et le paramètre -RetentionInDays sur la valeur 90 afin que les journaux antérieurs à 90 jours soient automatiquement supprimés.

az monitor diagnostic-settings create --name ContosoMHSM-Diagnostics --resource $hsmresource --logs '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

Éléments consignés :

  • Toutes les requêtes d’API REST authentifiées, ce qui inclut les requêtes ayant échoué suite à des autorisations d’accès, des erreurs système, des blocages de pare-feu ou des requêtes incorrectes.
  • Les opérations de plan managées sur la ressource HSM managé elle-même, notamment la création, la suppression et la mise à jour d’attributs comme des balises.
  • Opérations liées au domaine de sécurité, telles que l’initialisation et le téléchargement, l’initialisation de la récupération, le chargement
  • Opérations de sauvegarde complète du HSM, de restauration et de restauration sélective
  • Opérations de gestion des rôles comme créer/afficher/supprimer des attributions de rôles et créer/afficher/supprimer des définitions de rôle personnalisées
  • Opérations sur les clés, notamment :
    • Création, modification ou suppression des clés.
    • Signature, vérification, chiffrement, déchiffrement, enveloppement et désenveloppement de clés, listage de clés.
    • Sauvegarde de clés, restauration, vidage
    • Version de clé
  • Chemins d’accès non valides qui aboutissent à une réponse 404.

Accéder à vos journaux d’activité

Les journaux pour HSM managé sont stockés dans le conteneur insights-logs-auditevent du compte de stockage que vous avez fourni. Pour visualiser les journaux, vous devez télécharger des objets blob. Pour plus d’informations sur le stockage Azure, consultez Créer, télécharger et lister des objets blob avec Azure CLI.

Les objets blob individuels sont stockés sous forme de texte, au format JSON. Examinons un exemple d’entrée du journal. L’exemple ci-dessous illustre l’entrée de journal quand une demande de création d’une sauvegarde complète est envoyée au HSM managé.

[
  {
    "TenantId": "{tenant-id}",
    "time": "2020-08-31T19:52:39.763Z",
    "resourceId": "/SUBSCRIPTIONS/{subscription-id}/RESOURCEGROUPS/CONTOSORESOURCEGROUP/PROVIDERS/MICROSOFT.KEYVAULT/MANAGEDHSMS/CONTOSOMHSM",
    "operationName": "BackupCreate",
    "operationVersion": "7.0",
    "category": "AuditEvent",
    "resultType": "Success",
    "properties": {
        "PoolType": "M-HSM",
        "sku_Family": "B",
        "sku_Name": "Standard_B1"
    },
    "durationMs": 488,
    "callerIpAddress": "X.X.X.X",
    "identity": "{\"claim\":{\"appid\":\"{application-id}\",\"http_schemas_microsoft_com_identity\":{\"claims\":{\"objectidentifier\":\"{object-id}\"}},\"http_schemas_xmlsoap_org_ws_2005_05_identity\":{\"claims\":{\"upn\":\"admin@contoso.com\"}}}}",
    "clientInfo": "azsdk-python-core/1.7.0 Python/3.8.2 (Linux-4.19.84-microsoft-standard-x86_64-with-glibc2.29) azsdk-python-azure-keyvault/7.2",
    "correlationId": "8806614c-ebc3-11ea-9e9b-00155db778ad",
    "subnetId": "(unknown)",
    "httpStatusCode": 202,
    "PoolName": "mhsmdemo",
    "requestUri": "https://ContosoMHSM.managedhsm.azure.net/backup",
    "resourceGroup": "ContosoResourceGroup",
    "resourceProvider": "MICROSOFT.KEYVAULT",
    "resource": "ContosoMHSM",
    "resourceType": "managedHSMs"
  }
]

Étapes suivantes