Secure Source Manager-Instanz erstellen

Secure Source Manager ist ein Dienst für einzelne Mandanten. Eine einzelne Secure Source Manager-Instanz sollte nur Nutzer eines Google Cloud Kunden umfassen, es sei denn, mehrere Unternehmen mit einer vertraglichen Beziehung müssen eine einzelne Instanz für die Zusammenarbeit verwenden.

Wenn Sie mit mehreren Unternehmen zusammenarbeiten und mit ihnen gemeinsam an Quellcode arbeiten 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.

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

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

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Installieren Sie die 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 den 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Installieren Sie die 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 den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Secure Source Manager-Instanzinhaber (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 Prinzipal zugewiesen wurden. Informationen zum erstmaligen Zuweisen einer Secure Source Manager-Rolle finden Sie unter IAM-Rollen zuweisen und widerrufen.

Datenverschlüsselung

Standardmäßig Google Cloud verschlüsselt Daten im inaktiven Zustand automatisch mit von Google verwalteten Verschlüsselungsschlüsseln. Wenn Sie bestimmte Compliance- oder gesetzliche Anforderungen für die Schlüssel zum Schutz Ihrer Daten erfüllen müssen, können Sie Secure Source Manager-Instanzen erstellen, die mit kundenverwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) verschlüsselt sind.

Speichern Sie keine vertraulichen Daten in Instanz-IDs oder Label-Schlüssel/Wert-Paaren, 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 die Secure Source Manager-Instanz erstellen.

Nachdem Sie das dienstspezifische Dienstkonto pro Projekt (Per-Product, Per-Project Service Account, P4SA) erstellt haben, müssen Sie dem Prinzipal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com die Rolle „Secure Source Manager-Dienst-Agent“ (roles/securesourcemanager.serviceAgent) zuweisen, andernfalls schlägt die Instanzerstellung fehl.

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 source-manager instances create INSTANCE_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
    

    Dabei gilt:

    • INSTANCE_ID ist die permanente ID für die Instanz. Die ID darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten, muss mit einem Buchstaben beginnen und kann nach dem Erstellen nicht mehr geändert werden.

    • 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. Fügen Sie es ein, wenn Sie Ihren eigenen kundenverwalteten Verschlüsselungsschlüssel (CMEK) verwenden möchten, um die Instanz zu erstellen. CMEK-Schlüssel müssen sich am selben Standort befinden, an dem Sie die Instanz erstellen, können aber in einem anderen Projekt sein. Lassen Sie dieses Flag weg, wenn Sie die Standardverschlüsselung von Google verwenden möchten. Wenn Sie Ihre Daten mit CMEK verschlüsseln möchten, ersetzen Sie Folgendes:

      • KEY_PROJECT durch das Projekt, in dem Sie den Schlüssel erstellt haben.
      • KEY_LOCATION durch den Standort des Schlüssels.
      • KEYRING_NAME durch den Namen 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 dann ungefähr 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 dauert bis zu 60 Minuten.

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

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

    gcloud source-manager operations describe OPERATION_NAME \
        --region=LOCATION
    

    Ersetzen Sie Folgendes:

    • OPERATION_NAME durch den Vorgangsnamen aus der Antwort auf Ihren Befehl zum Erstellen.
    • LOCATION durch die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.

    Sobald 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 Befehl zum Prüfen des Status, der erfolgreich erstellt wurde. 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"}'
    
    

    Dabei gilt:

    • INSTANCE_ID ist die permanente ID für die Instanz. Die ID darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und muss mit einem Buchstaben beginnen.

    • 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 Standardverschlüsselung von Google verwenden möchten. Wenn Sie Ihre Daten mit CMEK verschlüsseln möchten, ersetzen Sie Folgendes:

      • KEY_PROJECT durch das Projekt, in dem Sie den Schlüssel erstellt haben.
      • KEY_LOCATION durch den Standort des Schlüssels.
      • KEYRING_NAME durch den Namen 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 dann ungefähr 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 dauert bis zu 60 Minuten.

  2. Kopieren Sie den OPERATION_NAME.

  3. Prüfen Sie den Status des Vorgangs zum Erstellen 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 Befehl zum Erstellen.

    Sobald 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 Befehl zum Prüfen des Status, der erfolgreich erstellt wurde. Sie benötigen diese URL, um über die Weboberfläche auf die Instanz zuzugreifen.

Terraform

Verwenden Sie die google_secure_source_manager_instance Ressource, um eine Secure Source Manager-Instanz mit Terraform zu erstellen.

Auf eine Instanz zugreifen

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

Um Repositories zu erstellen in der Instanz benötigen Sie die Rolle „Repo-Ersteller“ (roles/securesourcemanager.repoCreator) für das Instanzprojekt und die Rolle „Instanz-Repository-Ersteller“ (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 Cloud Informationen 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 Weboberfläche von Secure Source Manager wird geöffnet. Über die Weboberfläche können Sie Repositories und alle zugehörigen Probleme und Pull-Anfragen erstellen und ansehen.

Nächste Schritte