Surveiller l'utilisation des comptes de service et des clés

Cette page explique comment utiliser Cloud Monitoring pour vérifier à quel moment vos comptes de service et vos clés de compte de service ont été utilisés. Le suivi de ces informations peut vous aider à identifier les comptes de service et les clés dont vous ne vous servez plus.

Ces métriques affichent les comptes de service et les clés de compte de service qui permettent d'appeler les API Google, y compris celles ne faisant pas partie de Google Cloud. Les métriques incluent les appels d'API ayant réussi et échoué. Par exemple, si un appel d'API échoue parce que l'appelant n'est pas autorisé à appeler cette API, ou si la requête fait référence à une ressource qui n'existe pas, le compte de service ou la clé utilisé pour cet appel d'API s'affiche dans les métriques.

Monitoring conserve les métriques sur le compte de service pendant une durée limitée. Si vous devez accéder à des données pendant une période plus longue, vous pouvez exporter régulièrement les résultats vers BigQuery. Pour en savoir plus, consultez la page Exporter des métriques Monitoring dans la documentation sur les solutions.

Avant de commencer

Pour utiliser Monitoring dans votre projet, vous devez ajouter votre projet à un espace de travail Monitoring. Pour ce faire, vous pouvez créer un espace de travail ou ajouter votre projet à un espace de travail existant.

Afficher les métriques d'utilisation

Les métriques d'utilisation sont généralement disponibles quelques minutes après que vous ayez utilisé un compte de service ou une clé de compte de service.

Pour afficher les métriques d'utilisation des comptes de service et des clés de compte de service, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Explorateur de métriques.

    Accéder à la page Explorateur de métriques

  2. Dans le champ Find resource type and metric (Rechercher un type de ressource et une métrique), définissez le type de ressource sur IAM Service accounts (Comptes de service IAM) et la métrique sur l'une des valeurs suivantes :
    • Pour les métriques d'utilisation des comptes de service, sélectionnez Authentication events (Événements d'authentification).
    • Pour les métriques d'utilisation des clés de compte de service, sélectionnez Key Authentication Events (Événements d'authentification par clé).
  3. Ajustez les paramètres du graphique :
    • Dans la liste des intervalles au-dessus du graphique, sélectionnez l'intervalle de temps que vous souhaitez afficher. Vous pouvez sélectionner l'un des intervalles prédéfinis, ou définir un intervalle personnalisé en cliquant sur Personnalisé, puis en sélectionnant une heure de début et une heure de fin.
    • Sélectionnez le type de tracé Ligne ou Barres empilées.

Ces métriques indiquent l'utilisation de chaque compte de service ou clé de compte de service au cours de l'intervalle sélectionné.

REST

La méthode timeSeries.list de l'API Cloud Monitoring vous permet d'accéder aux métriques d'utilisation par programmation.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet Google Cloud.
  • metric-type : type de métrique à vérifier. Utilisez l'une des valeurs suivantes :
    • Pour les métriques d'utilisation des comptes de service, utilisez iam.googleapis.com%2Fservice_account%2Fauthn_events_count.
    • Pour les métriques d'utilisation des clés de compte de service, utilisez iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count.
  • end-time : fin de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Exemple : 2020-06-12T00%3A00%3A00.00Z.
  • start-time : début de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Par exemple, 2020-04-12T00%3A00%3A00.00Z.

Méthode HTTP et URL :

GET https://monitoring.googleapis.com/v3/projects/project-id/timeSeries?filter=metric.type%3D%22metric-type%22&interval.endTime=end-time&interval.startTime=start-time

Pour envoyer votre requête, développez l'une des options suivantes :

Pour en savoir plus sur la lecture des métriques d'utilisation par programmation, consultez la page Lire les données de métrique dans la documentation de Monitoring.

Identifier les comptes de service et les clés inutilisés

Les métriques d'utilisation des comptes de service et des clés de compte de service peuvent vous aider à identifier les comptes de service et les clés de compte de service dont vous ne vous servez plus. Nous vous recommandons de désactiver ou de supprimer ces clés et comptes de service, car ils représentent un risque de sécurité inutile.

Rechercher l'utilisation récente d'un seul compte de service

Pour rechercher quand un compte de service a été utilisé pour la dernière fois, procédez comme suit :

Console

  1. Recherchez et copiez l'ID numérique unique du compte de service :

    1. Dans Cloud Console, accédez à la page Comptes de service.

      Accéder à la page Comptes de service

    2. Sélectionnez le projet contenant votre compte de service.

    3. Cliquez sur l'adresse e-mail de votre compte de service.

    4. Dans le champ ID unique, copiez l'ID numérique unique du compte de service.

  2. Dans Cloud Console, accédez à la page Explorateur de métriques.

    Accéder à la page Explorateur de métriques

  3. Dans le champ Find resource type and metric (Rechercher un type de ressource et une métrique), définissez le type de ressource sur IAM Service accounts (Comptes de service IAM) et la métrique sur Authentication events (Événements d'authentification).

  4. Dans le champ Filtre, sélectionnez unique_id et collez l'ID numérique unique du compte de service.

  5. Pour faciliter la lecture du graphique, sélectionnez le type de tracé Ligne ou Barres empilées.

L'événement d'authentification le plus récent sur le graphique indique quand le compte de service a été utilisé pour la dernière fois.

REST

Lorsqu'elle est utilisée avec des filtres spécifiques, la méthode timeSeries.list de l'API Cloud Monitoring vous permet d'obtenir les métriques d'utilisation d'un seul compte de service. Vous pouvez ensuite déterminer la date de la dernière utilisation du compte à l'aide de ces métriques.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet Google Cloud.
  • service-account-id : ID numérique unique de votre compte de service. Pour rechercher l'ID numérique unique de votre compte de service, procédez comme suit :
    1. Dans Cloud Console, accédez à la page Comptes de service.

      Accéder à la page Comptes de service
    2. Cliquez sur l'adresse e-mail de votre compte de service. L'ID numérique unique du compte de service correspond à la valeur du champ ID unique.
  • end-time : fin de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Exemple : 2020-06-12T00%3A00%3A00.00Z.
  • start-time : début de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Par exemple, 2020-04-12T00%3A00%3A00.00Z.

Méthode HTTP et URL :

GET https://monitoring.googleapis.com/v3/projects/project-id/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fauthn_events_count%22%20AND%20resource.labels.unique_id%3D%22service-account-id%22&interval.endTime=end-time&interval.startTime=start-time

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse contient un objet timeSeries qui inclut tous les événements d'authentification récents du compte de service spécifié. L'objet timeSeries permet de déterminer la date de la dernière utilisation du compte de service.

Rechercher l'utilisation récente d'une seule clé de compte de service

Pour rechercher quand une clé de compte de service a été utilisée pour la dernière fois, recherchez et copiez son ID unique, puis utilisez cet ID pour rechercher les métriques d'utilisation de la clé.

Si vous disposez d'un fichier de clé JSON, vous pouvez rechercher l'ID unique de la clé de compte de service dans le champ private_key_id du fichier.

Si vous n'avez pas de fichier de clé JSON, vous pouvez rechercher l'ID unique de la clé de compte de service en procédant comme suit :

Console

  1. Dans Cloud Console, accédez à la page Comptes de service.

    Accéder à la page Comptes de service

    1. Sélectionnez le projet contenant le compte de service associé à votre clé.
    2. Cliquez sur l'adresse e-mail du compte de service associé à la clé.
    3. Accédez à la section Clés de la page, puis recherchez et copiez votre ID de clé dans la liste des ID de clé.

gcloud

  1. Exécutez la commande gcloud iam service-accounts keys list, en remplaçant [SERVICE_ACCOUNT_EMAIL] par l'adresse e-mail du compte de service auquel la clé est associée :

    gcloud iam service-accounts keys list --iam-account=service-account-email
    

    Le résultat affiche la liste de toutes les clés créées par l'utilisateur qui sont associées au compte de service, y compris l'ID unique, l'heure de création et l'heure d'expiration de chaque clé.

  2. Identifiez la clé dont vous souhaitez effectuer le suivi à l'aide des données du résultat, puis copiez son ID unique.

REST

  1. Répertoriez les clés du compte de service :

    La méthode projects.serviceAccounts.keys.list répertorie toutes les clés d'un compte de service donné.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID de votre projet Google Cloud.
    • sa-name : nom du compte de service dont vous souhaitez répertorier les clés.
    • key-types : facultatif. Liste de types de clés séparés par une virgule que vous souhaitez inclure dans la réponse. Le type de clé indique si une clé est gérée par l'utilisateur (USER_MANAGED) ou gérée par le système (SYSTEM_MANAGED). Si aucune valeur n'est spécifiée, toutes les clés sont renvoyées.

    Méthode HTTP et URL :

    GET https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-name@project-id.iam.gserviceaccount.com/keys?keyTypes=key-types

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    {
      "keys": [
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
          "validAfterTime": "2020-03-04T17:39:47Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
          "validAfterTime": "2020-03-31T23:50:09Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
          "validAfterTime": "2020-05-17T18:58:13Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        }
      ]
    }
    

  2. Identifiez la clé dont vous souhaitez effectuer le suivi à l'aide des métadonnées de la réponse. Copiez ensuite l'ID unique de la clé à la fin du champ name.

    Le champ name a le format suivant :

    "name": "projects/project-id/serviceAccounts/service-account-email/keys/key-id"
    

    L'ID unique de la clé correspond à tout ce qui suit keys/.

    Par exemple, l'ID unique est 0f561cc41650ff521899de2fd653bd3de08e2da4 dans le nom de clé suivant :

    "name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
    

Pour rechercher les métriques d'utilisation de la clé de compte de service, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page Explorateur de métriques.

    Accéder à la page Explorateur de métriques

  2. Dans le champ Find resource type and metric (Rechercher un type de ressource et une métrique), définissez le type de ressource sur IAM Service accounts (Comptes de service IAM) et la métrique sur Key authentication events (Événements d'authentification par clé).

  3. Dans le champ Filtre, sélectionnez keyid et saisissez l'ID unique de la clé de compte de service.

  4. Pour faciliter la lecture du graphique, sélectionnez le type de tracé Ligne ou Barres empilées.

L'événement d'authentification le plus récent sur le graphique indique quand la clé de compte de service a été utilisée pour la dernière fois.

REST

Lorsqu'elle est utilisée avec des filtres spécifiques, la méthode timeSeries.list de l'API Cloud Monitoring vous permet d'obtenir les métriques d'utilisation d'une seule clé de compte de service. Vous pouvez ensuite déterminer la date de la dernière utilisation de la clé à l'aide de ces métriques.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet Google Cloud.
  • key-id : ID unique de votre clé de compte de service.
  • end-time : fin de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Exemple : 2020-06-12T00%3A00%3A00.00Z.
  • start-time : début de l'intervalle de temps à vérifier, au format RFC 3339 encodé en pourcentage. Par exemple, 2020-04-12T00%3A00%3A00.00Z.

Méthode HTTP et URL :

GET https://monitoring.googleapis.com/v3/projects/project-id/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count%22%20AND%20metric.labels.key_id%3D%22key-id%22&interval.endTime=end-time&interval.startTime=start-time

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse contient un objet timeSeries qui inclut tous les événements d'authentification récents de la clé de compte de service spécifiée. L'objet timeSeries permet de déterminer la date de la dernière utilisation de la clé de compte de service.

Exporter des métriques

Monitoring vous permet d'exporter des métriques vers BigQuery. Cette opération est utile pour effectuer une analyse à long terme, car Monitoring ne conserve les métriques que pendant une durée limitée.

Pour savoir comment procéder, consultez la page Exporter des métriques Monitoring dans la documentation sur les solutions.

Étape suivante