Ce guide explique comment utiliser l'API Security Command Center pour gérer les marques de sécurité. Les marques de sécurité, ou "marques", sont des annotations personnalisables sur les éléments ou les résultats dans Security Command Center qui vous permettent d'ajouter votre propre contexte commercial à ces objets.
Vous ne pouvez ajouter ou mettre à jour des marques de sécurité que sur les éléments compatibles avec Security Command Center. Pour obtenir la liste des éléments compatibles avec Security Command Center, consultez la section Types d'éléments acceptés dans Security Command Center.
Avant de commencer
Pour pouvoir utiliser des marques de sécurité, vous devez configurer un compte de service et un SDK.
Pour ajouter ou modifier des marques de sécurité, vous devez disposer d'un rôle de gestion de l'authentification et des accès incluant des autorisations pour le type de marque que vous souhaitez utiliser :
- Marques d'éléments : Rédacteur de marques de sécurité d'élément,
securitycenter.assetSecurityMarksWriter
- Marques de résultats : Rédacteur de marques de sécurité de résultat,
securitycenter.findingSecurityMarksWriter
Pour en savoir plus sur les rôles IAM dans Security Command Center, consultez la page Contrôle des accès. Pour apprendre à utiliser les marques de sécurité efficacement, consultez la page Utiliser les marques de sécurité Security Command Center.
Ajouter ou mettre à jour des marques de sécurité sur des éléments
Lorsque vous utilisez l'API Security Command Center, l'ajout et la mise à jour de marques de sécurité sont identiques. L'exemple ci-dessous montre comment ajouter des marques de sécurité pour deux paires clé-valeur (key_a, value_a)
et (key_b, value_b)
.
Le code suivant utilise des masques de champ pour garantir que seules ces valeurs sont mises à jour. Si vous n'utilisez pas de masques de champ, toutes les marques de sécurité sont effacées avant d'ajouter les clés et les valeurs données.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Remplacez les éléments suivants :
ASSET_ID
: composant à mettre à jour.PARENT
: niveau de la hiérarchie des ressources où se trouve l'asset. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de l'organisation, du dossier ou du projet parent, ou ID alphanumérique du projet parent.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel mettre à jour une marque de sécurité sur un élément. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.SECURITY_MARKS
: paires clé-valeur séparées par des virgules représentant des marques de sécurité et leurs valeurs (par exemple,key_a=value_a,key_b=value_b
).UPDATE_MASK
: liste des champs de la marque de sécurité à mettre à jour pour l'élément, séparés par une virgule (par exemple,marks.key_a,marks.key_b
).
Go
Python
Consultez la section Gérer les règles pour en savoir plus sur les marques d'éléments dédiées aux détecteurs de Security Health Analytics.
Supprimer des marques de sécurité sur des éléments
La suppression de marques de sécurité spécifiques s'effectue de la même manière pour l'ajout ou la mise à jour de ces dernières, en particulier pour appeler une mise à jour avec un masque de champ, mais sans aucune valeur correspondante. Dans l'exemple ci-dessous, les marques de sécurité dotées des clés key_a
et key_b
sont supprimées.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: composant à mettre à jour.PARENT
: niveau de la hiérarchie des ressources où se trouve l'asset. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de l'organisation, du dossier ou du projet parent, ou ID alphanumérique du projet parent.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel supprimer une marque de sécurité d'un élément. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.UPDATE_MASK
: liste des champs de marque de sécurité à supprimer de l'asset, séparés par une virgule (par exemple,marks.key_a,marks.key_b
).
Node.js
Python
Ajouter et supprimer des marques de sécurité dans la même requête
La technique pour ajouter et mettre à jour des marques de sécurité et pour supprimer des marques de sécurité peut être regroupée dans la même requête. Dans l'exemple ci-dessous, key_a
est mise à jour alors que key_b
est supprimée.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: composant à mettre à jour.PARENT
: niveau de la hiérarchie des ressources où se trouve l'asset. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de l'organisation, du dossier ou du projet parent, ou ID alphanumérique du projet parent.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel mettre à jour et supprimer les marques de sécurité d'un élément. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.SECURITY_MARKS
: paires clé-valeur séparées par une virgule représentant les marques de sécurité que vous souhaitez mettre à jour (par exemple,key_a=value_a
). Excluez les marques de sécurité que vous souhaitez supprimer.UPDATE_MASK
: liste des champs de marque de sécurité à mettre à jour ou à supprimer, séparés par une virgule (par exemple,marks.key_a,marks.key_b
).
Node.js
Python
Ajouter des marques de sécurité aux résultats
L'ajout, la mise à jour et la suppression de marques de sécurité sur des résultats suivent le même processus que la mise à jour de marques de sécurité sur des éléments. La seule différence réside dans le nom de la ressource utilisée dans l'appel d'API. Au lieu d'utiliser une ressource d'élément, vous devez fournir un nom de ressource de résultat.
Par exemple, pour mettre à jour des marques de sécurité dans un résultat, utilisez le code suivant :
gcloud
gcloud scc findings update-marks \ PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_NAME \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
Remplacez les éléments suivants :
PARENT
: niveau de la hiérarchie des ressources où se trouve la découverte. Utilisezorganizations
,folders
ouprojects
.PARENT_ID
: ID numérique de l'organisation, du dossier ou du projet parent, ou ID alphanumérique du projet parent.SOURCE_ID
: ID de la sourceLOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel mettre à jour une marque de sécurité sur un résultat. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.FINDING_NAME
: résultat à mettre à jour.SECURITY_MARKS
: paires clé-valeur séparées par des virgules représentant des marques de sécurité et leurs valeurs (par exemple,key_a=value_a,key_b=value_b
).UPDATE_MASK
: liste des champs de la marque de sécurité à mettre à jour pour l'élément, séparés par une virgule (par exemple,marks.key_a,marks.key_b
).
Java
Node.js
Python
Les marques de sécurité sont traitées lors des analyses par lot (qui s'exécutent deux fois par jour), pas en temps réel. Un délai de 12 à 24 heures peut être nécessaire avant que les marques de sécurité ne soient traitées et que les règles d'application qui permettent de résoudre ou de rouvrir des résultats ne soient appliquées.
Répertorier des éléments avec des filtres de marque de sécurité
Une fois les marques de sécurité définies dans un élément, elles peuvent être utilisées dans l'argument de filtre de l'appel d'API ListAssets
. Par exemple, pour interroger tous les éléments utilisant key_a = value_a
, utilisez le code suivant :
gcloud
# ORGANIZATION=12344321 FILTER="security_marks.marks.key_a = \"value_a\"" gcloud scc assets list $ORGANIZATION \ --filter="$FILTER"
Go
Java
Node.js
Python
Répertorier des résultats avec des filtres de marque de sécurité
Une fois les marques de sécurité définies dans un résultat, elles peuvent être utilisées dans l'argument de filtre de l'appel d'API ListFindings
. Par exemple, pour interroger tous les éléments utilisant key_a != value_a
, utilisez le code suivant :
gcloud
gcloud scc findings list PARENT/PARENT_ID \ --location=LOCATION \ --source=SOURCE_ID \ --filter=FILTER
PARENT
: niveau de la hiérarchie des ressources où se trouve la découverte. Utilisezorganizations
,folders
ouprojects
.PARENT_ID
: ID numérique de l'organisation, du dossier ou du projet parent, ou ID alphanumérique du projet parent.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel répertorier les résultats. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.SOURCE_ID
: ID de la sourceFILTER
: filtre à appliquer aux résultats. Par exemple, pour exclure les résultats associés à la marque de sécuritékey_a=value_a
, utilisez"NOT security_marks.marks.key_a=\"value_a\""
.
Go
Java
Node.js
Python
Étape suivante
- En savoir plus sur les résultats de la recherche et sur les composants de la fiche