Cette page explique comment utiliser la fonctionnalité de notifications de l'API Security Command Center, y compris les exemples suivants:
- Créer un objet
NotificationConfig
- Obtenir un objet
NotificationConfig
- Mettre à jour un objet
NotificationConfig
- Supprimer un objet
NotificationConfig
- Répertorier
NotificationConfig
- Recevoir des notifications Pub/Sub
Les clients Security Command Center Premium peuvent également configurer des exportations continues pour Pub/Sub dans Security Command Center.
Avant de commencer
Pour utiliser les exemples de cette page, vous devez suivre le guide Configurer les notifications de résultats.
Pour exécuter les exemples suivants, vous avez besoin d'un rôle de gestion de l'authentification et des accès (IAM) avec les autorisations appropriées :
- Créer
NotificationConfig
: Éditeur de configuration des notifications du centre de sécurité (roles/securitycenter.notificationConfigEditor
) - Obtenir et répertorier
NotificationConfig
: Lecteur de configurations de notifications du centre de sécurité (roles/securitycenter.notificationConfigViewer
) ou Éditeur de configurations de notifications du centre de sécurité (roles/securitycenter.notificationConfigEditor
) - Mettre à jour et supprimer
NotificationConfig
: Éditeur de configuration des notifications du centre de sécurité (roles/securitycenter.notificationConfigEditor
)
Pour accorder des rôles appropriés à un principal qui accède à un notificationConfig
, vous devez disposer de l'un des rôles IAM suivants:
- Administrateur de l'organisation (
roles/resourcemanager.organizationAdmin
) - Administrateur IAM de dossiers (
roles/resourcemanager.folderIamAdmin
) - Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin
)
Les rôles IAM pour Security Command Center peuvent être attribués au niveau de l'organisation, du dossier ou du projet. Votre capacité à afficher, modifier, créer ou mettre à jour les résultats, les éléments et les sources de sécurité dépend du niveau pour lequel vous disposez d'un accès. Pour en savoir plus sur les rôles Security Command Center, consultez la page Contrôle des accès.
Résidence des données et notifications
Si la résidence des données est activée pour Security Command Center, les configurations qui définissent les exportations continues vers Pub/Sub (ressources notificationConfig
) sont soumises au contrôle de la résidence des données et sont stockées dans votre emplacement Security Command Center.
Pour exporter les résultats d'un emplacement Security Command Center vers Pub/Sub, vous devez configurer l'exportation continue dans le même emplacement Security Command Center que les résultats.
Étant donné que les filtres utilisés dans les exportations continues peuvent contenir des données soumises à des contrôles de résidence, assurez-vous de spécifier l'emplacement approprié avant de les créer. Security Command Center ne limite pas l'emplacement dans lequel vous créez des exportations.
Les exportations continues ne sont stockées que dans l'emplacement où elles sont créées et ne peuvent pas être consultées ni modifiées dans d'autres emplacements.
Une fois que vous avez créé une exportation continue, vous ne pouvez plus modifier son emplacement. Pour modifier l'emplacement, vous devez supprimer l'exportation continue et la recréer dans le nouvel emplacement.
Pour récupérer une exportation continue à l'aide d'appels d'API, vous devez spécifier l'emplacement dans le nom complet de la ressource de notificationConfig
. Exemple :
GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/notificationConfigs/my-pubsub-export-01
De même, pour récupérer une exportation continue à l'aide de gcloud CLI, vous devez spécifier l'emplacement à l'aide de l'option --location
. Exemple :
gcloud scc notifications describe myContinuousExport --organization=123 \ --location=us
Créer un objet NotificationConfig
Pour créer un objet NotificationConfig
, vous devez avoir :
- Un sujet Pub/Sub existant auquel vous souhaitez envoyer des notifications
- Rôles IAM requis pour le principal qui crée le
notificationConfig
.
Pour en savoir plus, consultez l'étape Configurer un sujet Pub/Sub dans le guide Configurer des notifications de résultats.
Avant de créer un NotificationConfig
, notez que chaque organisation peut avoir un nombre limité de fichiers NotificationConfig
. Pour en savoir plus, consultez la page Quotas et limites.
L'objet NotificationConfig
inclut un champ filter
qui limite les notifications aux événements utiles. Ce champ accepte tous les filtres disponibles dans la méthode findings.list
de l'API Security Command Center.
Lorsque vous créez un NotificationConfig
, vous spécifiez un parent pour le NotificationConfig
à partir de la hiérarchie des ressources Google Cloud, qu'il s'agisse d'une organisation, d'un dossier ou d'un projet. Si vous devez récupérer, mettre à jour ou supprimer l'NotificationConfig
ultérieurement, vous devez inclure l'ID numérique de l'organisation, du dossier ou du projet parent lorsque vous y faites référence.
Dans la console Google Cloud, certaines ressources NotificationConfig
peuvent afficher un libellé Ancienne, ce qui indique qu'elles ont été créées avec l'API Security Command Center v1. Vous pouvez gérer ces ressources NotificationConfig
avec la console Google Cloud, la gcloud CLI, l'API Security Command Center v1 ou les bibliothèques clientes v1 pour Security Command Center.
Pour gérer ces ressources NotificationConfig
avec la CLI gcloud, vous ne devez pas spécifier d'emplacement lorsque vous exécutez la commande gcloud CLI.
Pour créer l'NotificationConfig
à l'aide du langage ou de la plate-forme de votre choix:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Remplacez les éléments suivants :
NOTIFICATION_NAME
: nom de la notification. Il doit comporter entre 1 et 128 caractères, et ne peut contenir que des caractères alphanumériques, des traits de soulignement ou des traits d'union.PARENT
: champ d'application dans la hiérarchie des ressources auquel la notification s'applique,organization
,folder
ouproject
.PARENT_ID
: ID de l'organisation, du dossier ou du projet parent, spécifié au formatorganizations/123
,folders/456
ouprojects/789
.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel créer unNotificationConfig
. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.NOTIFICATION_DESCRIPTION
: description de la notification (1 024 caractères maximum).PUBSUB_TOPIC
: sujet Pub/Sub qui recevra les notifications. Son format estprojects/PROJECT_ID/topics/TOPIC
.FILTER
: expression que vous définissez pour sélectionner les résultats à envoyer à Pub/Sub. Exemple :state=\"ACTIVE\"
.
Go
Java
Node.js
Python
Les notifications sont maintenant publiées sur le thème Pub/Sub que vous avez spécifié.
Pour publier des notifications, un compte de service de la forme service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
est créé pour vous.
Ce compte de service est créé lorsque vous créez votre premier objet NotificationConfig
et se voit automatiquement attribuer le rôle securitycenter.notificationServiceAgent
sur la stratégie IAM pour PUBSUB_TOPIC lors de la création de la configuration de notification. Ce rôle de compte de service est requis pour que les notifications fonctionnent.
Obtenir un objet NotificationConfig
Pour obtenir un objet NotificationConfig
, vous devez disposer d'un rôle IAM qui inclut l'autorisation securitycenter.notification.get
.
gcloud
gcloud scc notifications describe NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
Remplacez les éléments suivants :
NOTIFICATION_NAME
: nom de la configuration des notifications.PARENT_TYPE
: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de la ressource parente.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel obtenirNotificationConfig
. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.
Mettre à jour un objet
Pour mettre à jour un objet NotificationConfig
, vous devez disposer d'un rôle IAM qui inclut l'autorisation securitycenter.notification.update
.
Lorsque vous effectuez une mise à jour à l'aide d'un masque de champ, seuls les champs que vous spécifiez sont mis à jour. Si vous n'utilisez pas de masque de champ, tous les champs modifiables de l'objet NotificationConfig
sont remplacés par les nouvelles valeurs. Vous pouvez mettre à jour le sujet et la description Pub/Sub à l'aide d'un masque de champ.
Pour suivre cet exemple, vous devez être abonné au nouveau sujet et votre compte de service de notifications doit disposer de l'autorisation pubsub.topics.setIamPolicy
sur le sujet.
Une fois que vous avez accordé les autorisations nécessaires, mettez à jour la description NotificationConfig
et le sujet Pub/Sub et filtrez dans la langue de votre choix:
gcloud
gcloud scc notifications update NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Remplacez les éléments suivants :
NOTIFICATION_NAME
: nom de la configuration des notifications.PARENT_TYPE
: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de la ressource parente.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel mettre à jourNotificationConfig
. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.NOTIFICATION_DESCRIPTION
: description de la notification (1 024 caractères maximum).PUBSUB_TOPIC
: sujet Pub/Sub qui recevra les notifications. Son format estprojects/PROJECT_ID/topics/TOPIC
.FILTER
: expression que vous définissez pour sélectionner les résultats à envoyer à Pub/Sub. Exemple :state="ACTIVE"
.
Supprimer un objet NotificationConfig
Pour supprimer un objet NotificationConfig
, vous devez disposer d'un rôle IAM qui inclut l'autorisation securitycenter.notification.delete
.
Lorsque vous supprimez un objet NotificationConfig
, le rôle securitycenter.notificationServiceAgent
reste dans le sujet Pub/Sub. Si vous n'utilisez pas le thème Pub/Sub dans un autre objet NotificationConfig
, supprimez le rôle du thème. Pour plus d'informations, consultez la section Contrôle des accès.
Supprimez un objet NotificationConfig
en utilisant la langue de votre choix :
gcloud
gcloud scc notifications delete NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
Remplacez les éléments suivants :
NOTIFICATION_NAME
: nom de la configuration des notifications.PARENT_TYPE
: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization
,folder
ouproject
.PARENT_ID
: ID numérique de la ressource parente.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel supprimer leNotificationConfig
. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.
Répertorier les objets NotificationConfig
Pour répertorier des objets NotificationConfigs
, vous devez disposer d'un rôle IAM incluant l'autorisation securitycenter.notification.list
.
Toutes les listes de l'API Security Command Center sont paginées. Chaque réponse renvoie une page de résultats et un jeton pour renvoyer la page suivante. La valeur pageSize
par défaut est 10. Vous pouvez configurer la taille des pages sur un minimum de 1, et un maximum de 1 000.
Répertoriez les objets NotificationConfigs
dans la langue de votre choix :
gcloud
gcloud scc notifications list PARENT_TYPE/PARENT_ID \ --location=LOCATION
Remplacez les éléments suivants :
PARENT_TYPE
: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganizations
,folders
ouprojects
.PARENT_ID
: ID numérique de la ressource parente.LOCATION
: si la résidence des données est activée, l'emplacement Security Command Center dans lequel lister les ressourcesNotificationConfig
. Si la résidence des données n'est pas activée, utilisez la valeurglobal
.
Recevoir des notifications Pub/Sub
Cette section fournit un exemple de message de notification et des exemples qui montrent comment convertir un message Pub/Sub en un message NotificationMessage
contenant un résultat.
Les notifications sont publiées dans Pub/Sub au format JSON
.
Voici un exemple de message de notification :
{
"notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/CONFIG_ID",
"finding": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
"parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
"state": "ACTIVE",
"category": "TEST-CATEGORY",
"securityMarks": {
"name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
},
"eventTime": "2019-07-26T07:32:37Z",
"createTime": "2019-07-29T18:45:27.243Z"
}
}
Convertissez un message Pub/Sub en un message NotificationMessage
dans la langue de votre choix :
gcloud
gcloud CLI ne permet pas de convertir un message Pub/Sub en un message NotificationMessage
. Vous pouvez utiliser gcloud CLI pour obtenir un NotificationMessage
et imprimer le JSON
directement dans votre terminal :
# The subscription used to receive published messages from a topic
PUBSUB_SUBSCRIPTION="projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
gcloud pubsub subscriptions pull $PUBSUB_SUBSCRIPTION
Remplacez les éléments suivants :
- PROJECT_ID par votre ID de projet
- SUBSCRIPTION_ID par votre ID d'abonnement
Go
Étape suivante
- Découvrez le filtrage des notifications.