Cette page explique comment activer les notifications de l'API Security Command Center.
Les notifications envoient des résultats et des mises à jour de résultats à un sujet Pub/Sub en quelques minutes. Les notifications de l'API Security Command Center incluent toutes les informations sur les résultats affichées par Security Command Center dans la consoleGoogle Cloud .
Vous pouvez directement associer des notifications Security Command Center dans Pub/Sub aux actions Cloud Run Functions. Pour obtenir des exemples de fonctions capables de réponse, d'enrichissement et de résolution, consultez le dépôt Open Source Security Command Center contenant le code Cloud Run Functions. Le dépôt contient des solutions permettant d'effectuer des actions automatisées sur les résultats de sécurité.
Vous pouvez également exporter les résultats vers BigQuery ou configurer les exportations continues pour Pub/Sub dans la console Google Cloud .
Avant de commencer
-
Pour obtenir les autorisations nécessaires pour configurer les notifications de l'API Security Command Center, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Administrateur du centre de sécurité (
roles/securitycenter.admin
) sur l'organisation ou le projet dans lequel Security Command Center est activé -
Administrateur IAM du projet (
roles/resourcemanager.projectIamAdmin
) sur le projet dans lequel vous allez créer votre sujet Pub/Sub
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
Administrateur du centre de sécurité (
-
Enable the Security Command Center API:
gcloud services enable securitycenter.googleapis.com
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 dans le 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 de Security Command Center.
Configurer un sujet Pub/Sub
Dans cette tâche, vous allez créer et vous abonner au sujet Pub/Sub auquel vous souhaitez envoyer des notifications.
Étape 1 : Configurer Pub/Sub
Pour configurer un sujet Pub/Sub et vous y abonner, procédez comme suit :
Accédez à la console Google Cloud .
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Facultatif : Pour créer un sujet Pub/Sub, exécutez la commande suivante :
gcloud pubsub topics create TOPIC_ID
Remplacez
TOPIC_ID
par un nom de sujet.Créez un abonnement associé au sujet :
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Remplacez les éléments suivants :
SUBSCRIPTION_ID
: ID de l'abonnementTOPIC_ID
: ID du thème
Pour en savoir plus sur la configuration de Pub/Sub, consultez la page Gérer les sujets et les abonnements.
Étape 2 : Attribuer un rôle sur le sujet Pub/Sub
Pour créer un NotificationConfig
, vous devez disposer du rôle Administrateur Pub/Sub (roles/pubsub.admin
) sur le sujet Pub/Sub pour lequel vous avez créé un abonnement.
Pour attribuer ce rôle, procédez comme suit :
Accédez à la console Google Cloud .
Sélectionnez le projet pour lequel vous avez activé l'API Security Command Center.
Cliquez sur Activer Cloud Shell.
Attribuez le rôle requis à votre compte Google sur le sujet Pub/Sub :
gcloud pubsub topics add-iam-policy-binding \ projects/PUBSUB_PROJECT/topics/TOPIC_ID \ --member="user:GOOGLE_ACCOUNT" \ --role="roles/pubsub.admin"
Remplacez les éléments suivants :
PUBSUB_PROJECT
: Google Cloud projet contenant votre sujet Pub/SubTOPIC_ID
: ID du thèmeGOOGLE_ACCOUNT
: adresse e-mail de votre compte Google
Créer un paramètre NotificationConfig
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 NotificationConfig
ultérieurement, vous devez inclure l'ID numérique de l'organisation, du dossier ou du projet parent lorsque vous le référencez.
Dans la console Google Cloud , certaines ressources NotificationConfig
peuvent comporter le libellé Ancien, 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 , 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 gcloud CLI, vous ne devez pas spécifier d'emplacement lorsque vous exécutez la commande gcloud CLI.
Pour créer l'objet 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 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
,folder
ouproject
).PARENT_ID
: ID de l'organisation, du dossier ou du projet parent, spécifié au formatorganizations/123
,folders/456
ouprojects/789
.LOCATION
: emplacement Security Command Center dans lequel se trouve le ; si la résidence des données est activée, utilisezeu
,ksa
ouus
. 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\"
.
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 premier NotificationConfig
et se voit automatiquement attribuer le rôle securitycenter.notificationServiceAgent
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 que les notifications fonctionnent.
Accorder l'accès à un périmètre dans VPC Service Controls
Si vous utilisez VPC Service Controls et que votre sujet Pub/Sub fait partie d'un projet dans un périmètre de service, vous devez accorder l'accès aux projets afin de créer des notifications.
Pour accorder l'accès aux projets, créez des règles d'entrée et de sortie pour les principaux et les projets utilisés pour créer des notifications. Les règles autorisent l'accès aux ressources protégées et permettent à Pub/Sub de vérifier que les utilisateurs disposent de l'autorisation setIamPolicy
sur le sujet Pub/Sub.
Créer un objet NotificationConfig
Avant de suivre les étapes de la section Créer un objet NotificationConfig, procédez comme suit.
Console
-
Dans la console Google Cloud , accédez à la page VPC Service Controls.
- Sélectionnez votre organisation ou votre projet.
- Si vous avez sélectionné une organisation, cliquez sur Sélectionner une règle d'accès, puis sélectionnez la règle d'accès associée au périmètre que vous souhaitez modifier.
-
Cliquez sur le nom du périmètre que vous souhaitez mettre à jour.
Pour trouver le périmètre de service que vous devez modifier, vous pouvez rechercher dans vos journaux les entrées indiquant des cas de non-respect de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dans ces entrées, vérifiez le champservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- Cliquez sur Modifier le périmètre.
- Cliquez sur Règle de sortie.
- Cliquez sur Ajouter une règle de sortie.
-
Dans la section DE, définissez les détails suivants :
- Pour Identité, sélectionnez Sélectionner des identités et des groupes.
- Cliquez sur Ajouter des identités.
-
Saisissez l'adresse e-mail du principal utilisé pour appeler l'API Security Command Center.
- Sélectionnez le compte principal ou appuyez sur ENTRÉE, puis cliquez sur Ajouter des identités.
-
Dans la section TO, définissez les détails suivants :
- Pour Projet, sélectionnez Tous les projets.
- Pour Opérations ou rôles IAM, sélectionnez Sélectionner des opérations.
-
Cliquez sur Ajouter des opérations, puis ajoutez les opérations suivantes :
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Tous les modes.
- Cliquez sur Ajouter toutes les méthodes.
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Règle d'entrée.
- Cliquez sur Ajouter une règle d'entrée.
-
Dans la section DE, définissez les détails suivants :
- Pour Identité, sélectionnez Sélectionner des identités et des groupes.
- Cliquez sur Ajouter des identités.
-
Saisissez l'adresse e-mail du principal utilisé pour appeler l'API Security Command Center.
- Sélectionnez le compte principal ou appuyez sur ENTRÉE, puis cliquez sur Ajouter des identités.
- Pour Sources, sélectionnez Toutes les sources.
-
Dans la section TO, définissez les détails suivants :
- Pour Projet, sélectionnez Sélectionner des projets.
- Cliquez sur Ajouter des projets, puis ajoutez le projet contenant le sujet Pub/Sub.
- Pour Opérations ou rôles IAM, sélectionnez Sélectionner des opérations.
-
Cliquez sur Ajouter des opérations, puis ajoutez les opérations suivantes :
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Tous les modes.
- Cliquez sur Ajouter toutes les méthodes.
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Enregistrer.
gcloud
-
Si aucun projet de quota n'est défini, définissez-en un. Choisissez un projet dans lequel l'API Access Context Manager est activée.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Remplacez
QUOTA_PROJECT_ID
par l'ID du projet que vous souhaitez utiliser pour la facturation et le quota. -
Créez un fichier nommé
egress-rule.yaml
avec le contenu suivant :- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Remplacez
PRINCIPAL_ADDRESS
par l'adresse du compte principal utilisé pour appeler l'API Security Command Center. -
Créez un fichier nommé
ingress-rule.yaml
avec le contenu suivant :- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Remplacez
PRINCIPAL_ADDRESS
par l'adresse du compte principal utilisé pour appeler l'API Security Command Center. -
Ajoutez la règle de sortie au périmètre :
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
Remplacez les éléments suivants :
-
PERIMETER_NAME
: nom du périmètre. Par exemple,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Pour trouver le périmètre de service que vous devez modifier, vous pouvez rechercher dans vos journaux les entrées indiquant des cas de non-respect de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dans ces entrées, vérifiez le champservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
Ajoutez la règle d'entrée au périmètre :
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Remplacez les éléments suivants :
-
PERIMETER_NAME
: nom du périmètre. Par exemple,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Pour trouver le périmètre de service que vous devez modifier, vous pouvez rechercher dans vos journaux les entrées indiquant des cas de non-respect de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dans ces entrées, vérifiez le champservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Pour en savoir plus, consultez Règles d'entrée et de sortie.
Créer une règle d'entrée pour l'objet NotificationConfig
Pour créer une règle d'entrée pour un NotificationConfig
, suivez les instructions de la section Créer un objet NotificationConfig, puis procédez comme suit.
Console
-
Ouvrez à nouveau le périmètre de service de la section précédente.
- Cliquez sur Règle d'entrée.
- Cliquez sur Ajouter une règle d'entrée.
-
Dans la section DE, définissez les détails suivants :
- Pour Identité, sélectionnez Sélectionner des identités et des groupes.
- Cliquez sur Ajouter des identités.
-
Saisissez l'adresse e-mail de l'agent de service
NotificationConfig
. L'adresse de l'agent de service est au format suivant :service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
Remplacez
ORGANIZATION_ID
par votre ID d'organisation. - Sélectionnez l'agent de service ou appuyez sur ENTRÉE, puis cliquez sur Ajouter des identités.
- Pour Sources, sélectionnez Toutes les sources.
-
Dans la section TO, définissez les détails suivants :
- Pour Projet, sélectionnez Sélectionner des projets.
- Cliquez sur Ajouter des projets, puis ajoutez le projet contenant le sujet Pub/Sub.
- Pour Opérations ou rôles IAM, sélectionnez Sélectionner des opérations.
-
Cliquez sur Ajouter des opérations, puis ajoutez les opérations suivantes :
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Tous les modes.
- Cliquez sur Ajouter toutes les méthodes.
- Ajoutez le service pubsub.googleapis.com.
- Cliquez sur Enregistrer.
gcloud
-
Si aucun projet de quota n'est défini, définissez-en un. Choisissez un projet dans lequel l'API Access Context Manager est activée.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Remplacez
QUOTA_PROJECT_ID
par l'ID du projet que vous souhaitez utiliser pour la facturation et le quota. -
Créez un fichier nommé
ingress-rule.yaml
avec le contenu suivant :- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Remplacez
ORGANIZATION_ID
par votre ID d'organisation. -
Ajoutez la règle d'entrée au périmètre :
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Remplacez les éléments suivants :
-
PERIMETER_NAME
: nom du périmètre. Par exemple,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Pour trouver le périmètre de service que vous devez modifier, vous pouvez rechercher dans vos journaux les entrées indiquant des cas de non-respect de
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dans ces entrées, vérifiez le champservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Pour en savoir plus, consultez Règles d'entrée et de sortie.
Les projets, utilisateurs et comptes de service sélectionnés peuvent désormais accéder aux ressources protégées et créer des notifications.
Si vous avez suivi toutes les étapes de ce guide et que les notifications fonctionnent correctement, vous pouvez maintenant supprimer les éléments suivants :
- Règle d'entrée pour le compte principal
- Règle de sortie pour le compte principal
Ces règles n'étaient nécessaires que pour configurer l'objet NotificationConfig
. Toutefois, pour que les notifications continuent de fonctionner, vous devez conserver la règle d'entrée pour NotificationConfig
qui permet de publier des notifications dans votre sujet Pub/Sub derrière le périmètre de service.
Étapes suivantes
- Découvrez comment activer les notifications par e-mail et de chat en temps réel.
- Découvrez comment gérer l'API de notifications.
- Découvrez comment filtrer les notifications.