Les instances Private Service Connect n'exposent aucun point de terminaison à l'Internet public. Lorsque vous créez une instance Private Service Connect, des points de terminaison sont créés pour fournir un accès SSH (Git) et HTTPS (Git, interface Web, API) à l'instance. Les points de terminaison doivent être associés à des adresses IP sur votre réseau privé. Tout le trafic vers et depuis l'instance Private Service Connect transite par les points de terminaison Private Service Connect.
Pour en savoir plus sur l'utilisation de Private Service Connect pour accéder à des services gérés de manière privée depuis un réseau VPC, consultez Private Service Connect.
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.
-
Enable the Secure Source Manager API.
-
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.
-
Enable the Secure Source Manager API.
-
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
- Installez le composant
beta
de Google Cloud CLI :gcloud components install beta
-
Rôle Administrateur Access Context Manager (
roles/accesscontextmanager.policyAdmin
) sur l'organisation -
Rôle Propriétaire de l'instance (
roles/sercuresourcemanager.instanceOwner
) sur l'instance -
Pour créer une identité de service et un pool d'autorités de certification :
Gestionnaire des opérations du service d'autorité de certification (
roles/privateca.caManager
) sur l'organisation Exécutez la commande suivante pour créer une identité de service pour l'API Secure Source Manager dans votre projet :
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
où
PROJECT_ID
correspond à l'ID de votre projet.Le résultat ressemble à ce qui suit :
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
Où
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
est l'agent de service Secure Source Manager etPROJECT_NUM
est le numéro de votre projet.Créez un pool d'autorités de certification avec les demandes de certificat basées sur les requêtes de signature de certificat autorisées.
Créez une autorité de certification. Vous pouvez créer une autorité de certification racine ou subordonnée en fonction de vos besoins.
- Pour créer une autorité de certification racine, suivez les instructions de la section Créer une autorité de certification racine.
- Pour créer une autorité de certification subordonnée à partir d'une autorité de certification parente dans Google Cloud, suivez les instructions de la section Créer une autorité de certification subordonnée.
- Pour créer une autorité de certification subordonnée à partir d'une autorité de certification externe, suivez les instructions de la section Créer une autorité de certification subordonnée à partir d'une autorité de certification externe.
Pour en savoir plus sur les différences entre les autorités de certification racine et subordonnées, consultez Déterminer les paramètres de l'autorité de certification.
Accordez à l'identité de service de l'API Secure Source Manager les autorisations nécessaires pour demander de nouveaux certificats dans le pool d'autorités de certification :
gcloud privateca pools add-iam-policy-binding CA_POOL_NAME \ --location=CA_LOCATION \ --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com' \ --role='roles/privateca.certificateRequester' \ --project=CA_PROJECT_ID
Remplacez les éléments suivants :
CA_POOL_NAME
par le nom que vous avez donné à votre pool d'autorités de certification.CA_LOCATION
par la région ou la zone de votre pool d'AC.PROJECT_NUMBER
par le numéro du projet sur lequel Secure Source Manager est activé. Pour trouver le numéro de projet, suivez les instructions de la section Identifier des projets.CA_PROJECT_ID
par l'ID du projet dans lequel vous avez créé le pool d'autorités de certification.
INSTANCE_ID
par le nom que vous souhaitez attribuer à l'instance.LOCATION
par la région dans laquelle vous souhaitez créer l'instance. Pour connaître les emplacements acceptés, consultez la page Emplacements.PROJECT_ID
par le nom du projet dans lequel vous souhaitez créer une instance.CA_PROJECT
avec le nom du projet de pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.CA_LOCATION
avec la région dans laquelle vous avez créé le pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.CA_POOL_NAME
avec le nom du pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.INSTANCE_ID
par le nom que vous souhaitez attribuer à l'instance.LOCATION
par la région dans laquelle vous souhaitez créer l'instance. Pour connaître les emplacements acceptés, consultez la page Emplacements.PROJECT_ID
par le nom du projet dans lequel vous souhaitez créer une instance.CA_PROJECT
avec le nom du projet de pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.CA_LOCATION
avec la région dans laquelle vous avez créé le pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.CA_POOL_NAME
avec le nom du pool d'autorités de certification, uniquement si vous utilisez votre propre certificat d'autorité de certification.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.Pour créer des points de terminaison Private Service Connect, suivez les instructions de la section Accéder aux services publiés via des points de terminaison.
Pour obtenir les URI des pièces jointes de service HTTP et SSH de votre instance Secure Source Manager, exécutez la commande suivante :
gcloud beta source-manager instances describe INSTANCE_ID \ --region=LOCATION
Remplacez les éléments suivants :
INSTANCE_ID
par le nom de votre instance. Pour lister les instances dans une région donnée, vous pouvez exécutergcloud beta source-manager instances list --region=LOCATION
.LOCATION
par l'emplacement de votre instance. Pour en savoir plus sur les emplacements acceptés, consultez la page Emplacements.
Le résultat se présente comme suit :
createTime: '2023-09-22T18:21:35.729454612Z' hostConfig: api: my-project-012345678901-api.us-central1.p.sourcemanager.dev gitHttp: my-project-012345678901-git.us-central1.p.sourcemanager.dev gitSsh: my-project-012345678901-ssh.us-central1.p.sourcemanager.dev html: my-project-012345678901.us-central1.p.sourcemanager.dev name: projects/my-project/locations/us-central1/instances/my-instance privateConfig: caPool: projects/my-project/locations/us-central1/caPools/my-ca-pool httpServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc isPrivate: true sshServiceAttachment: projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc state: ACTIVE updateTime: '2023-09-22T18:39:53.390563549Z'
Où :
projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
est l'URI du rattachement de service HTTP de votre instance.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
est l'URI de rattachement de service SSH de votre instance.
Après avoir créé les points de terminaison Private Service Connect, vous devez configurer des enregistrements DNS privés. Pour savoir comment configurer des enregistrements DNS privés, consultez Configurer le DNS manuellement.
- Mappez la valeur de
hostConfig.html
,hostConfig.api
ethostConfig.gitHttp
à l'adresse IP interne de l'attachement de service HTTP. - Mappez la valeur de
hostConfig.ssh
à l'adresse IP interne de l'attachement de service SSH.
Par exemple, dans l'exemple de résultat précédent, la valeur de
hostConfig.html
estmy-project-012345678901.us-central1.p.sourcemanager.dev
.- Mappez la valeur de
Pour télécharger votre CA, exécutez la commande suivante :
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
Pour effectuer des appels d'API à votre instance, transmettez le certificat de l'autorité de certification à l'API Secure Source Manager du plan de données.
Par exemple, la commande suivante transmet le certificat de l'autorité de certification
root-cert.pem
à l'API Secure Source Manager afin de lister les dépôts dans l'instance privéemy-instance
à l'emplacementus-central1
.curl \ --cacert root-cert.pem \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://my-instance-01234567890-api.us-central1.sourcemanager.dev/v1/projects/01234567890/locations/us-central1/repositories
- Connectez Cloud Build à une instance Secure Source Manager Private Service Connect.
- Configurez Secure Source Manager dans un périmètre VPC Service Controls.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer une instance Secure Source Manager Private Service Connect, demandez à votre administrateur de vous accorder les rôles IAM suivants :
Créer une identité de service et un pool d'autorités de certification
Cette section explique ce que vous devez faire si vous utilisez votre propre certificat d'autorité de certification. Pour utiliser un certificat géré par Google, il vous suffit d'exécuter la commandegcloud beta source-manager instances create
sans créer d'identité de service ni de pool d'autorités de certification.
Si vous utilisez votre propre certificat d'autorité de certification au lieu d'un certificat géré parGoogle, vous devez spécifier le nom d'un pool d'autorités de certification lorsque vous créez une instance Secure Source Manager privée. Une demande de signature du certificat SSL HTTPS de l'instance est envoyée au pool d'autorités de certification.
Créer une instance Secure Source Manager Private Service Connect
gcloud
Créez une instance Private Service Connect avec la commande suivante :
gcloud beta source-manager instances create INSTANCE_ID \
--region=LOCATION \
--project=PROJECT_ID \
--is-private \
--ca-pool=projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME
Remplacez les éléments suivants :
API
Créez une instance Private Service Connect avec 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 '{"private_config":{"is_private":true,"ca_pool":"projects/CA_PROJECT/locations/CA_LOCATION/caPools/CA_POOL_NAME"}}'
Remplacez les éléments suivants :
Une opération de longue durée de création d'instance démarre. La création de l'instance peut prendre jusqu'à 60 minutes. Le résultat ressemble à ce qui 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
Où
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
est le OPERATION_NAME
.
Notez le OPERATION_NAME
, car vous en aurez besoin pour vérifier l'état de l'opération.
Pour vérifier l'état de l'opération, exécutez la commande suivante :
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Remplacez les éléments suivants :
Une fois l'instance créée, les points de terminaison Private Service Connect httpServiceAttachment
et sshServiceAttachment
, ainsi que les noms d'hôte pour html
, api
, gitHttp
et gitSsh
, sont listés dans la sortie.
Accéder à l'instance privée
Pour accéder à votre instance Private Service Connect, vous pouvez créer des points de terminaison Private Service Connect basés sur des règles de transfert ou des backends Private Service Connect basés sur des équilibreurs de charge.
Les backends Private Service Connect basés sur des équilibreurs de charge sont plus flexibles et vous permettent de vous intégrer à d'autres services Google Cloud tels que Cloud Build, mais ils sont plus complexes et entraînent des frais supplémentaires.
Les points de terminaison Private Service Connect basés sur des règles de transfert sont plus simples et moins coûteux, mais vous ne pouvez pas vous connecter à Cloud Build ni à d'autres servicesGoogle Cloud .
Pour configurer des backends Private Service Connect basés sur des équilibreurs de charge pour votre instance Private Service Connect et les connecter à Cloud Build, consultez Connecter Cloud Build à une instance Private Service Connect.
Configurer des points de terminaison Private Service Connect basés sur des règles de transfert
Utiliser l'autorité de certification avec l'API Secure Source Manager
Secure Source Manager comporte un plan de contrôle et un plan de données. Les points de terminaison du plan de données sont hébergés directement par votre instance Secure Source Manager. Vous devez donc vous connecter au nom d'hôte de l'API de votre instance pour y accéder.
Pour utiliser votre instance Secure Source Manager privée, vous devez utiliser l'autorité de certification que vous avez créée dans la section Créer une identité de service et un pool d'autorités de certification.