Secure Source Manager-Instanz erstellen

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.

Informationen zum Erstellen einer Instanz mit aktivierten VPC Service Controls finden Sie unter Secure Source Manager in einem VPC Service Controls-Perimeter konfigurieren.

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 Google Cloud CLI-Komponente „beta“:
    gcloud components install beta
  13. Erforderliche Rollen

    Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Secure Source Manager Instance Owner (roles/securesourcemanager.instanceOwner) für das Google Cloud -Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Secure Source Manager-Instanz benötigen.

    Secure Source Manager-Rollen werden erst in der Google Cloud Console angezeigt, wenn sie einem Hauptkonto zugewiesen wurden. Informationen zum erstmaligen Zuweisen einer Secure Source Manager-Rolle finden Sie unter IAM-Rollen zuweisen und entziehen.

    Datenverschlüsselung

    Standardmäßig verschlüsselt Google Cloud Daten im inaktiven Zustand automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. 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.

    Instanz erstellen

    Zum Erstellen einer Instanz

    gcloud-CLI

    1. Führen Sie den folgenden Befehl aus, um eine Instanz zu erstellen. Möglicherweise werden Sie aufgefordert, sich bei der gcloud CLI zu authentifizieren.

      gcloud beta source-manager instances create INSTANCE_ID \
          --region=LOCATION \
          --project=PROJECT_ID \
          --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
      

      Wobei:

      • INSTANCE_ID ist der Name der Instanz, die Sie erstellen möchten.
      • LOCATION ist die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.
      • PROJECT_ID ist die Projekt-ID des Projekts, in dem Sie eine Instanz erstellen möchten.
      • -kms-key ist ein optionales Flag. Geben Sie an, ob Sie Ihren eigenen vom Kunden verwalteten Verschlüsselungsschlüssel (Customer-Managed Encryption Key, CMEK) zum Erstellen der Instanz verwenden möchten. CMEK-Schlüssel müssen sich am selben Speicherort wie die Instanz befinden, die Sie erstellen, können aber in einem anderen Projekt sein. Lassen Sie dieses Flag weg, wenn Sie die Google-Standardverschlüsselung verwenden möchten. Wenn Sie Ihre Daten mit CMEK verschlüsseln möchten, ersetzen Sie Folgendes:
        • KEY_PROJECT durch das Projekt, in dem Sie Ihren Schlüssel erstellt haben.
        • KEY_LOCATION durch den Speicherort des Schlüssels.
        • KEYRING_NAME durch den Name des Schlüsselbunds
        • KEY durch den Namen des Schlüssels.

      Ein Vorgang mit langer Ausführungszeit zum Erstellen einer Instanz wird gestartet. Die Ausgabe sieht 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.

      Das Erstellen der Instanz kann bis zu 60 Minuten dauern.

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

    3. Prüfen Sie den Status des create-Vorgangs mit dem folgenden Befehl:

      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.

      Wenn die Instanz bereit ist, sieht die Antwort in etwa 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": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

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

    4. Kopieren Sie die HTML-URL aus dem erfolgreich erstellten Befehl zum Prüfen des Status. Sie benötigen diese URL, um über die Weboberfläche auf die Instanz zuzugreifen.

    API

    1. Führen Sie den folgenden Befehl aus, um eine Instanz zu erstellen. Möglicherweise werden Sie aufgefordert, sich bei der gcloud CLI zu authentifizieren.

      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 '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
      
      

      Wobei:

      • INSTANCE_ID ist der Name der Instanz, die Sie erstellen möchten.
      • LOCATION ist die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.
      • PROJECT_ID ist die Projekt-ID des Projekts, in dem Sie eine Instanz erstellen möchten.
      • -d ist ein optionales HTTP-POST-Datenflag, mit dem Sie einen CMEK-Schlüssel zum Verschlüsseln Ihrer Instanz angeben können. Lassen Sie dieses Flag weg, wenn Sie die Google-Standardverschlüsselung verwenden möchten. Wenn Sie Ihre Daten mit CMEK verschlüsseln möchten, ersetzen Sie Folgendes:
        • KEY_PROJECT durch das Projekt, in dem Sie Ihren Schlüssel erstellt haben.
        • KEY_LOCATION durch den Speicherort des Schlüssels.
        • KEYRING_NAME durch den Name des Schlüsselbunds
        • KEY durch den Namen des Schlüssels.

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

      {
      "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-11-01T14:31:32.420469714Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
      }
      

      Dabei ist projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e der OPERATION_NAME.

      Das Erstellen der Instanz kann bis zu 60 Minuten dauern.

    2. Kopieren Sie den OPERATION_NAME.

    3. Prüfen Sie den Status des Erstellungsvorgangs mit dem folgenden Befehl:

      curl \
          -X GET \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
      

      Dabei ist OPERATION_NAME der Vorgangsname aus der Antwort auf Ihren Erstellungsbefehl.

      Wenn die Instanz bereit ist, sieht die Antwort in etwa 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": "2022-11-01T14:31:32.420469714Z",
        "endTime": "2022-11-01T14:48:34.140378114Z",
        "target": "projects/my-project/locations/us-central1/instances/test",
        "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/test",
        "createTime": "2022-11-01T14:31:32.416413630Z",
        "updateTime": "2022-11-01T14:31:32.416413630Z",
        "labels": {
          "ldap": "user",
          "source": "manual"
        },
        "state": "ACTIVE",
        "hostConfig": {
          "html": "test-098765432109.us-central1.sourcemanager.dev",
          "api": "test-098765432109-api.us-central1.sourcemanager.dev",
          "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev"
        }
      }
      }
      

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

    4. Kopieren Sie die HTML-URL aus dem erfolgreich erstellten Befehl zum Prüfen des Status. Sie benötigen diese URL, um über die Weboberfläche auf die Instanz zuzugreifen.

    Auf eine Instanz zugreifen

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

    Zum Erstellen von Repositories in der Instanz benötigen Sie die Rolle „Repo Creator“ (roles/securesourcemanager.repoCreator) für das Instanzprojekt und die Rolle „Instance Repository Creator“ (roles/securesourcemanager.instanceRepositoryCreator) für die Secure Source Manager-Instanz.

    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.

    2. Ein OAuth-Bildschirm wird angezeigt, auf dem Sie gefragt werden, ob Sie sourcemanager.dev Zugriff auf Ihr Google-Konto gewähren möchten.

    3. Klicken Sie auf die Schaltfläche Zulassen.

    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.

    Nächste Schritte