Créer une instance Secure Source Manager

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.

Pour créer une instance avec VPC Service Controls activé, consultez Configurer Secure Source Manager dans un périmètre VPC Service Controls.

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 bêta de Google Cloud CLI :
    gcloud components install beta
  13. Rôles requis

    Pour obtenir les autorisations nécessaires pour créer une instance Secure Source Manager, demandez à votre administrateur de vous accorder le rôle IAM Propriétaire de l'instance Secure Source Manager (roles/securesourcemanager.instanceOwner) sur le projet Google Cloud .

    Les rôles Secure Source Manager n'apparaissent pas dans la console Google Cloud tant qu'ils n'ont pas été attribués à un compte principal. Pour attribuer un rôle Secure Source Manager pour la première fois, consultez Attribuer et révoquer des rôles IAM.

    Chiffrement des données

    Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de clés de chiffrement gérées par Google. 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 devrez 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.

    Créer une instance

    Pour créer une instance, procédez comme suit :

    CLI gcloud

    1. Exécutez la commande suivante pour créer une instance. Vous serez peut-être invité à vous authentifier auprès de la gcloud CLI.

      gcloud beta source-manager instances create INSTANCE_ID \
          --region=LOCATION \
          --project=PROJECT_ID \
          --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
      

      Où :

      • INSTANCE_ID est le nom de l'instance que vous souhaitez créer.
      • LOCATION est la 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 est l'ID du projet dans lequel vous souhaitez créer une instance.
      • -kms-key est une option facultative. Incluez cette option si vous souhaitez utiliser votre propre clé de chiffrement gérée par le client (CMEK) pour créer l'instance. Les clés CMEK doivent se trouver au même emplacement que celui où vous créez votre instance, mais elles peuvent se trouver dans un projet différent. Ne renseignez pas cette option si vous souhaitez utiliser le chiffrement par défaut de Google. Si vous souhaitez chiffrer vos données à l'aide de CMEK, remplacez les éléments suivants :
        • KEY_PROJECT par le projet dans lequel vous avez créé votre clé.
        • KEY_LOCATION par l'emplacement de la clé.
        • KEYRING_NAME par le nom de votre trousseau de clés.
        • KEY par le nom de votre clé.

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

      Create request issued for [my-instance].
      done: false
      metadata:
        '@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
        apiVersion: v1
        createTime: '2023-02-27T20:57:52.315609549Z'
        requestedCancellation: false
        target: projects/my-project/locations/us-central1/instances/my-instance
        verb: create
      name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
      

      projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e est le OPERATION_NAME.

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

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

    3. Vérifiez l'état de l'opération create en exécutant la commande suivante :

      gcloud beta source-manager operations describe OPERATION_NAME \
          --region=LOCATION
      

      Remplacez les éléments suivants :

      • OPERATION_NAME par le nom de l'opération à partir de la réponse de votre commande de création.
      • LOCATION par la région dans laquelle vous souhaitez créer l'instance. Pour en savoir plus sur les emplacements acceptés, consultez la page Emplacements.

      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": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

      test-098765432109.us-central1.sourcemanager.dev est l'URL HTML de l'instance.

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

    API

    1. Exécutez la commande suivante pour créer une instance. Vous serez peut-être invité à vous authentifier auprès de la gcloud CLI.

      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 '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
      
      

      Où :

      • INSTANCE_ID est le nom de l'instance que vous souhaitez créer.
      • LOCATION est la 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 est l'ID du projet dans lequel vous souhaitez créer une instance.
      • -d est un indicateur de données HTTP POST facultatif qui peut être utilisé pour spécifier une clé CMEK permettant de chiffrer votre instance. Ne renseignez pas cette option si vous souhaitez utiliser le chiffrement Google par défaut. Si vous souhaitez chiffrer vos données à l'aide de CMEK, remplacez les éléments suivants :
        • KEY_PROJECT par le projet dans lequel vous avez créé votre clé.
        • KEY_LOCATION par l'emplacement de la clé.
        • KEYRING_NAME par le nom de votre trousseau de clés.
        • KEY par le nom de votre clé.

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

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
      }
      

      projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e est le OPERATION_NAME.

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

    2. Copiez le OPERATION_NAME.

    3. Vérifiez l'état de l'opération de création en exécutant la commande suivante :

      curl \
          -X GET \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
      

      OPERATION_NAME est le nom de l'opération dans la réponse à votre commande de création.

      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": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

      test-098765432109.us-central1.sourcemanager.dev est l'URL HTML de l'instance.

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

    Accéder à une instance

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

    Pour créer des dépôts dans l'instance, vous devez disposer du rôle Créateur de dépôt (roles/securesourcemanager.repoCreator) dans le projet d'instance et du rôle Créateur de dépôt d'instance (roles/securesourcemanager.instanceRepositoryCreator) dans l'instance Secure Source Manager.

    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.

    2. Un écran OAuth s'affiche pour vous demander si vous souhaitez autoriser sourcemanager.dev à accéder à votre compte Google.

    3. Cliquez sur le bouton Autoriser.

    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.

    Étapes suivantes