Wenn Sie mit mehreren Unternehmen zusammenarbeiten und mit ihnen am 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
-
Melden Sie sich in Ihrem Google-Konto an.
Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Secure Source Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Secure Source Manager Instance Owner (roles/securesourcemanager.instanceOwner) für das Projekt in Google Cloud 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 Ruhezustand 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 (CMEK) verschlüsselt sind.
Speichern Sie keine sensiblen 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 mit dem folgenden Befehl erstellen:
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 den Secure Source Manager-Dienst-Agent erstellt haben, müssen Sie dem Hauptkonto service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.comdie Rolle „Secure Source Manager-Dienst-Agent“ (roles/securesourcemanager.serviceAgent) zuweisen. Andernfalls schlägt die Instanzerstellung fehl.
Instanz erstellen
Zum Erstellen einer Instanz
gcloud-CLI
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/KEYWobei:
INSTANCE_IDist 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.LOCATIONist die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.PROJECT_IDist die Projekt-ID des Projekts, in dem Sie eine Instanz erstellen möchten.-kms-keyist ein optionales Flag. Geben Sie dies an, wenn Sie Ihren eigenen kundenverwalteten Verschlüsselungsschlüssel (CMEK) zum Erstellen der Instanz verwenden möchten. CMEK-Schlüssel müssen sich am selben Standort befinden, an dem Sie Ihre Instanz erstellen, können sich aber in einem anderen Projekt befinden. 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_PROJECTdurch das Projekt, in dem Sie den Schlüssel erstellt haben.KEY_LOCATIONdurch den Speicherort des Schlüssels.KEYRING_NAMEdurch den Name des SchlüsselbundsKEYdurch 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-a9b97a2eDabei ist
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2ederOPERATION_NAME.Es kann bis zu 60 Minuten dauern, bis die Instanz erstellt ist.
Notieren Sie sich die
OPERATION_NAME, da Sie sie benötigen, um den Status des Vorgangs zu prüfen.Prüfen Sie den Status des Vorgangs
createmit dem folgenden Befehl:gcloud source-manager operations describe OPERATION_NAME \ --region=LOCATIONErsetzen Sie Folgendes:
OPERATION_NAMEdurch den Vorgangsnamen aus der Antwort auf den Erstellungsbefehl.LOCATIONdurch 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.devdie HTML-URL der Instanz.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
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_IDist die permanente ID für die Instanz. Die ID darf nur Kleinbuchstaben, Ziffern und Bindestriche enthalten und muss mit einem Buchstaben beginnen.LOCATIONist die Region, in der Sie die Instanz erstellen möchten. Informationen zu unterstützten Standorten finden Sie unter Standorte.PROJECT_IDist die Projekt-ID des Projekts, in dem Sie eine Instanz erstellen möchten.-dist ein optionales HTTP-POST-Daten-Flag, mit dem ein CMEK-Schlüssel zum Verschlüsseln Ihrer Instanz angegeben werden kann. 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_PROJECTdurch das Projekt, in dem Sie den Schlüssel erstellt haben.KEY_LOCATIONdurch den Speicherort des Schlüssels.KEYRING_NAMEdurch den Name des SchlüsselbundsKEYdurch 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-a9b97a2ederOPERATION_NAME.Es kann bis zu 60 Minuten dauern, bis die Instanz erstellt ist.
Kopieren Sie den
OPERATION_NAME.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_NAMEDabei ist OPERATION_NAME der Vorgangsname aus der Antwort auf Ihren Erstellungsbefehl.
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.devdie HTML-URL der Instanz.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.
Terraform
Verwenden Sie zum Erstellen einer Secure Source Manager-Instanz mit Terraform die Ressource google_secure_source_manager_instance.
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.
-
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.devErsetzen Sie Folgendes:
- INSTANCE_ID durch den Instanznamen.
- PROJECT_NUMBER durch die Google CloudProjektnummer der Instanz. Informationen zum Identifizieren von Projekten finden Sie unter Projekte identifizieren.
- LOCATION durch die Region der Instanz.
Es wird ein OAuth-Bildschirm angezeigt, auf dem Sie gefragt werden, ob Sie
sourcemanager.devZugriff auf Ihr Google-Konto gewähren möchten.Klicken Sie auf den Button Zulassen.
Die Secure Source Manager-Weboberfläche 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
- Nutzern Zugriff auf Instanzen gewähren
- Repository erstellen und klonen
- Nutzern Zugriff auf das Repository gewähren
- Zugriff mit IAM steuern