Intégrer Secret Manager à Google SecOps

Ce document explique comment intégrer Secret Manager à Google Security Operations.

Cas d'utilisation

L'intégration de Secret Manager utilise les fonctionnalités de Google SecOps pour prendre en charge les cas d'utilisation suivants :

  • Centralisez la gestion des identifiants : éliminez les identifiants d'application codés en dur intégrés dans vos fichiers de configuration et scripts Google SecOps en les stockant, en les auditant et en les gérant de manière centralisée dans Google Cloud.
  • Synchroniser les paramètres : automatisez la gestion de configuration à l'aide d'un job de synchronisation en arrière-plan pour récupérer les entrées de Google Cloud Secret Manager et mettre à jour les instances d'intégration, les connecteurs et les jobs.

Avant de commencer

Avant de configurer l'intégration dans la plate-forme Google SecOps, vérifiez que vous avez configuré votre environnement en procédant comme suit :

  1. Créez un compte de service.
  2. Activez les API requises pour votre projet.
  3. Choisissez et configurez l'une des méthodes d'authentification suivantes :
    • Option 1 : Clé JSON : cette méthode repose sur un fichier de clé secrète statique et de longue durée. N'utilisez cette méthode que si Workload Identity n'est pas disponible dans votre environnement.
    • Option 2 : Workload Identity (recommandé) : cette méthode utilise des jetons d'accès temporaires de courte durée en empruntant l'identité d'un compte de service, ce qui élimine le besoin de stocker des secrets.

Créer un compte de service

Pour créer un compte de service pour l'intégration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez votre projet.

    Accéder à la page "Comptes de service"

  2. Cliquez sur Créer un compte de service.

  3. Indiquez un nom et une description, puis cliquez sur OK pour créer le compte.

  4. Accordez les autorisations IAM requises au compte de service en fonction de la méthode d'authentification choisie :

    • Pour l'authentification par clé de compte de service, attribuez les rôles suivants :
      • Accesseur de secrets Secret Manager (roles/secretmanager.secretAccessor) : permet à l'intégration d'accéder aux charges utiles des secrets.
      • Lecteur Secret Manager (roles/secretmanager.viewer) : *fournit l'autorisation secretmanager.secrets.list requise pour l'action Ping afin de tester la connectivité*.
    • Pour l'authentification Workload Identity :
      • Attribuez au compte de service cible dont l'identité est empruntée les rôles Accesseur de secrets Secret Manager (roles/secretmanager.secretAccessor) et Lecteur Secret Manager (roles/secretmanager.viewer).
      • Assurez-vous que l'identité de votre environnement d'exécution dispose du rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator).

Activer les API requises pour votre projet

  1. Dans la console Google Cloud , accédez à API et services.

    Accéder aux API et services

  2. Cliquez sur Activer les API et les services.

  3. Recherchez et activez l'API Secret Manager pour votre projet.

Configurer une clé JSON

Vous pouvez authentifier l'intégration à l'aide d'un fichier de clé JSON statique ou d'une Workload Identity. Pour maximiser la sécurité de votre environnement, utilisez la méthode Workload Identity. N'utilisez la méthode de clé JSON que si Workload Identity n'est pas compatible avec votre infrastructure, car les clés statiques nécessitent une rotation manuelle et augmentent les risques d'exposition des identifiants.

Pour générer le fichier de clé JSON requis pour authentifier l'intégration, procédez comme suit :

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service, puis sélectionnez le compte de service que vous avez créé.

    Accéder à la page "Comptes de service"

  2. Accédez à l'onglet Clés.

  3. Cliquez sur Ajouter une clé.

  4. Sélectionnez Créer une clé.

  5. Pour le type de clé, sélectionnez JSON, puis cliquez sur Créer. Le fichier JSON est téléchargé sur votre ordinateur.

  6. Copiez l'intégralité du contenu de ce fichier et collez-le dans Service Account JSON lors de la configuration de l'intégration.

Configurer les autorisations Secret Manager

Suivez la procédure ci-dessous pour accorder les droits d'administrateur requis par l'intégration pour accéder aux secrets et valider la connectivité dans votre projet Google Cloud  :

  1. Dans la console Google Cloud , accédez à IAM et administration > IAM.
  2. Recherchez le compte de service que vous avez créé dans la liste des comptes principaux, puis cliquez sur Modifier Modifier le compte principal.
  3. Cliquez sur Ajouter un autre rôle.
  4. Dans le champ de sélection du rôle, recherchez et sélectionnez les rôles suivants :
  5. Cliquez sur Enregistrer.

Configurer les identifiants Workload Identity

Choisissez cette méthode ou la méthode de clé JSON pour authentifier l'intégration. Workload Identity est l'approche recommandée et la plus sécurisée, car elle utilise des jetons d'accès temporaires de courte durée en empruntant l'identité d'un compte de service, ce qui réduit les risques d'exposition des identifiants secrets de longue durée.

Identifier l'identité unique de l'instance

Pour utiliser Workload Identity, vous devez autoriser votre instance Google SecOps à emprunter l'identité de votre compte de service. Cette étape permet à l'instance d'accéder de manière sécurisée aux ressources Google Cloud .

  1. Dans Google SecOps, accédez à Content Hub > Intégrations de réponse.

  2. Sélectionnez l'intégration que vous configurez, puis saisissez l'adresse e-mail de votre compte de service dans Workload Identity Email.

  3. Cliquez sur Enregistrer > Tester. Le test devrait échouer.

  4. Cliquez sur close_small à droite de Test et recherchez dans le message d'erreur l'adresse e-mail d'identité commençant par gke-init-python@... ou soar-python@....

  5. Copiez cette adresse e-mail unique.

Autoriser l'identité de l'instance dans Google Cloud

Une fois que vous avez récupéré l'identité unique de votre instance Google SecOps, vous devez l'autoriser à accéder à vos ressources Google Cloud . Cette étape permet d'emprunter l'identité d'un compte de service, ce qui permet à la plate-forme de générer des jetons éphémères et d'agir en votre nom sans avoir besoin de clés statiques.

  1. Dans la console Google Cloud , accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Sélectionnez le compte de service cible, puis accédez à Autorisations > Accorder l'accès.

  3. Collez l'adresse e-mail unique dans le champ Nouveaux comptes principaux et attribuez le rôle Créateur de jetons du compte de service (roles/iam.serviceAccountTokenCreator).

Paramètres d'intégration

L'intégration de Secret Manager nécessite les paramètres de configuration suivants :

Paramètre Description
Service Account JSON

Facultatif.

Contenu du fichier JSON de clé du compte de service utilisé pour s'authentifier auprès de Secret Manager.

Vous pouvez configurer ce paramètre ou Adresse e-mail Workload Identity.

Project ID

Facultatif.

ID du projet Google Cloud dans lequel vos secrets sont stockés.

Si aucune valeur n'est fournie, l'intégration tente de la déduire de Service Account JSON, si elle est présente, bien qu'il soit recommandé de la spécifier explicitement.

Workload Identity Email

Facultatif.

Adresse e-mail du compte de service dont l'identité doit être empruntée lors de l'authentification à l'aide de Workload Identity (Identifiants par défaut de l'application).

Utilisez cette configuration au lieu de Service Account JSON lorsque la plate-forme Google SecOps ou l'agent distant s'exécute dans Google Cloud avec Workload Identity activé.

Verify SSL

Obligatoire.

Si cette option est sélectionnée, l'intégration valide le certificat SSL lors de l'établissement d'une connexion à Secret Manager.

Activé par défaut (True).

Pour savoir comment configurer une intégration dans Google SecOps, consultez Configurer des intégrations.

Vous pourrez apporter des modifications ultérieurement si nécessaire. Après avoir configuré une instance d'intégration, vous pouvez l'utiliser dans des playbooks. Pour en savoir plus sur la configuration et la prise en charge de plusieurs instances, consultez Prendre en charge plusieurs instances.

Actions

Pour en savoir plus sur les actions, consultez Répondre aux actions en attente depuis votre bureau et Exécuter une action manuelle dans votre demande.

Ping

Utilisez l'action Ping pour valider la connectivité et vérifier les paramètres de configuration par rapport à l'instance Secret Manager cible.

Cette action est principalement utilisée pour tester immédiatement la connexion depuis la page de configuration de l'intégration dans Content Hub. Elle ne s'exécute pas sur des entités Google Cloud individuelles.

Entrées de l'action

Aucun paramètre d'entrée n'est requis pour cette action.

Sorties de l'action

L'action Ping fournit les résultats suivants :

Type de sortie de l'action Disponibilité
Pièce jointe du mur des cas Non disponible
Lien vers le mur des cas Non disponible
Tableau du mur des cas Non disponible
Table d'enrichissement Non disponible
Résultat JSON Non disponible
Messages de sortie Disponible
Résultat du script Disponible
Messages de sortie

L'action Ping peut renvoyer les messages de sortie suivants :

Message de sortie Description du message

Successfully connected to the Secret Manager server with the provided connection parameters!

L'action a réussi et les identifiants sont valides.
Failed to connect to Secret Manager! Error is ERROR_REASON

Échec de l'action.

Vérifiez vos identifiants d'authentification, la configuration de l'ID de projet, les autorisations IAM ou la connectivité réseau. Vérifiez que le compte de service dispose de l'autorisation secretmanager.secrets.list (par exemple, en utilisant le rôle Lecteur Secret Manager).

Résultat du script

Le tableau suivant liste les valeurs de sortie du résultat du script lors de l'utilisation de l'action Ping :

Nom du résultat du script Valeur
is_success true ou false

Jobs

Pour en savoir plus sur les jobs, consultez Configurer un nouveau job et Planification avancée.

Tâche de synchronisation des identifiants d'intégration

Utilisez le job Secret Manager - Synchroniser les identifiants d'intégration pour synchroniser systématiquement les paramètres de configuration des entrées Secret Manager afin de mettre à jour automatiquement vos instances d'intégration de plate-forme, vos connecteurs et vos configurations de jobs en arrière-plan.

Cette tâche de synchronisation en arrière-plan s'exécute de manière globale et non sur des entités individuelles.

Comportement des jobs

Le job analyse un objet de configuration structuré pour interroger les définitions de secrets, en gérant deux styles de référence de version :

  • Notation implicite : format projects/<project_id>/secrets/<secret_name>. La tâche de synchronisation résout et récupère de manière dynamique la dernière version active à partir de Secret Manager pendant le traitement.
  • Notation explicite : format projects/<project_id>/secrets/<secret_name>/versions/<version_id>. La tâche de synchronisation récupère l'entrée exacte de la version épinglée, même si son état est marqué comme inactif dans Google Cloud.

Chaque chemin d'accès au secret ciblé dans Secret Manager doit contenir une chaîne d'objet JSON valide qui mappe directement les clés de paramètre à leurs valeurs d'identifiants respectives.

Exemple de configuration de mappage d'identifiants
{
    "integration_instances": {
        "AzureActiveDirectory_1": {
            "Client ID": "projects/154371241292/secrets/AzureActiveDirectory"
        }
    },
    "connectors": {
        "Crowdstrike - Alerts Connector": {
            "Client Secret": "projects/154371241292/secrets/CrowdstrikeConnectorSecret",
            "Client ID": "projects/154371241292/secrets/CrowdstrikeConnectorID"
        },
        "Microsoft Graph Mail Connector": {
            "Client Secret": "projects/154371241292/secrets/GraphConnectorSecret",
            "Client ID": "projects/154371241292/secrets/GraphConnectorID/versions/3"
        }
    },
    "jobs": {
        "Sync Incidents": {
            "API Root": "projects/154371241292/secrets/API_Root/versions/2"
        }
    }
}

Entrées de job

Le job de synchronisation des identifiants d'intégration nécessite les paramètres de configuration suivants :

Paramètre Description
Environment Name

Obligatoire.

Nom du contexte d'environnement dans lequel interroger les configurations cibles.

La valeur par défaut est Default Environment. Pour les configurations ciblant des environnements partagés, indiquez *.

Credential Mapping

Obligatoire.

Chaîne JSON valide structurant les emplacements cibles où les instances d'intégration, les connecteurs et les jobs sont mappés à leurs coordonnées de ressources Secret Manager explicites.

Service Account JSON

Facultatif.

Contenu JSON de la clé de compte de service dédié à l'autorisation de ce job de synchronisation en arrière-plan.

Project ID

Facultatif.

ID du projet par défaut Google Cloud hébergeant les ressources cibles.

Workload Identity Email

Facultatif.

Adresse e-mail du compte de service des identifiants par défaut de l'application dont l'identité doit être empruntée en cas d'exécution dans des infrastructures Google Cloud avec Workload Identity actif.

Verify SSL

Obligatoire.

Valide les points de terminaison des certificats SSL lors des tâches de synchronisation. Activé par défaut (True).

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.