Hinweise
Bevor Sie die Richtlinie dataform.restrictGitRemotes
festlegen oder bearbeiten, müssen Sie die vollständigen URLs der Remote-Git-Repositories suchen, die Sie auf die Zulassungsliste setzen möchten.
So finden Sie die vollständige URL eines Remote-Git-Repositorys, das bereits mit einem Dataform-Repository verbunden ist:
Rufen Sie in der Google Cloud Console die Seite Dataform auf.
Wählen Sie ein Repository aus und klicken Sie dann auf Einstellungen.
Beachten Sie, dass die URLs von Remote-Repositories, die auf der Seite Dataform angezeigt werden, gekürzt werden und nicht in der Richtlinie
dataform.restrictGitRemotes
verwendet werden können.Kopieren Sie auf der Seite Einstellungen unter Git-Verbindungseinstellungen den Wert Repository-Quelle.
Der Wert der Repository-Quelle ist die vollständige URL des Remote-Repositorys. Du kannst diese URL in der Richtlinie „
dataform.restrictGitRemotes
“ verwenden.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization policy administrator (roles/orgpolicy.policyAdmin
) für die Organisation zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Organisationsrichtlinien benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwalten von Organisationsrichtlinien erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Organisationsrichtlinien zu verwalten:
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
Möglicherweise können Sie diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Informationen zum Einschränken von Remote-Git-Repositories
Sie können ein Dataform-Repository mit einem GitHub- oder GitLab-Repository verbinden.
Möglicherweise möchten Sie den Pool der Remote-Repositories einschränken, zu denen Dataform-Repositories eine Verbindung herstellen können. So wird verhindert, dass böswillige Akteure über ungeschützte Kopien Ihres Repositorys auf Ihre Dataform-Codebasis und Zugriffstokens zugreifen.
Mit dem Organisationsrichtliniendienst können Sie eine Organisationsrichtlinie erstellen, die einschränkt, zu welchen Git-Repository-URLs Dataform eine Verbindung herstellen kann.
Die Einschränkung zum Einschränken von Remote-Git-Repositories in Dataform lautet:
constraints/dataform.restrictGitRemotes
Zur Verwendung der Einschränkung erstellen Sie eine Organisationsrichtlinie mit einer allowedValues
-Liste von URLs von Remote-Git-Repositories, die eine Verbindung zu einem Dataform-Repository herstellen können.
Remote-Git-Repositories werden anhand ihrer vollständigen URL-Adresse identifiziert.
Die Richtlinie dataform.restrictGitRemotes
hat einen rückwirkenden Effekt, was bedeutet, dass sich die Einschränkung auf bereits vorhandene Dataform-Repositories auswirkt.
Wenn die Organisationsrichtlinie eingerichtet ist, kann das Dataform-Repository nur mit den Remote-Git-Repositories verbunden werden, die in der Liste allowedValues
aufgeführt sind. Remote-Git-Repositories, die nicht explizit in der Organisationsrichtlinie definiert sind, dürfen keine Verbindung zu einem Dataform-Repository herstellen.
Wenn Sie die Richtlinie dataform.restrictGitRemotes
nicht festlegen, ist die Kommunikation zwischen Dataform-Repositories und Remote-Git-Repositories nicht eingeschränkt.
Sie können die Richtlinie dataform.restrictGitRemotes
auf folgende Arten verwenden:
Allow all
- Dataform-Repositories dürfen eine Verbindung zu allen Remote-Repository-URLs herstellen. Wählen Sie diese Option aus, wenn Ihre Organisation die Kommunikation mit Remote-Repositories nicht blockieren möchte. Um alle Remote-Repository-URLs zuzulassen, können Sie alternativ die Organisationsrichtlinie nicht konfigurieren.
allowedValues
Liste mit URLs- Dataform-Repositories dürfen nur mit den Remote-Repositories auf der Zulassungsliste verbunden werden. Wählen Sie diese Option aus, um die Daten-Exfiltration zu verhindern.
Deny all
- Dataform-Repositories dürfen keine Verbindung zu Remote-URLs herstellen. Wählen Sie diese Option aus, wenn Ihre Organisation die gesamte Kommunikation blockieren und Dataform-Repositories verwenden möchte.
Spezifikationen für Remote-Git-Repositories für Zulassungslisten
Die Listeneinschränkung kann nur auf GitHub- und GitLab-Repositories angewendet werden.
Die Organisationsrichtlinie wird rückwirkend angewendet und wirkt sich auf vorhandene Dataform-Repositories aus.
Diese Einschränkung akzeptiert
allowedValues
, blockiert die Verbindung zu allen anderen Remote-Git-Repositories oderDeny all
. Die Standardeinstellung istAllow all
: Eine nicht konfigurierte Organisationsrichtlinie ermöglicht die Kommunikation mit allen Remote-Git-Repositories. Wir empfehlen, die Organisationsrichtlinie aufallowedValues
festzulegen.Für die Verwaltung und Aufrechterhaltung der Richtlinie sind Sie oder ein Administrator mit den erforderlichen Berechtigungen zuständig. Achten Sie darauf, dass Sie mit dem Richtlinienadministrator in Ihrer Organisation kommunizieren.
Einschränkung für Organisationsrichtlinie auf Organisationsebene festlegen
Console
- Rufen Sie die Seite /Organisationsrichtlinien/Organisationsrichtlinien auf.
- Wählen Sie gegebenenfalls die erforderliche Organisation aus dem Drop-down-Menü des Projekts aus.
- Klicken Sie auf Git-Remotes für Repositories in Dataform einschränken.
- Klicken Sie auf Richtlinie verwalten. Wenn Sie nicht auf die Schaltfläche Richtlinie verwalten klicken können, haben Sie nicht die erforderlichen Berechtigungen.
Wählen Sie Anpassen aus, um die Organisationsrichtlinie für bestimmte Remote-Git-Repositories festzulegen.
Wählen Sie die erforderlichen Richtlinienerzwingungen und den erforderlichen Richtlinientyp aus.
Wählen Sie für Richtlinienwerte die Option Benutzerdefiniert aus.
Geben Sie die vollständige URL eines Remote-Git-Repositorys ein.
Klicken Sie auf Neuer Richtlinienwert und geben Sie nach Bedarf vollständige URLs der Remote-Git-Repositories ein.
Klicken Sie auf Speichern, um die Einschränkung anzuwenden.
gcloud
Zum Festlegen einer Einschränkung für Remote-Git-Repositories benötigen Sie zuerst Ihre Organisations-ID. Sie können die Organisations-ID ermitteln, indem Sie den Befehl organizations list
ausführen und in der Antwort nach der numerischen ID suchen:
gcloud organizations list
Die gcloud CLI gibt eine Liste der Organisationen im folgenden Format zurück:
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
Verwenden Sie den Befehl gcloud resource-manager org-policies set-policy
, um die Organisationsrichtlinie festzulegen. Sie müssen Ihre Richtlinie als JSON- oder YAML-Datei bereitstellen.
Erstellen Sie eine JSON-Datei im folgenden Format:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Ersetzen Sie ORGANIZATION_ID
durch die numerische ID der Organisation.
Wenn Sie nicht möchten, dass Dataform-Repositories eine Verbindung zu Remote-Git-Repositories herstellen können, legen Sie eine Organisationsrichtlinie fest, in der denyAll
auf true
gesetzt ist:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Ersetzen Sie ORGANIZATION_ID
durch die numerische ID der Organisation.
API
Verwenden Sie die setOrgPolicy()
API, um die Einschränkung zu definieren. Dataform darf eine Verbindung zu den Remote-Git-Repository-URLs in der von Ihnen angegebenen allowedValue
-Liste herstellen.
Das folgende Beispiel zeigt eine Anfrage zum Anwenden der Einschränkung dataform.restrictGitRemotes
auf eine Organisation, zu der ausgewählte Remote-Git-Repositories eine Verbindung zu Dataform-Repositories herstellen können:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
wobei ORGANIZATION_ID
die numerische ID der Organisation ist.
Geben Sie jetzt im Anfragetext die gewünschte Organisationsrichtlinie für diese Einschränkung an:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Wenn Sie nicht möchten, dass Dataform-Repositories eine Verbindung zu Remote-Git-Repositories herstellen können, legen Sie eine Organisationsrichtlinie fest, in der denyAll
auf true
gesetzt ist:
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Wenn die Organisationsrichtlinie bereits festgelegt ist, müssen Sie die folgende Anfrage mit der Definition der Organisationsrichtlinie als Anfragetext ausführen:
PATCH https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes
Organisationsrichtlinie auf Projektebene festlegen
Durch Festlegen einer Organisationsrichtlinie auf Projektebene wird die Organisationsrichtlinie auf Organisationsebene überschrieben oder zusammengeführt. Bei einer Zusammenführung hat denyAll
Vorrang vor allowedValues
. Wenn beispielsweise die Organisationsrichtlinie auf Organisationsebene auf denyAll
gesetzt ist und die zusammengeführte Richtlinie auf Projektebene eine Remote-Repository-URL in der Liste allowedValues
aufführt, darf Dataform keine Verbindung zum Remote-Repository herstellen. In diesem Fall muss die Organisationsrichtlinie auf Projektebene die Richtlinie auf Organisationsebene überschreiben, damit Dataform eine Verbindung zum Remote-Repository herstellen kann. Weitere Informationen zur Hierarchie von Organisationsrichtlinien finden Sie unter Informationen zu Evaluierungen der Hierarchie.
Console
Führen Sie den gleichen Vorgang aus, der unter Einschränkung der Organisationsrichtlinie auf Organisationsebene festlegen dokumentiert ist, aber wählen Sie das gewünschte Projekt aus der Projektauswahl anstelle der Organisation aus.
gcloud
Verwenden Sie den Befehl gcloud resource-manager org-policies set-policy
, um die Organisationsrichtlinie festzulegen. Sie müssen Ihre Richtlinie als JSON- oder YAML-Datei bereitstellen.
Erstellen Sie eine JSON-Datei im folgenden Format:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Ersetzen Sie PROJECT_ID_OR_NUMBER
durch die Projekt-ID oder Projektnummer für diese Organisationsrichtlinie.
Übergeben Sie dann die Datei mit Ihrer Anfrage:
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=PROJECT_ID
API
Verwenden Sie die setOrgPolicy()
API, um die Einschränkung zu definieren. Dataform darf eine Verbindung zu den Remote-Git-Repository-URLs in der von Ihnen angegebenen allowedValue
-Liste herstellen.
Das folgende Beispiel zeigt eine Anfrage zum Anwenden der Einschränkung dataform.restrictGitRemotes
auf eine Organisation, in der Dataform-Repositories nur mit den ausgewählten Remote-Git-Repositories verbunden werden können und die Richtlinie constraints/dataform.restrictGitRemotes
noch nicht festgelegt ist:
POST https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies
Der Anfragetext enthält die gewünschte Organisationsrichtlinie für diese Einschränkung:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Ersetzen Sie PROJECT_ID_OR_NUMBER
durch die Projekt-ID oder Projektnummer für diese Anfrage.
Die folgende Anfrage zeigt eine Anfrage zum Anwenden der Einschränkung dataform.restrictGitRemotes
auf eine Organisation, in der Dataform-Repositories nur mit den ausgewählten Remote-Git-Repositories verbunden werden können und die Richtlinie constraints/dataform.restrictGitRemotes
bereits festgelegt ist:
PATCH https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes
Der Anfragetext enthält die gewünschte Organisationsrichtlinie für diese Einschränkung:
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Ersetzen Sie PROJECT_ID_OR_NUMBER
durch die Projekt-ID oder Projektnummer für diese Anfrage.
Best Practices für Git-Remote-Zulassungslisten
Um das Risiko der Daten-Exfiltration zu minimieren, legen Sie die Einschränkung
dataform.restrictGitRemotes
explizit so fest, dass eine Auswahl von vertrauenswürdigen Remote-Git-Repositories auf die Zulassungsliste gesetzt wird.Wenn Sie nur Dataform-Repositories verwenden, die nicht mit Remote-Git-Repositories verbunden sind, legen Sie die Einschränkung
dataform.restrictGitRemotes
aufDeny All
fest.Vermeiden Sie die Verwendung der
deniedValues
-Liste mit dieser Einschränkung. Wenn Sie Werte in derdeniedValues
-Liste definieren, bedeutet das, dass nur die Remote-Git-Repositories in derdeniedValues
-Liste von der Verbindung ausgeschlossen sind. Dies könnte ein Sicherheitsproblem sein, wenn Sie genau steuern möchten, zu welchen Remote-Git-Repositories Dataform eine Verbindung herstellen kann. Wenn Sie bestimmte Remote-Git-Repositories aus derallowedValues
-Liste entfernen möchten, aktualisieren Sie die vorhandene Organisationsrichtlinie, um sie aus derallowedValues
-Liste zu entfernen, anstatt das Remote-Repository mit einer niedrigeren Hierarchie in diedeniedValues
-Liste aufzunehmen.Wenn Sie eine Organisationsrichtlinie für einen großen Teil der Ressourcenhierarchie festlegen, aber bestimmte Projekte ausnehmen möchten, stellen Sie die Standardorganisationsrichtlinie mit der Methode
setOrgPolicy
wieder her. Geben Sie dazu das ObjektrestoreDefault
an. Damit lassen Sie zu, dass alle Dataform-Repositories in den Projekten mit Remote-Git-Repositories verbunden werden können. Die aktuellen Richtlinien für Projekte sind von der Standardeinstellung nicht betroffen.Verwenden Sie Organisationsrichtlinien zusammen mit IAM-Rollen, um den Zugriff auf Ihre Dataform-Codebasis besser zu steuern.
Alle Dataform-Repositories innerhalb der Organisation oder des Projekts, für die die Organisationsrichtlinie aktiviert ist, unterliegen dieser Richtlinie. Wenn dies ein Problem ist, empfehlen wir Ihnen, andere Dienste und Produkte in einem anderen Projekt einzurichten, für das die Organisationsrichtlinie nicht gilt, und bei Bedarf eine freigegebene VPC zu verwenden.
Bevor Sie die Richtlinie
dataform.restrictGitRemotes
festlegen, müssen Sie die Organisationsrichtlinie und ihren Administrator in Ihrer Organisation kommunizieren. Für die Verwaltung und Aufrechterhaltung der Richtlinie sind Sie oder ein Administrator mit den erforderlichen Berechtigungen zuständig.
Nächste Schritte
- Weitere Informationen zur Organisationsrichtlinie finden Sie unter Einführung in den Organisationsrichtliniendienst.
- Weitere Informationen zu Einschränkungen für Organisationsrichtlinien finden Sie unter Einschränkungen für Organisationsrichtlinien.
- Informationen zum Verwalten von Google Cloud-Ressourcen mit Resource Manager finden Sie unter Google Cloud-Ressourcen verwalten.