Private Service Connect Secure Source Manager-Instanz erstellen

Auf dieser Seite wird beschrieben, wie Sie eine Private Service Connect-Instanz erstellen.

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

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  6. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Enable the API

  9. Install the Google Cloud CLI.

  10. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  11. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  12. Installieren Sie die beta-Komponente der Google Cloud CLI:
    gcloud components install beta
  13. 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.

    1. 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 und PROJECT_NUM Ihre Projektnummer.

    2. Erstellen Sie einen CA-Pool, in dem CSR-basierte Zertifikatsanfragen zulässig sind.

    3. Erstellen Sie eine CA. Je nach Bedarf können Sie eine Root- oder eine untergeordnete Zertifizierungsstelle erstellen.

      Weitere Informationen zu den Unterschieden zwischen Stamm- und untergeordneten CAs finden Sie unter Einstellungen der Zertifizierungsstelle festlegen.

    4. 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.

    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:

    • 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.

    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:

    • 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.

    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:

    • 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.

    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

    1. Folgen Sie der Anleitung unter Zugriff auf veröffentlichte Dienste über Endpunkte, um Private Service Connect-Endpunkte zu erstellen.

    2. 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 Befehl gcloud 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.
    3. 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.

      1. Ordnen Sie den Wert von hostConfig.html, hostConfig.api und hostConfig.gitHttp der internen IP-Adresse der HTTP-Dienstanlage zu.
      2. 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 beispielsweise my-project-012345678901.us-central1.p.sourcemanager.dev.

    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.

    1. 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
      
    2. 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 Instanz my-instance am Standort us-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
      

    Nächste Schritte