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 Google Cloud client, 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 chaque entreprise.

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. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Installez la 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Installez la 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

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 d'instance Secure Source Manager (roles/securesourcemanager.instanceOwner) sur le Google Cloud projet.

Les rôles Secure Source Manager n'apparaissent pas dans la Google Cloud console tant qu'ils n'ont pas été attribués à un 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 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.

Une fois que vous avez créé le compte de service par produit et par projet (P4SA), vous devez accorder 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 :

Gcloud CLI

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

    gcloud 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 l'ID permanent de l'instance. L'ID ne doit contenir que des lettres minuscules, des chiffres et des traits d'union. Il doit commencer par une lettre et ne peut pas être modifié après sa création.

    • LOCATION est la région dans laquelle vous souhaitez créer l'instance. Pour en savoir plus sur les régions compatibles, consultez la section Régions.

    • PROJECT_ID est l'ID du projet dans lequel vous souhaitez créer une instance.

    • -kms-key est une option facultative. Incluez-la 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 dans lequel vous créez votre instance, mais elles peuvent se trouver dans un autre projet. Omettez 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 se présente comme suit :

    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 prend jusqu'à 60 minutes.

  2. Notez le OPERATION_NAME, car vous devrez l'utiliser 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 source-manager operations describe OPERATION_NAME \
        --region=LOCATION
    

    Remplacez les éléments suivants :

    • OPERATION_NAME par le nom de l'opération dans 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 régions compatibles, consultez la section Régions.

    Une fois l'instance prête, la réponse se présente comme 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 avec succès. 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 devrez peut-être 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 l'ID permanent de l'instance. L'ID ne doit contenir que des lettres minuscules, des chiffres et des traits d'union. Il doit commencer par une lettre.

    • LOCATION est la région dans laquelle vous souhaitez créer l'instance. Pour en savoir plus sur les régions compatibles, consultez la section Régions.

    • PROJECT_ID est l'ID du projet dans lequel vous souhaitez créer une instance.

    • -d est une option de données HTTP POST facultative qui peut être utilisée pour spécifier une clé CMEK afin de chiffrer votre instance. Omettez 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 se présente comme suit :

    {
    "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 prend 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 se présente comme 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 avec succès. 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) sur le projet d'instance et du rôle Créateur de dépôt d'instance (roles/securesourcemanager.instanceRepositoryCreator) sur 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 :

    • INSTANCE_ID par le nom de l'instance.
    • PROJECT_NUMBER par le numéro de projet de l'instance Google Cloud. Pour en savoir plus sur l'identification des projets, consultez la section Identifier des projets.
    • LOCATION par la région de l'instance.

  2. Un écran OAuth s'affiche et vous demande si vous souhaitez accorder à sourcemanager.dev l'accès à 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.

Étape suivante