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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
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. -
Install the 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. -
Install the 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 Configurez votre fournisseur de pools d'identités des employés avec les mappages d'attributs suivants :
google.subjectgoogle.email
- 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.
- 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.
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.- OPERATION_NAME : nom de l'opération issu de la réponse à votre commande de création.
- LOCATION : région de l'instance.
- OPERATION_NAME : nom de l'opération issu de la réponse à votre commande de création.
-
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 Google Cloud de 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.
Saisissez le nom de votre fournisseur d'identité de personnel au format suivant :
locations/global/workforcePools/POOL_ID/providers/PROVIDER_IDRemplacez les éléments suivants :
POOL_IDpar l'ID de votre pool de fédération d'identité de personnel.PROVIDER_IDpar 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 d'identité de la fédération des identités des employés.
Vous êtes invité à vous connecter à l'aide de vos identifiants de fournisseur.
Connectez-vous à l'aide de vos identifiants de fournisseur.
L'interface Web Secure Source Manager s'ouvre. Vous pouvez y créer et afficher des dépôts, des problèmes et des demandes d'extraction.
Vous devez vous reconnecter via l'interface Web une fois la durée de la session de votre pool de fédération des identités des employés expirée.
- Accordez aux utilisateurs l'accès aux instances.
- Accordez aux utilisateurs l'accès au dépôt.
- Contrôler les accès avec IAM
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 services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
Ici, PROJECT_ID correspond à l'ID du projet dans lequel vous créez 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.
Créer une instance
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows (PowerShell)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows (cmd.exe)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
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
Où projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e correspond à OPERATION_NAME.
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.
API
Avant d'exécuter cette commande, remplacez les valeurs suivantes :
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. Le résultat se présente comme suit :
{
"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 :
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.
Terraform
L'exemple suivant crée une instance Secure Source Manager avec la fédération d'identité du personnel activée :
resource "google_secure_source_manager_instance" "instance" {
instance_id = "INSTANCE_ID"
location = "LOCATION"
project = "PROJECT_ID"
workforce_identity_federation_config {
enabled = true
}
}
Vérifier l'état de l'opération
gcloud
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows (PowerShell)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows (cmd.exe)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
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/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": "2022-11-01T14:31:32.416413630Z",
"updateTime": "2022-11-01T14:31:32.416413630Z",
"labels": {
"ldap": "user",
"source": "manual"
},
"state": "ACTIVE",
"hostConfig": {
"html": "my-instance-098765432109.us-central1.sourcemanager.dev",
"api": "my-instance-098765432109-api.us-central1.sourcemanager.dev",
"gitHttp": "my-instance-098765432109-git.us-central1.sourcemanager.dev"
}
}
Où my-instance-098765432109.us-central1.sourcemanager.dev correspond à l'URL HTML de l'instance.
API
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
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
}
}
Où my-instance-098765432109.us-central1.sourcemanager.dev correspond à l'URL HTML de l'instance.
Copiez l'URL HTML à partir de la réponse indiquant que l'état de la vérification est "Réussie". Vous avez 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.
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, consultez Utiliser la gestion du code source Git.