Cette page explique comment gérer les insights sur les mouvements latéraux, qui identifient les rôles permettant à un compte de service d'un projet d'emprunter l'identité d'un compte de service d'un autre projet. Pour en savoir plus sur les insights sur les mouvements latéraux, consultez la section Comment les insights sur les mouvements latéraux sont générés.
Les insights sur les mouvements latéraux sont parfois associés à des recommandations de rôles. Les recommandations de rôle suggèrent des actions que vous pouvez entreprendre pour résoudre les problèmes identifiés par les insights sur les mouvements latéraux.
Avant de commencer
-
Enable the Recommender API.
- Familiarisez-vous avec les recommandations concernant les rôles IAM.
- Assurez-vous d'avoir activé le niveau Premium de Security Command Center au niveau de l'organisation. Pour en savoir plus, consultez la page Questions sur la facturation.
- 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 mouvements latéraux, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet, le dossier ou l'organisation pour lesquels vous souhaitez gérer les insights:
-
Pour afficher les insights sur les mouvements latéraux :
Lecteur de l'outil de recommandation IAM (
roles/recommender.iamViewer
) -
Pour modifier les insights sur les mouvements latéraux :
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 mouvements latéraux. 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 mouvements latéraux:
-
Pour afficher les insights sur les mouvements latéraux :
-
recommender.iamPolicyLateralMovementInsights.get
-
recommender.iamPolicyLateralMovementInsights.list
-
-
Pour modifier les insights sur les mouvements latéraux :
recommender.iamPolicyLateralMovementInsights.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 mouvements latéraux
Pour répertorier tous les insights sur les mouvements latéraux de votre projet, dossier ou organisation, utilisez l'une des méthodes suivantes:Console
-
Dans la console Google Cloud, accédez à la page IAM.
- Sélectionnez un projet, un dossier ou une organisation.
La colonne Insights sur la sécurité affiche tous les insights concernant la sécurité de votre projet, y compris les insights sur les mouvements latéraux. Les insights sur les mouvements latéraux se présentent sous la forme N service account impersonations
, où N
correspond au nombre de comptes de service dont le compte de service de la liaison de rôle peut emprunter l'identité.
gcloud
Utilisez la commande gcloud recommender
insights list
pour afficher tous les insights sur les mouvements latéraux de votre projet, dossier ou organisation.
Avant d'exécuter la commande, remplacez les valeurs suivantes :
-
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez répertorier des insights. Utilisez la valeurproject
,folder
ouorganization
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lequel vous souhaitez répertorier des insights.
gcloud recommender insights list --insight-type=google.iam.policy.LateralMovementInsight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
Le résultat affiche tous les insights sur les mouvements latéraux de votre projet, votre dossier ou votre organisation. Exemple :
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 046f8b89-bcee-46cd-9ac4-06818ed5273a SECURITY ACTIVE 2022-05-24T07:00:00Z LOW CROSS_PROJECT_IMPERSONATION Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project. 1328df82-5af2-4493-9850-d8ede4e72b27 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW CROSS_PROJECT_IMPERSONATION Service account sa-2@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project. 17f50957-333c-4f21-86c1-6a62216b309e SECURITY ACTIVE 2022-05-24T07:00:00Z LOW CROSS_PROJECT_IMPERSONATION Service account sa-3@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project. 187200d2-b42c-48fb-86d7-c2746a87fed2 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW CROSS_PROJECT_IMPERSONATION Service account sa-4@another-project.iam.gserviceaccount.com from another project can impersonate 32 service account(s) under this project. 1f1740a4-ff98-4f64-99a4-5ef5df5a2097 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW CROSS_PROJECT_IMPERSONATION Service account sa-5@another-project.iam.gserviceaccount.com from another project can impersonate 1 service account(s) under this project.
REST
La méthode insights.list
de l'API Recommender répertorie tous les insights sur les mouvements latéraux de votre projet, de votre dossier ou de votre organisation.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
-
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez répertorier des insights. Utilisez la valeurprojects
,folders
ouorganizations
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lequel vous souhaitez répertorier des insights. PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.
Méthode HTTP et URL :
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights
Pour envoyer votre requête, développez l'une des options suivantes :
La réponse répertorie tous les insights sur les mouvements latéraux de votre projet, dossier ou organisation. Exemple :
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860", "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.", "content": { "impersonator": { "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com", "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098", "isGoogleManaged": false }, "targetServiceAccounts": [ "target-service-account-1@this-project.iam.gserviceaccount.com", "target-service-account-2@this-project.iam.gserviceaccount.com" ], "impersonationPolicy": { "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012", "role": "roles/editor", "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" } }, "impersonationPermissionUsage": [ { "permission": "iam.serviceAccounts.actAs" "used": false } ], "hasPermissionUsageData": true }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "CROSS_PROJECT_IMPERSONATION", "etag": "\"f48fa6a1b15c7741\"", "severity": "LOW" } ] }
Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.
Obtenir un seul insight sur les mouvements latéraux
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 :
Console
-
Dans la console Google Cloud, accédez à la page IAM.
- Sélectionnez un projet, un dossier ou une organisation.
-
Dans la colonne Insights sur la sécurité, cliquez sur un insight sur les mouvements latéraux. Les insights sur les mouvements latéraux se présentent sous la forme
N service account impersonations
, oùN
correspond au nombre de comptes de service dont le compte de service de la liaison de rôle peut emprunter l'identité.
La console Google Cloud ouvre un volet contenant les détails de l'insight.
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 l'ID, répertoriez les insights sur votre projet, dossier ou organisation. -
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeurproject
,folder
ouorganization
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les insights.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.LateralMovementInsight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
Le résultat affiche les détails de l'insight. Par exemple, l'insight suivant indique que la stratégie IAM du projet 123456789012
autorise sa-1@another-project.iam.gserviceaccount.com
à emprunter l'identité de target-service-account-1@this-project.iam.gserviceaccount.com
et de target-service-account-2@this-project.iam.gserviceaccount.com
.
associatedRecommendations: - recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f category: SECURITY content: hasPermissionUsageData: true impersonationPermissionUsage: - permission: iam.serviceAccounts.actAs used: false impersonationPolicy: condition: description: '' expression: '' location: '' title: '' member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com resource: //cloudresourcemanager.googleapis.com/projects/123456789012 role: roles/editor impersonator: isGoogleManaged: false serviceAccount: sa-1@another-project.iam.gserviceaccount.com serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098 targetServiceAccounts: - target-service-account-1@this-project.iam.gserviceaccount.com - target-service-account-2@this-project.iam.gserviceaccount.com description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project. etag: '"f48fa6a1b15c7741"' insightSubtype: CROSS_PROJECT_IMPERSONATION lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860 observationPeriod: 7776000s 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 mouvements latéraux 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 ci-dessous, effectuez les remplacements suivants :
-
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeurprojects
,folders
ouorganizations
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les 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 dans votre projet, dossier ou organisation. L'ID d'un insight correspond à tout ce qui suitinsights/
dans le champname
de l'insight. PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.
Méthode HTTP et URL :
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/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 la stratégie IAM du projet 123456789012
autorise sa-1@another-project.iam.gserviceaccount.com
à emprunter l'identité de target-service-account-1@this-project.iam.gserviceaccount.com
et de target-service-account-2@this-project.iam.gserviceaccount.com
.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860", "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.", "content": { "impersonator": { "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com", "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098", "isGoogleManaged": false }, "targetServiceAccounts": [ "target-service-account-1@this-project.iam.gserviceaccount.com", "target-service-account-2@this-project.iam.gserviceaccount.com" ], "impersonationPolicy": { "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012", "role": "roles/editor", "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" } }, "impersonationPermissionUsage": [ { "permission": "iam.serviceAccounts.actAs" "used": false } ], "hasPermissionUsageData": true }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "CROSS_PROJECT_IMPERSONATION", "etag": "\"f48fa6a1b15c7741\"", "severity": "LOW" }
Pour en savoir plus sur les composants d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.
Examiner les insights sur les mouvements latéraux
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.
Console
Lorsque vous cliquez sur un insight sur les mouvements latéraux dans la console Google Cloud, un volet affichant les détails de l'insight s'ouvre. L'apparence de ces détails varie selon que l'insight est associé à une recommandation ou non.
Si l'insight est associé à une recommandation, le volet affiche les détails de la recommandation.
Si l'insight n'est pas associé à une recommandation, le volet affiche les éléments suivants :
-
Projet d'origine du compte de service : projet dans lequel le compte de service avec autorisations d'usurpation d'identité a été créé.
-
Comptes de service dont l'identité peut être usurpée dans ce projet. Liste de tous les comptes de service du projet actuel dont le compte de service avec autorisations d'usurpation d'identité peut usurper l'identité.
-
Autorisations autorisant l'usurpation d'identité dans le projet : liste des autorisations d'usurpation d'identité dont dispose le compte de service.
-
Autorisations actuelles : liste de toutes les autorisations du compte de service.
gcloud
Le contenu d'un insight est déterminé par ses sous-types.
Les insights sur les mouvements latéraux (google.iam.policy.LateralMovementInsight
) ont le sous-type CROSS_PROJECT_IMPERSONATION
.
Les insights CROSS_PROJECT_IMPERSONATION
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
: affiche les détails de la capacité du compte de service à emprunter l'identité des comptes de service d'autres projets. Ce champ contient les éléments suivants :hasPermissionUsageData
: valeur booléenne indiquant s'il existe des données d'utilisation pour les autorisations pour cette liaison de rôle. Les données d'utilisation des autorisations indiquent si les autorisations de la liaison de rôle ont été utilisées. Ces données ne sont pas disponibles pour les liaisons de rôle conditionnelles.impersonationPermissionUsage
: liste des autorisations d'emprunt d'identité et des informations d'utilisation. Si une autorisation a été utilisée au cours des 90 derniers jours, elle est considérée comme utilisée. Sinon, il est considéré comme inutilisé.Si
hasPermissionUsageData
est défini sur "false", le champimpersonationPermissionUsage
est vide.impersonationPolicy
: informations sur la liaison de rôle qui donne aux autorisations d'emprunt d'identité du compte de service.impersonator
: détails concernant le compte de service autorisé à emprunter l'identité des comptes de service de votre projet, y compris les éléments suivants :isGoogleManaged
: indique si le compte de service appartient à Google et est géré par Google.serviceAccount
: adresse e-mail du compte de service.serviceAccountOwner
: projet propriétaire du compte de service. Si Google est propriétaire du compte de service, la valeur de ce champ estGoogle managed
. Si un projet en dehors de votre organisation est propriétaire du compte de service, la valeur de ce champ estUnknown to your org
.
targetServiceAccounts
: liste des comptes de service dont le compte de service dans le champimpersonator
est autorisé à emprunter l'identité. Si l'emprunt d'identité peut emprunter plus de 1 500 comptes de service, la liste est vide. Pour connaître le nombre de comptes de service que l'emprunteur peut emprunter, consultez le champdescription
.
-
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 :RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID
Les espaces réservés prennent les valeurs suivantes :
-
RESOURCE_TYPE
: type de ressource pour lequel l'insight a été généré. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation 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
). -
severity
: gravité de l'insight. Tous les insights sur les mouvements latéraux ont une gravité deLOW
. -
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 de l'organisation, du dossier, du projet ou du compte de service auquel l'insight est destiné. Exemple ://cloudresourcemanager.googleapis.com/projects/123456789012
.
REST
Le contenu d'un insight est déterminé par ses sous-types.
Les insights sur les mouvements latéraux (google.iam.policy.LateralMovementInsight
) ont le sous-type CROSS_PROJECT_IMPERSONATION
.
Les insights CROSS_PROJECT_IMPERSONATION
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
: affiche les détails de la capacité du compte de service à emprunter l'identité des comptes de service d'autres projets. Ce champ contient les éléments suivants :hasPermissionUsageData
: valeur booléenne indiquant s'il existe des données d'utilisation pour les autorisations pour cette liaison de rôle. Les données d'utilisation des autorisations indiquent si les autorisations de la liaison de rôle ont été utilisées. Ces données ne sont pas disponibles pour les liaisons de rôle conditionnelles.impersonationPermissionUsage
: liste des autorisations d'emprunt d'identité et des informations d'utilisation. Si une autorisation a été utilisée au cours des 90 derniers jours, elle est considérée comme utilisée. Sinon, il est considéré comme inutilisé.Si
hasPermissionUsageData
est défini sur "false", le champimpersonationPermissionUsage
est vide.impersonationPolicy
: informations sur la liaison de rôle qui donne aux autorisations d'emprunt d'identité du compte de service.impersonator
: détails concernant le compte de service autorisé à emprunter l'identité des comptes de service de votre projet, y compris les éléments suivants :isGoogleManaged
: indique si le compte de service appartient à Google et est géré par Google.serviceAccount
: adresse e-mail du compte de service.serviceAccountOwner
: projet propriétaire du compte de service. Si Google est propriétaire du compte de service, la valeur de ce champ estGoogle managed
. Si un projet en dehors de votre organisation est propriétaire du compte de service, la valeur de ce champ estUnknown to your org
.
targetServiceAccounts
: liste des comptes de service dont le compte de service dans le champimpersonator
est autorisé à emprunter l'identité. Si l'emprunt d'identité peut emprunter plus de 1 500 comptes de service, la liste est vide. Pour connaître le nombre de comptes de service que l'emprunteur peut emprunter, consultez le champdescription
.
-
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 :RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/INSIGHT_ID
Les espaces réservés prennent les valeurs suivantes :
-
RESOURCE_TYPE
: type de ressource pour lequel l'insight a été généré. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation 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
). -
severity
: gravité de l'insight. Tous les insights sur les mouvements latéraux ont une gravité deLOW
. -
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 de l'organisation, du dossier, du projet ou du compte de service auquel l'insight est destiné. Exemple ://cloudresourcemanager.googleapis.com/projects/123456789012
.
Marquer un insight sur les mouvements latéraux 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
.
Console
Si un insight est associé à une recommandation, l'application de la recommandation fait passer l'état de l'insight à ACCEPTED
.
Pour signaler un insight comme ACCEPTED
sans appliquer de recommandation, utilisez gcloud CLI ou l'API REST.
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 l'ID, répertoriez les insights sur votre projet, dossier ou organisation. -
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeurproject
,folder
ouorganization
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les 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.policy.LateralMovementInsight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global \ --etag=ETAG
Le résultat affiche l'insight, dont l'état est maintenant ACCEPTED
:
associatedRecommendations: - recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f category: SECURITY content: hasPermissionUsageData: true impersonationPermissionUsage: - permission: iam.serviceAccounts.actAs used: false impersonationPolicy: condition: description: '' expression: '' location: '' title: '' member: serviceAccount:sa-1@another-project.iam.gserviceaccount.com resource: //cloudresourcemanager.googleapis.com/projects/123456789012 role: roles/editor impersonator: isGoogleManaged: false serviceAccount: sa-1@another-project.iam.gserviceaccount.com serviceAccountOwner: //cloudresourcemanager.googleapis.com/projects/987654321098 targetServiceAccounts: - target-service-account-1@this-project.iam.gserviceaccount.com - target-service-account-2@this-project.iam.gserviceaccount.com description: Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project. etag: '"f48fa6a1b15c7741"' insightSubtype: CROSS_PROJECT_IMPERSONATION lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860 observationPeriod: 7776000s 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 mouvements latéraux 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 :
-
RESOURCE_TYPE
: type de ressource pour lequel vous souhaitez gérer des insights. Utilisez la valeurprojects
,folders
ouorganizations
. -
RESOURCE_ID
: ID du projet, du dossier ou de l'organisation pour lesquels vous souhaitez gérer les 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 dans votre projet, dossier ou organisation. 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
PROJECT_ID
: ID de votre projet Google Cloud. Les ID de projet sont des chaînes alphanumériques, telles quemy-project
.
Méthode HTTP et URL :
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/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.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860", "description": "Service account sa-1@another-project.iam.gserviceaccount.com from another project can impersonate 2 service account(s) under this project.", "content": { "impersonator": { "serviceAccount": "sa-1@another-project.iam.gserviceaccount.com", "serviceAccountOwner": "//cloudresourcemanager.googleapis.com/projects/987654321098", "isGoogleManaged": false }, "targetServiceAccounts": [ "target-service-account-1@this-project.iam.gserviceaccount.com", "target-service-account-2@this-project.iam.gserviceaccount.com" ], "impersonationPolicy": { "resource": "//cloudresourcemanager.googleapis.com/projects/123456789012", "role": "roles/editor", "member": "serviceAccount:sa-1@another-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" } }, "impersonationPermissionUsage": [ { "permission": "iam.serviceAccounts.actAs" "used": false } ], "hasPermissionUsageData": true }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/03f3dc20-f9e7-4502-95ab-bf7d3164846f" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "CROSS_PROJECT_IMPERSONATION", "etag": "\"f48fa6a1b15c7741\"", "severity": "LOW" }
Pour en savoir plus sur les informations d'état d'un insight, consultez la section Examiner les insights sur les mouvements latéraux sur cette page.
Étape suivante
- Découvrez comment examiner et appliquer des recommandations de stratégies.
- Utilisez le centre de recommandations pour afficher et gérer toutes les recommandations de votre projet, y compris les recommandations IAM.