Créer une instance Secure Source Manager à utiliser avec des identités fédérées

Ce document explique comment créer une instance Secure Source Manager à l'aide de la fédération d'identité des employés pour l'utiliser avec un fournisseur d'identité (IdP) externe.

Pour en savoir plus sur la fédération des identités des employés, consultez Fédération des identités des employés.

Pour en savoir plus sur les limites de la fédération d'identité de personnel dans Secure Source Manager, consultez Fédération d'identité : produits et limites.

Secure Source Manager est un service à locataire unique. Une seule instance Secure Source Manager ne doit inclure que les utilisateurs d'un seul clientGoogle Cloud , sauf si plusieurs entreprises ayant une relation contractuelle doivent utiliser une seule instance pour collaborer.

Si vous travaillez avec plusieurs entreprises et que vous souhaitez collaborer avec elles sur le code source, nous vous recommandons de créer une instance distincte pour chacune d'elles.

Avant de commencer

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  6. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

  10. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  11. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  12. Installez le composant beta de Google Cloud CLI :
    gcloud components install beta
  13. Chiffrement des données

    Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide deGoogle-owned and Google-managed encryption keys. Si vous avez des exigences réglementaires ou de conformité spécifiques concernant les clés qui protègent vos données, vous pouvez créer des instances Secure Source Manager chiffrées avec des clés de chiffrement gérées par le client (CMEK).

    N'enregistrez pas de données sensibles dans les ID d'instance ni dans les paires clé/valeur de libellé, car elles ne sont pas chiffrées avec CMEK.

    Si vous créez votre première instance Secure Source Manager dans votre projet, vous devez créer manuellement l'agent de service Secure Source Manager en exécutant la commande suivante :

    gcloud beta services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    PROJECT_ID est l'ID du projet dans lequel vous allez créer votre instance Secure Source Manager.

    Après avoir créé le compte de service par produit et par projet (P4SA), vous devez attribuer le rôle Agent de service Secure Source Manager (roles/securesourcemanager.serviceAgent) au principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, sinon la création de l'instance échouera.

    Configurer la fédération d'identité de personnel

    Avant de créer une instance, vous devez configurer un pool et un fournisseur de fédération d'identité de personnel.

    1. Créez un pool de fédération d'identité de personnel.

    2. Configurez votre fournisseur de pools d'identités des employés avec les mappages d'attributs suivants :

      • google.subject
      • google.email

    Créer une instance

    Avant d'exécuter la commande, effectuez les remplacements suivants :

    • INSTANCE_ID : nom de l'instance que vous souhaitez créer.
    • LOCATION : région dans laquelle vous souhaitez créer l'instance. Pour en savoir plus sur les emplacements acceptés, consultez la page Emplacements.
    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer une instance.

    Exécutez la commande suivante :

    curl \
        -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
        -H "Content-Type: application/json" \
        -d "{workforce_identity_federation_config: {enabled: true}}"
    
    

    Une opération de longue durée de création d'instance démarre. La sortie ressemble à ceci :

    {
    "name": "OPERATION_NAME",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
      "createTime": "2022-11-01T14:31:32.420469714Z",
      "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
    }
    

    Cet exemple de résultat inclut les valeurs suivantes :

    • OPERATION_NAME : nom de l'opération, par exemple, projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.
    • PROJECT_ID : projet Google Cloud .
    • LOCATION : région où se trouve l'instance.

    Notez le OPERATION_NAME, car vous en aurez besoin pour vérifier l'état de l'opération.

    La création de l'instance peut prendre jusqu'à 60 minutes.

    Vérifier l'état de l'opération de création

    Avant d'utiliser les données de requête, effectuez les remplacements suivants :

    • OPERATION_NAME : nom de l'opération issu de la réponse à votre commande de création.

    Méthode HTTP et URL :

    GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME

    Pour envoyer votre requête, développez l'une des options suivantes :

    Une fois l'instance prête, la réponse ressemble à ce qui suit :

      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2024-10-28T15:37:39.009812863Z",
        "endTime": "2024-10-28T16:10:58.416640259Z",
        "target": "projects/my-project/locations/us-central1/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/my-instance",
        "createTime": "2024-10-28T15:37:39.004550840Z",
        "updateTime": "2024-10-28T15:37:39.867857246Z",
        "state": "ACTIVE",
        "hostConfig": {
          "html": "my-instance-326202322590.us-central1.sourcemanager.dev",
          "api": "my-instance-326202322590-api.us-central1.sourcemanager.dev",
          "gitHttp": "my-instance-326202322590-git.us-central1.sourcemanager.dev",
          "gitSsh": "my-instance-326202322590-ssh.us-central1.sourcemanager.dev"
        },
        "workforceIdentityFederationConfig": {
          "enabled": true
        }
      }
    

    my-instance-098765432109.us-central1.sourcemanager.dev correspond à l'URL HTML de l'instance.

    Copiez l'URL HTML à partir de la réponse de vérification d'état créée. Vous aurez besoin de cette URL pour accéder à l'instance via son interface Web.

    Accéder à l'instance

    Une fois l'instance créée, vous pouvez y accéder via son interface Web à l'aide d'un navigateur.

    1. Pour accéder à l'instance Secure Source Manager via son interface Web, copiez l'URL suivante dans la barre d'adresse de votre navigateur.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Remplacez les éléments suivants :

      • Remplacez INSTANCE_ID par le nom de l'instance.
      • PROJECT_NUMBER par le numéro de projet Google Cloudde l'instance. Pour savoir comment identifier des projets, consultez Identifier des projets.
      • LOCATION par la région de l'instance.

      Un écran OAuth s'affiche et vous demande le nom de votre fournisseur.

    2. Saisissez le nom de votre fournisseur d'identité de personnel au format suivant :

      locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
      

      Remplacez les éléments suivants :

      • POOL_ID avec l'ID de votre pool de fédération d'identité de personnel.
      • PROVIDER_ID par l'ID de votre fournisseur de fédération des identités des employés.

      Pour en savoir plus sur les pools et les fournisseurs de fédération des identités des employés, consultez Gérer les pools et les fournisseurs de fédération des identités des employés.

      Vous êtes invité à vous connecter à l'aide de vos identifiants de fournisseur.

    3. Connectez-vous avec vos identifiants de fournisseur.

    4. L'interface Web Secure Source Manager s'ouvre. Vous pouvez créer et afficher des dépôts, ainsi que tous les problèmes et demandes d'extraction associés, à partir de l'interface Web.

      Vous devez vous reconnecter via l'interface Web une fois la durée de session définie dans votre pool de fédération des identités des employés expirée.

    Créer votre configuration de connexion gcloud CLI

    Pour vous authentifier auprès de votre instance Secure Source Manager avec vos identifiants de pool d'identités des employés à l'aide de commandes gcloud CLI ou Git, vous devez créer une configuration de connexion avec votre pool d'identités des employés.

    Pour créer une configuration de connexion à un pool d'identités de personnel, suivez les instructions de la section Obtenir des jetons de courte durée pour la fédération d'identité de personnel afin de créer une connexion basée sur le navigateur avec gcloud CLI.

    Une fois que vous vous êtes authentifié, vous pouvez utiliser les commandes Git pour interagir avec votre instance Secure Source Manager. Pour commencer à utiliser Git, suivez les instructions de la section Utiliser la gestion du code source Git.

    Étapes suivantes