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
-
Connectez-vous à votre compte Google.
Si vous n'en possédez pas déjà un, vous devez en créer un.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
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.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
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.
-
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
Où 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
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/KEYOù :
INSTANCE_IDest 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.LOCATIONest 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_IDest l'ID du projet dans lequel vous souhaitez créer une instance.-kms-keyest 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_PROJECTpar le projet dans lequel vous avez créé votre clé.KEY_LOCATIONpar l'emplacement de la clé.KEYRING_NAMEpar le nom de votre trousseau de clés.KEYpar 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-a9b97a2eOù
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2eest leOPERATION_NAME.La création de l'instance prend jusqu'à 60 minutes.
Notez le
OPERATION_NAME, car vous devrez l'utiliser pour vérifier l'état de l'opération.Vérifiez l'état de l'opération
createen exécutant la commande suivante :gcloud source-manager operations describe OPERATION_NAME \ --region=LOCATIONRemplacez les éléments suivants :
OPERATION_NAMEpar le nom de l'opération dans la réponse de votre commande de création.LOCATIONpar 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" } } }Où
test-098765432109.us-central1.sourcemanager.devest l'URL HTML de l'instance.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
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_IDest 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.LOCATIONest 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_IDest l'ID du projet dans lequel vous souhaitez créer une instance.-dest 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_PROJECTpar le projet dans lequel vous avez créé votre clé.KEY_LOCATIONpar l'emplacement de la clé.KEYRING_NAMEpar le nom de votre trousseau de clés.KEYpar 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 }Où
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2eest leOPERATION_NAME.La création de l'instance prend jusqu'à 60 minutes.
Copiez le
OPERATION_NAME.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_NAMEOù 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" } } }Où
test-098765432109.us-central1.sourcemanager.devest l'URL HTML de l'instance.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.
-
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.devRemplacez 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.
Un écran OAuth s'affiche et vous demande si vous souhaitez accorder à
sourcemanager.devl'accès à votre compte Google.Cliquez sur le bouton Autoriser.
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
- Accorder aux utilisateurs l'accès à l'instance.
- Créer et cloner un dépôt.
- Accorder aux utilisateurs l'accès au dépôt.
- Contrôler l'accès avec IAM.