Cette page explique comment gérer les insights sur les comptes de service, qui sont des observations indiquant quels sont les comptes de service de votre projet qui n'ont pas été utilisés au cours des 90 derniers jours.
Avant de commencer
-
Enable the Recommender API.
- Facultatif : Découvrez les insights de l'outil de recommandation.
Rôles requis
Pour obtenir les autorisations nécessaires pour gérer les insights sur les comptes de service, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet pour lequel vous souhaitez gérer les insights:
-
Pour afficher les insights sur les comptes de service :
Lecteur de l'outil de recommandation IAM (
roles/recommender.iamViewer
) -
Pour modifier les insights sur les comptes de service :
Administrateur de l'outil de recommandation IAM (
roles/recommender.iamAdmin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour gérer les insights sur les comptes de service. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour gérer les insights sur les comptes de service:
-
Pour afficher les insights sur les comptes de service, procédez comme suit :
-
recommender.iamServiceAccountinsights.get
-
recommender.iamServiceAccountinsights.list
-
-
Pour modifier les insights sur les comptes de service, procédez comme suit :
recommender.iamServiceAccountinsights.update
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Répertorier les insights sur les comptes de service
Pour répertorier tous les insights sur les comptes de service de votre projet, utilisez l'une des méthodes suivantes:gcloud
Exécutez la commande gcloud recommender
insights list
pour afficher tous les insights sur les comptes de service de votre projet.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
PROJECT_ID
: ID du projet pour lequel vous souhaitez répertorier des insights.
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
La sortie affiche tous les insights sur les comptes de service de votre projet. Exemple :
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 446303ba-2a14-49cc-b9fa-e2d2499d4f82 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-1@my-project.iam.gserviceaccount.com was inactive. 4cfd82c3-7320-4dc6-9b67-ca0756bbd54c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-2@my-project.iam.gserviceaccount.com was inactive. a627bed7-c8f4-4611-89c9-2a9a8618ca1b SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-3@my-project.iam.gserviceaccount.com was inactive. a922dd59-df0a-422d-a2a4-096195e1dae5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-4@my-project.iam.gserviceaccount.com was inactive.
REST
La méthode insights.list
de l'API Recommender répertorie tous les insights sur les comptes de service de votre projet.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
PROJECT_ID
: ID du projet pour lequel vous souhaitez répertorier des insights.
Méthode HTTP et URL :
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse répertorie tous les insights sur les comptes de service de votre projet. Exemple :
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }, { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/4cfd82c3-7320-4dc6-9b67-ca0756bbd54c", "description": "Service account sa-2@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "105496400997178042131", "email": "sa-2@my-project.iam.gserviceaccount.com" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "16070400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"783a32b635d79a4e\"", "severity": "LOW" } ] }
Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les comptes de service sur cette page.
Obtenir un seul insight sur un compte de service
Pour obtenir plus d'informations sur un seul insight, y compris sa description, son état et toutes les recommandations auxquelles il est associé, utilisez l'une des méthodes suivantes :
gcloud
Pour afficher les informations sur un seul insight, exécutez la commande gcloud recommender
insights describe
avec l'ID de l'insight.
-
INSIGHT_ID
: ID de l'insight que vous souhaitez afficher. Pour trouver cet ID, répertoriez les insights de votre projet. PROJECT_ID
: ID du projet pour lequel vous souhaitez gérer des insights.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
Le résultat affiche les détails de l'insight. Par exemple, l'insight suivant indique que le compte de service sa-1@my-project.iam.gserviceaccount.com
n'a pas été authentifié depuis le 11 octobre 2020.
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"9d797dd04263c855"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les comptes de service sur cette page.
REST
La méthode insights.get
de l'API Recommender permet d'obtenir un seul insight.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
-
PROJECT_ID
: ID du projet pour lequel vous souhaitez gérer des insights. -
INSIGHT_ID
: ID de l'insight que vous souhaitez afficher. Si vous ne connaissez pas l'ID de l'insight, vous pouvez le trouver en répertoriant les insights de votre projet. L'ID d'un insight correspond à tout ce qui suitinsights/
dans le champname
de l'insight.
Méthode HTTP et URL :
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient les détails de l'insight. Par exemple, l'insight suivant indique que le compte de service sa-1@my-project.iam.gserviceaccount.com
n'a pas été authentifié depuis le 11 octobre 2020.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }
Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les comptes de service sur cette page.
Examiner les insights sur les comptes de service
Après avoir obtenu un seul insight, vous pouvez consulter son contenu pour comprendre le modèle d'utilisation des ressources qu'il met en évidence.
Le contenu d'un insight est déterminé par ses sous-types.
Les insights sur les comptes de service (google.iam.serviceAccount.Insight
) ont le sous-type SERVICE_ACCOUNT_USAGE
.
Les insights SERVICE_ACCOUNT_USAGE
incluent les composants suivants, mais pas nécessairement dans cet ordre :
-
associatedRecommendations
: identifiants de toutes les recommandations associées à l'insight. Si aucune recommandation n'est associée à l'insight, ce champ est vide. category
: la catégorie des insights IAM est toujoursSECURITY
.-
content
: date de la dernière authentification du compte de service. Ce champ contient les éléments suivants :email
: adresse e-mail du compte de service.lastAuthenticatedTime
: date et heure de la dernière authentification du compte de service. Ce champ n'est pas inclus si aucune authentification n'a été enregistrée pour le compte de service.serviceAccountId
: ID numérique unique du compte de service.
-
description
: résumé lisible de l'insight. -
etag
: identifiant unique de l'état actuel d'un insight. Chaque fois que l'insight change, une nouvelle valeuretag
est assignée à ce champ.Pour modifier l'état d'un insight, vous devez indiquer l'
etag
de l'insight existant. L'utilisation de l'etag
permet de garantir que l'opération n'est effectuée que si l'insight n'a pas changé depuis qu'il a été récupéré. -
insightSubtype
: sous-type de l'insight -
lastRefreshTime
: date de la dernière actualisation de l'insight. Elle donne une idée de la fraîcheur des données utilisées pour générer l'insight. -
name
: nom de l'insight, au format suivant :projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Les espaces réservés prennent les valeurs suivantes :
PROJECT_ID
: ID du projet dans lequel l'insight a été généré.INSIGHT_ID
: ID unique de l'insight.
-
observationPeriod
: période d'observation ayant donné lieu à la génération de l'insight. Les données sources permettant de générer l'insight se terminent à la dernière actualisation (lastRefreshTime
) et commencent à la dernière actualisation (lastRefreshTime
) en décomptant la période d'observation (observationPeriod
). -
stateInfo
: état de l'insight. Les insights passent par différents états après leur création :-
ACTIVE
(actif) : l'insight a été généré, mais aucune action n'a été effectuée, ou l'état de l'insight n'a pas été mis à jour suite à l'action qui a été effectuée. Les insights dans cet état sont mis à jour lorsque les données sous-jacentes changent. -
ACCEPTED
(accepté) : des actions ont été effectuées en réponse à l'insight. Les insights passent dans cet état lorsqu'une recommandation associée a été marquée commeCLAIMED
,SUCCEEDED
ouFAILED
, ou lorsque l'insight a été accepté directement. Lorsqu'un insight est à l'étatACCEPTED
, son contenu ne peut pas changer. Une fois dans cet état, les insights sont conservés pendant 90 jours.
-
-
targetResources
: nom complet de la ressource du projet auquel l'insight est destiné. Exemple ://cloudresourcemanager.googleapis.com/projects/123456789012
.
Marquer un insight sur un compte de service comme ACCEPTED
Si vous effectuez une action en réponse à un insight actif, vous pouvez marquer cet insight comme ACCEPTED
. L'état ACCEPTED
indique à l'API Recommender que vous avez effectué une action sur la base de cet insight, ce qui lui permettra d'affiner ses recommandations futures.
Les insights acceptés sont conservés pendant 90 jours après avoir été marqués comme ACCEPTED
.
gcloud
Pour marquer un insight comme ACCEPTED
, exécutez la commande
gcloud recommender insights mark-accepted
avec l'ID de l'insight.
-
INSIGHT_ID
: ID de l'insight que vous souhaitez afficher. Pour trouver cet ID, répertoriez les insights de votre projet. PROJECT_ID
: ID du projet pour lequel vous souhaitez gérer des insights.-
ETAG
: identifiant d'une version de l'insight. Pour obtenir la valeuretag
, procédez comme suit :-
Consultez l'insight à l'aide de la commande
gcloud recommender insights describe
. -
Dans le résultat, recherchez le champ
etag
et copiez sa valeur, guillemets compris. Exemple :"d3cdec23cc712bd0"
-
Consultez l'insight à l'aide de la commande
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global \ --etag=ETAG
Le résultat affiche l'insight, dont l'état est maintenant ACCEPTED
:
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"39c4199dcec92848"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les comptes de service sur cette page.
REST
La méthode insights.markAccepted
de l'API Recommender marque un insight comme ACCEPTED
.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
-
PROJECT_ID
: ID du projet pour lequel vous souhaitez gérer des insights. -
INSIGHT_ID
: ID de l'insight que vous souhaitez afficher. Si vous ne connaissez pas l'ID de l'insight, vous pouvez le trouver en répertoriant les insights de votre projet. L'ID d'un insight correspond à tout ce qui suitinsights/
dans le champname
de l'insight. -
ETAG
: identifiant d'une version de l'insight. Pour obtenir la valeuretag
, procédez comme suit :- Obtenez l'insight à l'aide de la méthode
insights.get
. - Recherchez et copiez la valeur
etag
à partir de la réponse.
- Obtenez l'insight à l'aide de la méthode
Méthode HTTP et URL :
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted
Corps JSON de la requête :
{ "etag": "ETAG" }
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse contient l'insight, dont l'état est ACCEPTED
:
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-10-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"39c4199dcec92848\"", "severity": "LOW" }
Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les comptes de service sur cette page.
Étape suivante
- Consultez les autres outils disponibles pour comprendre l'utilisation des comptes de service.
- Utilisez le centre de recommandations pour afficher et gérer toutes les recommandations de votre projet, y compris les recommandations IAM.