Hinweis
Bevor Sie die Richtlinie dataform.restrictGitRemotes festlegen oder bearbeiten, suchen Sie die vollständigen URLs der Remote-Git-Repositories, die Sie der Zulassungsliste hinzufügen 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 Dataform Seite angezeigt werden, gekürzt sind und nicht in der
dataform.restrictGitRemotesRichtlinie verwendet werden können.Kopieren Sie auf der Seite Einstellungen unter Einstellungen für die Git-Verbindung, den Wert Repository-Quelle.
Der Wert Repository-Quelle ist die vollständige URL des Remote-Repositorys. Sie können diese URL in der Richtlinie
dataform.restrictGitRemotesverwenden.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organisationsrichtlinien-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 auf Projekte, Ordner und Organisationen 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 für die Verwaltung von Organisationsrichtlinien erforderlich:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Remote-Git-Repositories einschränken
Sie können ein Dataform-Repository mit einem GitHub- oder GitLab-Repository verbinden.
Möglicherweise möchten Sie den Pool von Remote-Repositories einschränken, mit denen Dataform-Repositories verbunden werden können, um zu verhindern, dass böswillige Akteure über ungeschützte Kopien Ihres Repositorys auf Ihre Dataform-Codebasis und Ihre Zugriffstokens zugreifen.
Mit dem Organisationsrichtliniendienst können Sie eine Organisationsrichtlinie erstellen, die einschränkt, mit 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
Um die Einschränkung zu verwenden, erstellen Sie eine Organisationsrichtlinie mit einer allowedValues-Liste von URLs von Remote-Git-Repositories, die mit einem Dataform-Repository verbunden werden können.
Remote-Git-Repositories werden durch ihre vollständige URL-Adresse identifiziert.
Die Richtlinie dataform.restrictGitRemotes hat eine rückwirkende Wirkung. Das bedeutet, dass sich die Einschränkung auf bereits vorhandene Dataform-Repositories auswirkt.
Wenn die Organisationsrichtlinie eingerichtet ist, können Dataform-Repositories 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 Weise verwenden:
Allow all- Dataform-Repositories dürfen eine Verbindung zu allen Remote-Repository-URLs herstellen. Wählen Sie diese Option aus, wenn Ihre Organisation keine Kommunikation mit Remote-Repositories blockieren möchte. Alternativ können Sie die Organisationsrichtlinie nicht festlegen, um alle Remote-Repository-URLs zuzulassen.
allowedValues-Liste von URLs- Dataform-Repositories dürfen nur eine Verbindung zu den Remote-Repositories in der Zulassungsliste herstellen. Wählen Sie diese Option aus, um 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 die Zulassungsliste von Remote-Git-Repositories
Sie können die Listenbeschränkung nur auf GitHub- und GitLab-Repositories anwenden.
Die Organisationsrichtlinie wird rückwirkend angewendet und wirkt sich auf vorhandene Dataform-Repositories aus.
Diese Einschränkung akzeptiert
allowedValues, wodurch die Verbindung zu allen anderen Remote-Git-Repositories blockiert wird, oderDeny all. Die Standardeinstellung istAllow all– eine nicht festgelegte Organisationsrichtlinie ermöglicht die Kommunikation mit allen Remote-Git-Repositories. Wir empfehlen, die Organisationsrichtlinie aufallowedValuesfestzulegen.Für die Verwaltung und Pflege der Richtlinie sind Sie oder ein Administrator mit den entsprechenden Berechtigungen verantwortlich. Sorgen Sie für eine entsprechende Kommunikation über den Richtlinienadministrator in Ihrer Organisation.
Einschränkung der 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 richtigen 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 von Remote-Git-Repositories ein.
Klicken Sie auf Speichern , um die Einschränkung anzuwenden.
gcloud
Wenn Sie eine Einschränkung für Remote-Git-Repositories einrichten möchten, benötigen Sie zuerst Ihre Organisations-ID. Sie können die Organisations-ID ermitteln, indem Sie den
organizations list Befehl 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
gcloud resource-manager org-policies set-policy Befehl
um die Organisationsrichtlinie festzulegen. Sie müssen die 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 Dataform-Repositories keine Verbindung zu Remote-Git-Repositories herstellen dürfen, können Sie eine Organisationsrichtlinie festlegen, 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 Liste allowedValues herstellen.
Im Folgenden sehen Sie ein Beispiel für eine Anfrage zum Anwenden der Einschränkung dataform.restrictGitRemotes auf eine Organisation, in der ausgewählte Remote-Git-Repositories vorhanden sind, mit denen Dataform-Repositories verbunden werden können:
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
Dabei ist ORGANIZATION_ID die numerische ID der Organisation.
Geben Sie nun 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 Dataform-Repositories keine Verbindung zu Remote-Git-Repositories herstellen dürfen, können Sie eine Organisationsrichtlinie festlegen, 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
Wenn Sie eine Organisationsrichtlinie auf Projektebene festlegen, wird die Organisationsrichtlinie auf Organisationsebene überschrieben oder zusammengeführt. Im Fall einer Zusammenführung hat denyAll Vorrang vor allowedValues. Wenn die Organisationsrichtlinie auf Organisationsebene beispielsweise auf denyAll festgelegt ist und die zusammengeführte Richtlinie auf Projektebene eine Remote-Repository-URL in der Liste allowedValues enthält, 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 beschrieben wird, aber wählen Sie anstelle der Organisation das gewünschte Projekt aus der Projektauswahl aus.
gcloud
Verwenden Sie den
gcloud resource-manager org-policies set-policy Befehl
um die Organisationsrichtlinie festzulegen. Sie müssen die 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 Liste allowedValues herstellen.
Im Folgenden sehen Sie ein Beispiel für eine Anfrage zum Anwenden der
dataform.restrictGitRemotes Beschränkung auf eine Organisation, in der
Dataform-Repositories nur eine Verbindung zu den ausgewählten
Remote-Git-Repositories herstellen können und die constraints/dataform.restrictGitRemotes
Richtlinie 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.
Im Folgenden sehen Sie eine Anfrage zum Anwenden der
dataform.restrictGitRemotes Einschränkung auf eine Organisation, in der
Dataform-Repositories nur eine Verbindung zu den ausgewählten
Remote-Git-Repositories herstellen können und
die constraints/dataform.restrictGitRemotes Richtlinie 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 die Zulassungsliste von Git-Remotes
Um das Risiko einer Daten-Exfiltration zu minimieren, legen Sie die Einschränkung
dataform.restrictGitRemotesexplizit fest, um eine Auswahl vertrauenswürdiger Remote-Git-Repositories in die Zulassungsliste aufzunehmen.Wenn Sie nur Dataform-Repositories verwenden, die nicht mit Remote-Git-Repositories verbunden sind, legen Sie die Einschränkung
dataform.restrictGitRemotesaufDeny Allfest.Vermeiden Sie die Verwendung der Liste
deniedValuesmit dieser Einschränkung. Wenn Sie Werte in der ListedeniedValuesdefinieren, bedeutet das, dass nur die Remote-Git-Repositories in der ListedeniedValueskeine Verbindung herstellen dürfen. Dies könnte zu Sicherheitsproblemen führen, wenn Sie genau steuern möchten, mit welchen Remote-Git-Repositories Dataform eine Verbindung herstellen kann. Wenn Sie bestimmte Remote-Git-Repositories aus der ListeallowedValuesentfernen möchten, aktualisieren Sie die vorhandene Organisationsrichtlinie, um sie aus der ListeallowedValueszu entfernen, statt das Remote-Repository mit einer niedrigeren Hierarchie in die ListedeniedValuesaufzunehmen.Wenn Sie eine Organisationsrichtlinie für einen großen Teil der Ressourcenhierarchie einrichten, aber bestimmte Projekte ausnehmen möchten, stellen Sie die Standard-Organisationsrichtlinie mit der
setOrgPolicyMethode wieder her. Geben Sie dazu dasrestoreDefaultObjekt an. Dadurch lassen Sie zu, dass alle Dataform-Repositories in den Projekten mit Remote-Git-Repositories verbunden werden. Die derzeit für Projekte geltenden Richtlinien 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 in der Organisation oder im Projekt, für die die Organisationsrichtlinie aktiviert ist, unterliegen dieser Richtlinie. Wenn dies ein Problem ist, sollten Sie weitere Dienste und Produkte in einem anderen Projekt einrichten, für das die Organisationsrichtlinie nicht gilt, und bei Bedarf gemeinsam genutzte VPC verwenden.
Bevor Sie die Richtlinie
dataform.restrictGitRemotesfestlegen, sorgen Sie für eine entsprechende Kommunikation über die Organisationsrichtlinie und ihren Administrator in Ihrer Organisation. Für die Verwaltung und Pflege der Richtlinie sind Sie oder ein Administrator mit den entsprechenden Berechtigungen verantwortlich.
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 Ressourcen mit Resource Manager finden Sie unter Ressourcen verwalten. Google Cloud Google Cloud