Pour en savoir plus sur la fédération des identités des employés, consultez la page Fédération des identités des employés.
Pour en savoir plus sur les limites de la fédération des identités des employés dans Secure Source Manager, consultez la page 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 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.
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
Chiffrement des données
Par défaut, Google Cloud chiffre automatiquement les données au repos à l'aide de Google-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).
Ne stockez 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
Ici, PROJECT_ID correspond à l'ID du projet dans lequel vous créez votre instance Secure Source Manager.
Une fois que vous avez 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 des identités des employés
Avant de créer une instance, vous devez configurer un pool et un fournisseur de fédération des identités des employés.
Configurez votre fournisseur de pools d'identités des employés avec les mappages d'attributs suivants :
google.subjectgoogle.email
Créer une instance
gcloud
Avant d'utiliser les données de la commande ci-dessous, 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 compatibles, consultez la page Emplacements.
- PROJECT_ID : ID du projet dans lequel vous souhaitez créer une instance.
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.
Enregistrez OPERATION_NAME, car vous devrez l'utiliser pour vérifier l'état de l'opération.
La création de l'instance prend jusqu'à 60 minutes.
API
Avant d'exécuter cette commande, remplacez les valeurs suivantes :
- 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 compatibles, 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. 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 sortie inclut les valeurs suivantes :
OPERATION_NAME: nom de l'opération, par exempleprojects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.PROJECT_ID: le Google Cloud projet.LOCATION: région dans laquelle se trouve l'instance.
Enregistrez OPERATION_NAME, car vous devrez l'utiliser pour vérifier l'état de l'opération.
La création de l'instance prend jusqu'à 60 minutes.
Terraform
L'exemple suivant crée une instance Secure Source Manager avec la fédération des identités des employés 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 :
- OPERATION_NAME : nom de l'opération dans la réponse de votre commande de création.
- LOCATION : région de l'instance.
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 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/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 ci-dessous, effectuez les remplacements suivants :
- OPERATION_NAME : nom de l'opération dans la réponse de 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 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": "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 de vérification de l'état. 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.
-
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 les 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é des employés 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 des identités des employés.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 de 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 session de votre pool de fédération des identités des employés expirée.
Créer votre configuration de connexion à la gcloud CLI
Pour vous authentifier auprès de votre instance Secure Source Manager à l'aide des identifiants de votre pool d'identités des employés à l'aide de commandes gcloud CLI ou de commandes 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 au pool d'identités des employés, suivez les instructions de la section Obtenir des jetons à courte durée de vie pour la fédération des identités des employés afin de créer une connexion basée sur un navigateur avec la gcloud CLI.
Une fois que vous vous êtes authentifié, vous pouvez utiliser des commandes Git pour interagir avec votre instance Secure Source Manager. Pour commencer à utiliser Git, consultez Utiliser la gestion du code source Git.
Étape suivante
- Accorder aux utilisateurs l'accès à l'instance.
- Accorder aux utilisateurs l'accès au dépôt.
- Contrôler l'accès avec IAM.