Secure Source Manager-Instanz zur Verwendung mit föderierten Identitäten erstellen

In diesem Dokument wird beschrieben, wie Sie eine Secure Source Manager-Instanz mit der Mitarbeiteridentitätsföderation für die Verwendung mit einem externen Identitätsanbieter (IdP) erstellen.

Weitere Informationen zur Workforce Identity-Föderation finden Sie unter Workforce Identity-Föderation.

Informationen zu Einschränkungen der Mitarbeiteridentitätsföderation in Secure Source Manager finden Sie unter Identitätsföderation: Produkte und Einschränkungen.

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. Datenverschlüsselung

    Standardmäßig verschlüsselt Google Cloud Daten im inaktiven Zustand automatisch mitGoogle-owned and Google-managed encryption keys. Wenn Sie bestimmte Compliance- oder behördliche Anforderungen in Bezug auf die Schlüssel zum Schutz Ihrer Daten haben, können Sie Secure Source Manager-Instanzen erstellen, die mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) verschlüsselt sind.

    Speichern Sie keine vertraulichen Daten in Instanz-IDs oder Schlüssel/Wert-Paaren für Labels, da diese nicht mit CMEK verschlüsselt werden.

    Wenn Sie die erste Secure Source Manager-Instanz in Ihrem Projekt erstellen, müssen Sie den Secure Source Manager-Dienst-Agent manuell erstellen, indem Sie den folgenden Befehl ausführen:

    gcloud beta services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    Dabei ist PROJECT_ID die Projekt-ID des Projekts, in dem Sie Ihre Secure Source Manager-Instanz erstellen.

    Nachdem Sie das P4SA (Per-Project-Per-Product Service Account) erstellt haben, müssen Sie dem Prinzipal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.comdie Rolle „Secure Source Manager Service Agent“ (roles/securesourcemanager.serviceAgent) zuweisen, da die Instanzerstellung sonst fehlschlägt.

    Workforce Identity-Föderation einrichten

    Bevor Sie eine Instanz erstellen, müssen Sie einen Workforce Identity-Föderationspool und einen Anbieter einrichten.

    1. Erstellen Sie einen Workforce Identity-Föderationspool.

    2. Konfigurieren Sie Ihren Anbieter für Workforce Identity-Pools mit den folgenden Attributzuordnungen:

      • google.subject
      • google.email

    Instanz erstellen

    Ersetzen Sie vor dem Ausführen des Befehls die folgenden Werte:

    • INSTANCE_ID: der Name der Instanz, die Sie erstellen möchten.
    • LOCATION: Die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.
    • PROJECT_ID: die Projekt-ID des Projekts, in dem Sie eine Instanz erstellen möchten.

    Führen Sie folgenden Befehl aus:

    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}}"
    
    

    Ein Vorgang mit langer Ausführungszeit zum Erstellen einer Instanz wird gestartet. Die Ausgabe sieht etwa so aus:

    {
    "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
    }
    

    Diese Beispielausgabe enthält die folgenden Werte:

    • OPERATION_NAME: Der Name des Vorgangs, z. B. projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.
    • PROJECT_ID: das Google Cloud Projekt
    • LOCATION: die Region, in der sich die Instanz befindet.

    Notieren Sie sich die OPERATION_NAME, da Sie sie benötigen, um den Status des Vorgangs zu prüfen.

    Das Erstellen der Instanz kann bis zu 60 Minuten dauern.

    Status des Erstellungsvorgangs prüfen

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • OPERATION_NAME: Der Vorgangsname aus der Antwort auf Ihren Create-Befehl.

    HTTP-Methode und URL:

    GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME

    Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

    Wenn die Instanz bereit ist, sieht die Antwort so aus:

      "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
        }
      }
    

    Dabei ist my-instance-098765432109.us-central1.sourcemanager.dev die HTML-URL der Instanz.

    Kopieren Sie die HTML-URL aus der Antwort mit dem Status der erfolgreich erstellten Prüfung. Sie benötigen diese URL, um über die Weboberfläche auf die Instanz zuzugreifen.

    Auf die Instanz zugreifen

    Nachdem die Instanz erstellt wurde, können Sie über die Weboberfläche mit einem Browser darauf zugreifen.

    1. Wenn Sie über die Weboberfläche auf die Secure Source Manager-Instanz zugreifen möchten, kopieren Sie die folgende URL in die Adressleiste Ihres Browsers.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Ersetzen Sie Folgendes:

      • INSTANCE_ID durch den Instanznamen.
      • PROJECT_NUMBER durch die Projektnummer der Instanz. Google CloudInformationen zum Identifizieren von Projekten finden Sie unter Projekte identifizieren.
      • LOCATION durch die Region der Instanz.

      Ein OAuth-Bildschirm wird angezeigt, auf dem Sie den Namen Ihres Anbieters angeben müssen.

    2. Geben Sie den Namen Ihres Mitarbeiteridentitätsanbieters im folgenden Format ein:

      locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
      

      Ersetzen Sie Folgendes:

      • Ersetzen Sie POOL_ID durch die ID Ihres Workforce Identity-Föderationspools.
      • PROVIDER_ID durch die ID Ihres Anbieters für die Mitarbeiteridentitätsföderation.

      Weitere Informationen zu Pools und Anbietern für die Mitarbeiteridentitätsföderation finden Sie unter Identitätspools und ‑anbieter für die Mitarbeiteridentitätsföderation verwalten.

      Sie werden aufgefordert, sich mit den Anmeldedaten Ihres Anbieters anzumelden.

    3. Melden Sie sich mit den Anmeldedaten Ihres Anbieters an.

    4. Die Secure Source Manager-Weboberfläche wird geöffnet. Sie können Repositorys und alle zugehörigen Probleme und Pull-Requests über die Weboberfläche erstellen und ansehen.

      Sie müssen sich nach Ablauf der in Ihrem Mitarbeiteridentitätsföderations-Pool festgelegten Sitzungsdauer noch einmal über die Weboberfläche anmelden.

    gcloud CLI-Anmeldekonfiguration erstellen

    Wenn Sie sich mit den Anmeldedaten Ihres Personalpools bei Ihrer Secure Source Manager-Instanz authentifizieren möchten, müssen Sie eine Anmeldekonfiguration mit Ihrem Personalpool erstellen.

    Wenn Sie eine Anmeldekonfiguration für einen Workforce Identity-Pool erstellen möchten, folgen Sie der Anleitung unter Kurzlebige Tokens für die Workforce Identity-Föderation abrufen, um eine browserbasierte Anmeldung mit der gcloud CLI zu erstellen.

    Nach der Authentifizierung können Sie mit Git-Befehlen mit Ihrer Secure Source Manager-Instanz interagieren. Eine Anleitung für die ersten Schritte mit Git finden Sie unter Git-Quellcodeverwaltung verwenden.

    Nächste Schritte