Secure Source Manager unterstützt alle Git-SCM-Clientbefehle und bietet integrierte Pull-Anfragen und Problemverfolgung. Sowohl HTTPS als auch die SSH-Authentifizierung werden unterstützt.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie für die Interaktion mit einem Secure Source Manager-Repository über Git benötigen:
-
Auf Secure Source Manager-Instanzen zugreifende Person (
roles/securesourcemanager.instanceAccessor) in der Secure Source Manager-Instanz -
So klonen Sie ein Repository:
Secure Source Manager Repo Reader (
roles/securesourcemanager.repoReader) für das Repository -
So pushen Sie in ein Repository:
Secure Source Manager Repo Writer (
roles/securesourcemanager.repoWriter) für das Repository
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.
Git und Google Cloud CLI installieren
Installieren Sie Git.
Wenn Sie vom Git-Installationsprogramm aufgefordert werden, Choose a credential helper (Anmeldedaten-Helper auswählen) auszuwählen, wählen Sie None (Do not use a credential helper) (Kein Anmeldedaten-Helper verwenden) aus.
Für die Verwendung von Git mit HTTPS ist die gcloud CLI-Version
395.0.0oder höher erforderlich. Führen Sie den folgenden Befehl aus, um Ihre gcloud CLI-Version zu prüfen:gcloud --versionFühren Sie den folgenden Befehl aus, um die gcloud CLI zu aktualisieren.
gcloud components updateFühren Sie nach der Aktualisierung
gcloud initaus, um die gcloud CLI zu initialisieren.Weitere Informationen finden Sie in der gcloud CLI-Dokumentation unter Komponenten aktualisieren.
Anmeldedaten einrichten
Wenn Sie sich mit einem externen Identitätsanbieter und der Mitarbeiteridentitätsföderation bei Secure Source Manager authentifizieren, müssen Sie diesen Abschnitt nicht ausführen. Stattdessen müssen Sie eine Anmeldekonfiguration für einen Mitarbeiteridentitäts-Pool erstellen.
Fügen Sie Ihrer globalen Git-Konfiguration den Authentifizierungs-Helper für Secure Source Manager hinzu, indem Sie den folgenden Befehl ausführen:
Linux
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
In früheren Versionen von Git werden möglicherweise keine Platzhalter unterstützt. Führen Sie den folgenden Befehl aus, um den Authentifizierungs-Helper ohne Platzhalter hinzuzufügen:
git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh
Ersetzen Sie Folgendes:
INSTANCE_IDdurch den Namen Ihrer Secure Source Manager-Instanz.PROJECT_NUMBERdurch Ihre Projektnummer, Hilfe zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.LOCATIONdurch die Region der Instanz. Weitere Informationen zu Regionen finden Sie unter Standorte.
Windows
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
In früheren Versionen von Git werden möglicherweise keine Platzhalter unterstützt. Führen Sie den folgenden Befehl aus, um den Authentifizierungs-Helper ohne Platzhalter hinzuzufügen:
git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd
Ersetzen Sie Folgendes:
INSTANCE_IDdurch den Namen Ihrer Secure Source Manager-Instanz.PROJECT_NUMBERdurch Ihre Projektnummer, Hilfe zum Ermitteln der Projektnummer finden Sie unter Projekte identifizieren.LOCATIONdurch die Region der Instanz. Weitere Informationen zu Regionen finden Sie unter Standorte.
Der Authentifizierungs-Helper verwendet die gcloud CLI, um IhreGoogle Cloud -Anmeldedaten abzurufen, wenn Sie Git-Befehle mit Secure Source Manager verwenden.
Führen Sie den folgenden gcloud CLI-Befehl aus, um sich nach der ersten Einrichtung der Anmeldedaten noch einmal zu authentifizieren:
gcloud auth login
Von einer Compute Engine-VM aus mit einem Dienstkonto authentifizieren
Sie können sich über ein angehängtes Dienstkonto auf einer Compute Engine-VM authentifizieren.
VM und Dienstkonto konfigurieren
Wenn Sie das Compute Engine-Standarddienstkonto verwenden, erstellen Sie Ihre VM mit den erforderlichen OAuth-Bereichen:
gcloud compute instances create VM_NAME \
--project=PROJECT_ID \
--zone=ZONE \
--scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform
Ersetzen Sie Folgendes:
VM_NAME: der Name Ihrer VM.PROJECT_ID: Projekt-ID in Google Cloud .ZONE: die Zone für Ihre VM.
Wenn Sie ein benutzerdefiniertes Dienstkonto verwenden, erstellen Sie das Dienstkonto und dann die VM.
Erstellen Sie ein Dienstkonto:
gcloud iam service-accounts create SA_NAME --project=PROJECT_IDErsetzen Sie
SA_NAMEmit einem Namen für das Dienstkonto.Gewähren Sie die Berechtigung zur Verwendung des Dienstkontos. Wenn Sie eine VM mit einem Dienstkonto erstellen möchten, benötigen Sie die Rolle „Dienstkontonutzer“ (
roles/iam.serviceAccountUser) für das Dienstkonto. Weisen Sie diese Rolle dem Hauptkonto zu, das die VM erstellt:gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"Ersetzen Sie
USER_EMAILdurch die E-Mail-Adresse des Nutzers, der die VM erstellt.Erstellen Sie die VM:
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \ --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Dienstkonto IAM-Rollen zuweisen
Gewähren Sie dem Dienstkonto Zugriff auf die Secure Source Manager-Instanz und das Repository:
Instanzzugriff gewähren:
SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)") gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.instanceAccessorGewähren Sie Lesezugriff auf das Repository.
Führen Sie den folgenden Befehl aus, um Lesezugriff auf ein bestimmtes Repository zu gewähren:
gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \ --instance=INSTANCE_ID \ --location=LOCATION \ --member="serviceAccount:$SA_EMAIL" \ --role=roles/securesourcemanager.repoReaderErsetzen Sie Folgendes:
REPOSITORY_ID: Die Repository-ID.INSTANCE_ID: Die Instanz-ID von Secure Source Manager.LOCATION: Die Region der Secure Source Manager-Instanz.
Verwenden Sie die Rolle
roles/securesourcemanager.repoWriter, um Schreibzugriff zu gewähren.Um dem Prinzip der geringsten Berechtigung zu entsprechen, wird empfohlen, den Zugriff auf Repository-Ebene zu gewähren. Wenn Sie Zugriff auf alle Repositories in einem Projekt gewähren müssen, lesen Sie den Abschnitt Zugriffssteuerung mit IAM.
Es kann einige Minuten dauern, bis IAM-Berechtigungen übernommen werden.
Git auf der VM konfigurieren
Stellen Sie eine SSH-Verbindung zur VM her:
gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONEInstallieren Sie Git auf der VM:
sudo apt-get install gitKonfigurieren Sie auf der VM den Git-Credential Helper, wie unter Anmeldedaten einrichten beschrieben. Beispiel für Linux:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
Nachdem Sie den Anmeldedaten-Helper konfiguriert haben, verwendet Git die Standardanmeldedaten für Anwendungen des Dienstkontos der VM, um sich bei Secure Source Manager zu authentifizieren. Sie können jetzt ein Repository klonen. Sie müssen die HTTPS-Repository-URL verwenden, um sich mit Standardanmeldedaten für Anwendungen zu authentifizieren.
Anmeldekonfiguration für Workforce Identity-Pool erstellen
Sie müssen diesen Abschnitt nur ausfüllen, wenn Sie die Mitarbeiteridentitätsföderation verwenden, um sich mit einem Drittanbieter-Identitätsanbieter bei Secure Source Manager zu authentifizieren.
Wenn Sie sich mit den Anmeldedaten Ihres Personalpools bei Ihrer Secure Source Manager-Instanz mit gcloud CLI- oder Git-Befehlen 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. Sie müssen sich neu authentifizieren, wenn die Sitzungsdauer für Ihren Mitarbeiteridentitäts-Pool abläuft.
Repository klonen
Klonen Sie ein Repository mit dem folgenden Befehl:
git clone REPOSITORY_URL
Dabei ist REPOSITORY_URL die HTTPS- oder SSH-URL, die oben auf der Repository-Seite angezeigt wird, die Sie klonen möchten.
Vorhandenes Repository per Push an Secure Source Manager übertragen
Sie müssen ein Secure Source Manager-Repository erstellen, das als Remote-Repository fungiert, bevor Sie Inhalte per Push übertragen können.
Wenn Sie Ihr vorhandenes Git-Repository in ein leeres Secure Source Manager-Repository übertragen möchten, müssen Sie das Secure Source Manager-Repository als Remote-Repository hinzufügen und die Daten dorthin übertragen.
Führen Sie den folgenden Befehl aus, um das Secure Source Manager-Repository als Remote-Repository festzulegen:
git remote add origin REPOSITORY_URLDabei ist
REPOSITORY_URLdie HTTPS- oder SSH-URL, die oben auf der Repository-Seite angezeigt wird.Führen Sie den folgenden Befehl aus, um per Push in das Repository zu übertragen:
git push -u origin main
Weitere Informationen zur Git-Quellcodeverwaltung finden Sie in der Git-Dokumentation.