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
Vous pouvez é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 de configuration des notifications de localisation.
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 lister
NotificationConfig: lecteur des configurations de notifications du centre de sécurité (roles/securitycenter.notificationConfigViewer) ou éditeur de configuration des 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 attribuer les rôles appropriés à un compte 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 dossier (
roles/resourcemanager.folderIamAdmin) - Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin)
Les rôles IAM pour Security Command Center peuvent être accordé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 des résultats dans 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 le bon emplacement 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. Elles 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 au nouvel emplacement.
Pour savoir comment utiliser Security Command Center lorsque la résidence des données est activée, consultez Points de terminaison régionaux Security Command Center.
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 compte 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 disposer d'un nombre limité de ressources 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 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.
Pour créer 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" \ --deletion-notifications-enabled
Remplacez les éléments suivants :
NOTIFICATION_NAME: nom de la notification. Doit comporter entre 1 et 128 caractères, et ne 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 s'applique la notification (organization,folderouproject).PARENT_ID: ID de l'organisation, du dossier ou du projet parent, spécifié au formatorganizations/123,folders/456ouprojects/789.LOCATION: emplacement Security Command Center dans lequel créer unNotificationConfig. Si la résidence des données est activée, utilisezeu,saouus. Sinon, 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\".
Utilisez les indicateurs suivants pour configurer la réception ou non de notifications pour les résultats supprimés. Par défaut, les résultats supprimés ne sont pas exportés.
--deletion-notifications-enabled: active les notifications pour les résultats supprimés en raison des règles de conservation des données. Si cette option est définie, des notifications sont déclenchées lorsqu'un résultat est supprimé. La notification inclut l'attributdeletedFindingdéfini surtrue.--no-deletion-notifications-enabled: désactive les notifications pour les résultats supprimés en raison des règles de conservation des données.
Terraform
Créez un NotificationConfig pour une organisation :
Créez un NotificationConfig pour un dossier :
Créez un NotificationConfig pour un projet :
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 première NotificationConfig. Le rôle securitycenter.notificationServiceAgent lui est automatiquement attribué dans 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 le bon fonctionnement des notifications.
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 de notification.PARENT_TYPE: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization,folderouproject.PARENT_ID: ID numérique de la ressource parente.LOCATION: emplacement Security Command Center dans lequel obtenir leNotificationConfig. Si la résidence des données est activée, utilisezeu,saouus. Sinon, 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, le sujet Pub/Sub et le filtre :
gcloud
gcloud scc notifications update NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER" \ --deletion-notifications-enabled
Remplacez les éléments suivants :
NOTIFICATION_NAME: nom de la configuration de notification.PARENT_TYPE: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization,folderouproject.PARENT_ID: ID numérique de la ressource parente.LOCATION: emplacement Security Command Center dans lequel mettre à jourNotificationConfig. Si la résidence des données est activée, utilisezeu,saouus. Sinon, 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".
Utilisez les indicateurs suivants pour configurer la réception ou non de notifications pour les résultats supprimés. Si vous ne spécifiez aucune de ces options, le comportement par défaut consiste à ne pas exporter les résultats supprimés.
--deletion-notifications-enabled: active les notifications pour les résultats supprimés en raison des règles de conservation. Lorsqu'ils sont activés, les résultats supprimés sont exportés vers Pub/Sub avecdeleted_finding = true. Ce signalement ne s'applique qu'aux futurs événements de suppression. Les résultats supprimés avant l'activation de cet indicateur ne sont pas exportés de manière rétroactive.--no-deletion-notifications-enabled: désactiver les notifications pour les résultats supprimés.
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.
gcloud
gcloud scc notifications delete NOTIFICATION_NAME \ --PARENT_TYPE=PARENT_ID \ --location=LOCATION
Remplacez les éléments suivants :
NOTIFICATION_NAME: nom de la configuration de notification.PARENT_TYPE: niveau de la hiérarchie des ressources où la configuration est spécifiée. Utilisezorganization,folderouproject.PARENT_ID: ID numérique de la ressource parente.LOCATION: emplacement Security Command Center dans lequel supprimerNotificationConfig. Si la résidence des données est activée, utilisezeu,saouus. Sinon, 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.
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,foldersouprojects.PARENT_ID: ID numérique de la ressource parente.LOCATION: emplacement Security Command Center dans lequel lister les ressourcesNotificationConfig. Si la résidence des données est activée, utilisezeu,saouus. Sinon, 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"
},
"deletedFinding": true
}
Security Command Center supprime régulièrement les résultats en fonction des règles de conservation des données. Vous pouvez configurer Security Command Center pour qu'il exporte ou non un instantané des résultats supprimés vers Pub/Sub.
Vous pouvez activer les notifications de suppression lorsque vous créez ou mettez à jour une configuration d'exportation. Lorsque les notifications de suppression sont activées dans la configuration d'exportation, Security Command Center envoie un instantané des résultats supprimés à Pub/Sub.
Le champ "deletedFinding": true de la charge utile est défini dans la notification. L'état du résultat avant sa suppression (par exemple, "state": "ACTIVE") est conservé dans la charge utile, et eventTime est défini sur l'heure à laquelle le résultat a été supprimé dans Security Command Center.
Lorsque vous modifiez l'option de notification de suppression dans une configuration d'exportation, la modification ne s'applique qu'aux futures suppressions de résultats. Les résultats supprimés avant l'activation de l'option ne sont pas exportés de manière rétroactive.
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 l'ID de votre projet.
- SUBSCRIPTION_ID par votre ID d'abonnement
Go
Étapes suivantes
- En savoir plus sur le filtrage des notifications