Private Service Connect-Instanzen stellen keine Endpunkte für das öffentliche Internet bereit. Wenn Sie eine Private Service Connect-Instanz erstellen, werden Endpunkte erstellt, um SSH- (Git) und HTTPS-Zugriff (Git, Weboberfläche, API) auf die Instanz zu ermöglichen. Den Endpunkten müssen IP-Adressen in Ihrem privaten Netzwerk zugewiesen sein. Der gesamte Traffic zur und von der Private Service Connect-Instanz wird über die Private Service Connect-Endpunkte geleitet.
Weitere Informationen zur Verwendung von Private Service Connect für den privaten Zugriff auf verwaltete Dienste aus einem VPC-Netzwerk finden Sie unter Private Service Connect.
Secure Source Manager ist ein Dienst mit einem einzelnen Mandanten. Eine einzelne Secure Source Manager-Instanz sollte nur Nutzer von einemGoogle Cloud Kunden enthalten, es sei denn, mehrere Unternehmen mit einem Vertragsverhältnis müssen eine einzelne Instanz für die Zusammenarbeit verwenden.
Wenn Sie mit mehreren Unternehmen zusammenarbeiten und mit ihnen Quellcode austauschen möchten, empfehlen wir, für jedes Unternehmen eine separate Instanz zu erstellen.
Hinweise
-
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.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
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.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
- Installieren Sie die
beta
-Komponente der Google Cloud CLI:gcloud components install beta
-
Access Context Manager-Administratorrolle (
roles/accesscontextmanager.policyAdmin
) für die Organisation -
Rolle „Instanzinhaber“ (
roles/sercuresourcemanager.instanceOwner
) für die Instanz -
So erstellen Sie eine Dienstidentität und einen CA-Pool:
CA Service Operation Manager (
roles/privateca.caManager
) für die Organisation Führen Sie den folgenden Befehl aus, um eine Dienstidentität für die Secure Source Manager API in Ihrem Projekt zu erstellen:
gcloud beta services identity create \ --service=securesourcemanager.googleapis.com \ --project=PROJECT_ID
Dabei ist
PROJECT_ID
Ihre Projekt-ID.Die Ausgabe sieht etwa so aus:
Service identity created: service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
Dabei ist
service-PROJECT_NUM@gcp-sa-sourcemanager.iam.gserviceaccount.com
der Dienst-Agent von Secure Source Manager undPROJECT_NUM
Ihre Projektnummer.Erstellen Sie einen CA-Pool, in dem CSR-basierte Zertifikatsanfragen zulässig sind.
Erstellen Sie eine CA. Je nach Bedarf können Sie eine Root- oder eine untergeordnete Zertifizierungsstelle erstellen.
- Folgen Sie der Anleitung unter Stamm-CA erstellen, um eine Stamm-CA zu erstellen.
- Wenn Sie eine untergeordnete CA aus einer übergeordneten CA in Google Clouderstellen möchten, folgen Sie der Anleitung unter Untergeordnete CA erstellen.
- Folgen Sie der Anleitung unter Untergeordnete CA aus einer externen CA erstellen, um eine untergeordnete CA aus einer externen CA zu erstellen.
Weitere Informationen zu den Unterschieden zwischen Stamm- und untergeordneten CAs finden Sie unter Einstellungen der Zertifizierungsstelle festlegen.
Gewähren Sie der Dienstidentität der Secure Source Manager API Berechtigungen, um neue Zertifikate im CA-Pool anzufordern:
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
Ersetzen Sie Folgendes:
- Ersetzen Sie
CA_POOL_NAME
durch den Namen, den Sie Ihrem CA-Pool gegeben haben. CA_LOCATION
durch die Region oder Zone Ihres CA-Pools.PROJECT_NUMBER
durch die Projektnummer, in der Secure Source Manager aktiviert ist. Eine Anleitung zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.CA_PROJECT_ID
durch die Projekt-ID des Projekts, in dem Sie den CA-Pool erstellt haben.
- Ersetzen Sie
INSTANCE_ID
durch den Namen, den Sie der Instanz geben möchten.LOCATION
durch die Region, in der Sie die Instanz erstellen möchten. Eine Liste der unterstützten Standorte finden Sie unter Standorte.PROJECT_ID
durch den Namen des Projekts, in dem Sie eine Instanz erstellen möchten.CA_PROJECT
mit dem Namen des CA-Pool-Projekts, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.CA_LOCATION
durch die Region, in der Sie den CA-Pool erstellt haben, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.CA_POOL_NAME
mit dem Namen des CA-Pools, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.INSTANCE_ID
durch den Namen, den Sie der Instanz geben möchten.LOCATION
durch die Region, in der Sie die Instanz erstellen möchten. Eine Liste der unterstützten Standorte finden Sie unter Standorte.PROJECT_ID
durch den Namen des Projekts, in dem Sie eine Instanz erstellen möchten.CA_PROJECT
mit dem Namen des CA-Pool-Projekts, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.CA_LOCATION
durch die Region, in der Sie den CA-Pool erstellt haben, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.CA_POOL_NAME
mit dem Namen des CA-Pools, nur wenn Sie Ihr eigenes CA-Zertifikat verwenden.OPERATION_NAME
durch den Vorgangsnamen aus der Antwort auf Ihren Create-Befehl.LOCATION
durch die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.Folgen Sie der Anleitung unter Zugriff auf veröffentlichte Dienste über Endpunkte, um Private Service Connect-Endpunkte zu erstellen.
Führen Sie den folgenden Befehl aus, um die URIs für die HTTP- und SSH-Dienstanhänge Ihrer Secure Source Manager-Instanz abzurufen:
gcloud beta source-manager instances describe INSTANCE_ID \ --region=LOCATION
Ersetzen Sie Folgendes:
INSTANCE_ID
durch den Namen Ihrer Instanz. Mit dem Befehlgcloud beta source-manager instances list --region=LOCATION
können Sie Instanzen in einer bestimmten Region auflisten.LOCATION
durch den Standort Ihrer Instanz. Informationen zu unterstützten Standorten finden Sie unter Standorte.
Die Ausgabe sollte so aussehen:
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'
Wobei:
projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/http-psc
ist der URI des HTTP-Dienstanhangs Ihrer Instanz.projects/abc12345d1a1234a0a-tp/regions/us-central1/serviceAttachments/ssh-psc
ist der URI des SSH-Dienstanhangs Ihrer Instanz.
Nachdem Sie die Private Service Connect-Endpunkte erstellt haben, müssen Sie private DNS-Einträge einrichten. Eine Anleitung zum Einrichten privater DNS-Einträge finden Sie unter DNS manuell konfigurieren.
- Ordnen Sie den Wert von
hostConfig.html
,hostConfig.api
undhostConfig.gitHttp
der internen IP-Adresse der HTTP-Dienstanlage zu. - Ordnen Sie den Wert von
hostConfig.ssh
der internen IP-Adresse der SSH-Dienstanhänge zu.
In der vorherigen Beispielausgabe ist der Wert von
hostConfig.html
beispielsweisemy-project-012345678901.us-central1.p.sourcemanager.dev
.- Ordnen Sie den Wert von
Führen Sie den folgenden Befehl aus, um Ihre CA herunterzuladen:
gcloud privateca pools get-ca-certs CA_POOL \ --location LOCATION \ --output-file=root-cert.pem \ --project PROJECT
Wenn Sie API-Aufrufe an Ihre Instanz ausführen möchten, übergeben Sie das CA-Zertifikat an die Secure Source Manager API der Datenebene.
Mit dem folgenden Befehl wird beispielsweise das CA-Zertifikat
root-cert.pem
an die Secure Source Manager API übergeben, um Repositorys in der privaten Instanzmy-instance
am Standortus-central1
aufzulisten.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
- Cloud Build mit einer Secure Source Manager-Instanz mit Private Service Connect verbinden
- Secure Source Manager in einem VPC Service Controls-Perimeter konfigurieren
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Secure Source Manager-Instanz mit Private Service Connect benötigen:
Dienstidentität und Zertifizierungsstellenpool erstellen
In diesem Abschnitt wird beschrieben, was zu tun ist, wenn Sie Ihr eigenes CA-Zertifikat verwenden. Wenn Sie ein von Googleverwaltetes Zertifikat verwenden möchten, müssen Sie nichts weiter tun, als den gcloud beta source-manager instances create
-Befehl auszuführen, ohne eine Dienstidentität und einen CA-Pool zu erstellen.
Wenn Sie Ihr eigenes CA-Zertifikat anstelle eines vonGoogleverwalteten Zertifikats verwenden, müssen Sie beim Erstellen einer privaten Secure Source Manager-Instanz einen CA-Poolnamen angeben. Eine Anfrage zum Signieren des HTTPS-SSL-Zertifikats der Instanz wird an den CA-Pool gesendet.
Private Service Connect Secure Source Manager-Instanz erstellen
gcloud
Erstellen Sie eine Private Service Connect-Instanz mit dem folgenden Befehl:
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
Ersetzen Sie Folgendes:
API
Erstellen Sie eine Private Service Connect-Instanz mit dem folgenden Befehl:
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"}}'
Ersetzen Sie Folgendes:
Ein Vorgang mit langer Ausführungszeit zum Erstellen einer Instanz wird gestartet. Es kann bis zu 60 Minuten dauern, bis die Instanz erstellt ist. Die Ausgabe sieht etwa so aus:
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
Dabei ist projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
der OPERATION_NAME
.
Notieren Sie sich die OPERATION_NAME
, da Sie sie benötigen, um den Status des Vorgangs zu prüfen.
Führen Sie den folgenden Befehl aus, um den Status des Vorgangs zu prüfen:
gcloud beta source-manager operations describe OPERATION_NAME \
--region=LOCATION
Ersetzen Sie Folgendes:
Nachdem die Instanz erstellt wurde, werden die Private Service Connect-Endpunkte httpServiceAttachment
und sshServiceAttachment
sowie die Hostnamen für html
, api
, gitHttp
und gitSsh
in der Ausgabe aufgeführt.
Auf die private Instanz zugreifen
Um auf Ihre Private Service Connect-Instanz zuzugreifen, können Sie entweder Private Service Connect-Endpunkte basierend auf Weiterleitungsregeln oder Private Service Connect-Back-Ends basierend auf Load Balancern erstellen.
Private Service Connect-Back-Ends, die auf Load-Balancern basieren, sind flexibler und ermöglichen die Integration mit anderen Google Cloud Diensten wie Cloud Build. Sie sind jedoch komplexer und es fallen zusätzliche Abrechnungsposten an.
Private Service Connect-Endpunkte, die auf Weiterleitungsregeln basieren, sind einfacher und kostengünstiger, aber Sie können keine Verbindung zu Cloud Build oder anderenGoogle Cloud -Diensten herstellen.
Informationen zum Einrichten von Private Service Connect-Back-Ends, die auf Load Balancern für Ihre Private Service Connect-Instanz basieren, und zum Herstellen einer Verbindung zu Cloud Build finden Sie unter Cloud Build mit einer Private Service Connect-Instanz verbinden.
Private Service Connect-Endpunkte basierend auf Weiterleitungsregeln einrichten
CA mit der Secure Source Manager API verwenden
Secure Source Manager hat eine Steuerungsebene und eine Datenebene. Datenebenen-Endpunkte werden direkt von Ihrer Secure Source Manager-Instanz gehostet. Sie müssen also eine Verbindung zum API-Hostname Ihrer Instanz herstellen, um darauf zuzugreifen.
Wenn Sie Ihre private Secure Source Manager-Instanz verwenden möchten, müssen Sie die CA verwenden, die Sie im Abschnitt Dienstidentität und CA-Pool erstellen erstellt haben.