Mit Organisationsrichtlinien können Sie die Ressourcen Ihrer Organisation zentral und programmatisch steuern. Als Administrator für Organisationsrichtlinien können Sie Richtlinien für Ihre gesamte Organisation konfigurieren.
In dieser Version von Google Distributed Cloud (GDC) air-gapped gibt es keine UI oder CLI für Organisationsrichtlinien. Sie müssen die API oder die kubectl-CLI verwenden, um sie zu verwalten.
Vorteile
Die Konfiguration von Organisationsrichtlinien bietet mehrere Vorteile:
- Sie zentralisieren die Kontrolle, um Einschränkungen für die Nutzung der Organisationsressourcen zu konfigurieren.
- Sie definieren und richten Leitlinien für die Entwicklungsteams ein, damit alle geltenden gesetzlichen Bestimmungen eingehalten werden.
- Sie unterstützen Projektinhaber und ihre Teams dabei, schnell zu agieren, ohne sich um Verstöße gegen geltende gesetzliche Bestimmungen sorgen zu müssen.
Unterschiede zu Identity and Access Management
Das Identitäts- und Zugriffsmanagement erfolgt auf Nutzerebene. Administratoren können Nutzer autorisieren, auf der Grundlage ihrer Berechtigungen Aktionen an bestimmten Ressourcen auszuführen.
Organisationsrichtlinien konzentrieren sich auf Ressourcen und lassen den Administrator Einschränkungen für bestimmte Ressourcen festlegen, um zu bestimmen, wie diese konfiguriert werden können.
Liste der verfügbaren Organisationsrichtlinientypen
In dieser Version von GDC können Sie den folgenden Richtlinientyp verwenden.
GDCHRestrictedService
Mit dem Richtlinientyp GDCHRestrictedService können Sie einschränken, welchen Dienst Sie in GDC verwenden können. Wenn die Richtlinie angewendet wird, wird die Verwendung der APIs verhindert, auf die sie verweist. Sie können diesen Richtlinientyp beispielsweise verwenden, um die Verwendung eines bestimmten Dienstes auf bestimmte Projekte zu beschränken. Sie können die Richtlinie auch verwenden, um den Zugriff auf einen neuen GDC-Dienst vollständig einzuschränken, den Sie testen möchten, bevor Sie ihn Ihren Teams zur Verfügung stellen.
Erstellen Sie diese Richtlinie im selben Cluster wie die Dienstressourcen. Sie können mehrere Instanzen dieser Richtlinie für verschiedene Dienste oder verschiedene Projekte erstellen.
Im Folgenden finden Sie eine Vorlage für diese Richtlinie:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: POLICY_NAME
spec:
match:
MATCH_SCHEMA
parameters:
disabledOperations:
- DISABLED_OPERATION
Ersetzen Sie Folgendes:
POLICY_NAME: der Name der Organisationsrichtlinie.MATCH_SCHEMA: die Ressourcen, die für diese Einschränkung abgeglichen werden sollen. Weitere Informationen finden Sie im Abschnitt Geltungsbereich einer Organisationsrichtlinie in einem Cluster definieren.DISABLED_OPERATION: die Gruppen von Vorgängen, die durch diese Richtlinie blockiert werden. Die zulässigen Werte sindCREATE,UPDATEundDELETE. Der Standardwert für das FelddisabledOperationsist*.
Die Richtlinie GDCHRestrictedService unterstützt nur die Vorgänge UPDATE, CREATE und DELETE. Wenn Sie die Vorgänge GET, LIST und DELETE einschränken möchten, empfehlen wir, Rollen mit IAM
zuzuweisen.
Die Richtlinie GDCHRestrictedService unterstützt nur die folgende Teilmenge der in GDC verfügbaren Dienste.
| Dienst | API-Gruppe | Arten |
|---|---|---|
| Marketplace | marketplace.gdc.goog |
MarketplaceService
|
| Vertex AI Workbench | aiplatform.gdc.goog |
Notebook
|
| Datenbankdienst – Postgres | postgresql.dbadmin.gdc.goog |
|
| Datenbankdienst – Oracle | oracle.dbadmin.gdc.goog |
|
| Transfer Appliance | system.gpc.gke.io |
TransferApplianceRequest |
| Sicherung | backup.gdc.goog |
BackupRepositoryManager |
| Dataproc-Container für Spark (Marketplace-Dienst) | sparkoperator.k8s.io |
SparkApplication |
Sie müssen nicht alle Arten für einen bestimmten Dienst angeben. Sie können die Verwendung einer Teilmenge der Funktionen eines Dienstes einschränken, indem Sie nur die entsprechenden Arten angeben.
Wenn Sie beispielsweise Updates für Marketplace-Dienste einschränken möchten, erstellen Sie die folgende Richtlinie:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: no-update-to-marketplace-service
spec:
match:
kinds:
- apiGroups:
- "marketplace.gdc.goog"
kinds:
- MarketplaceService
parameters:
disabledOperations:
- "UPDATE"
Diese Richtlinie verhindert alle UPDATE-Vorgänge für alle marketplace.gdc.goog-API-Gruppen mit dem Wert MarketplaceService für die Art. Dadurch wird verhindert, dass jemand einen Marketplace-Dienst ändert.
Wenn Sie einen Dienst vollständig deaktivieren möchten, listen Sie sowohl CREATE, UPDATE als auch DELETE im Parameter disabledOperations auf und führen Sie alle hier dokumentierten Arten auf.
IAM-Rollen zum Verwalten von Organisationsrichtlinien zuweisen
Jeder Organisationsrichtlinie ist eine IAM-Rolle zugeordnet. Weisen Sie die IAM-Rolle den Nutzern und Gruppen zu, die diese bestimmte Organisationsrichtlinie verwalten sollen. Wenn Sie einem Nutzer oder einer Gruppe die Möglichkeit geben möchten, Richtlinien vom Typ GDCHRestrictedService zu erstellen, zu aktualisieren oder zu löschen, weisen Sie dem Nutzer oder der Gruppe die IAM-Rolle gdchrestrictedservice-policy-manager zu.
Geltungsbereich einer Organisationsrichtlinie in einem Cluster definieren
Wenn Sie eine Organisationsrichtlinie definieren, entscheiden Sie, ob sie sich auf alle Namespaces, nur auf bestimmte Namespaces oder auf alle Namespaces mit Ausnahme einer bestimmten Liste auswirken soll. Verwenden Sie dazu eine Kombination der Parameter .spec.match.excludedNamespaces, .spec.match.namespaceSelector, .spec.match.namespaces und .spec.match.scope der Richtliniendefinition.
Weitere Informationen zu diesen Parametern finden Sie auf der
Seite zum Abgleich von Organisationsrichtlinien. Wenn Sie beispielsweise die Erstellung von Datenbanken nur in Namespaces mit dem Label owner: dba-team zulassen möchten, erstellen Sie die folgende Richtlinie:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: db-restricted-to-dbas
spec:
match:
scope: Namespaced
namespaceSelector:
matchExpressions:
# We are restricting the use of the service in namespaces that
# don't have the owner: dba-team label
- key: owner
operator: NotIn
values:
- dba-team
kinds:
- apiGroups:
- "postgresql.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
- Restore
- apiGroups:
- "oracle.dbadmin.gdc.goog"
kinds:
- DBCluster
- BackupPlan
- Import
parameters:
disabledOperations:
- "UPDATE"
- "CREATE"
- "DELETE"
Vorhandene Richtlinie zurücksetzen
Wenn Sie die Erzwingung einer vorhandenen Richtlinie beenden möchten, löschen Sie sie mit der kubectl-CLI. Verwenden Sie eine kubeconfig-Datei, die Ihnen Zugriff auf den Cluster gewährt, in dem die Richtlinie definiert ist, und auf die IAM-Rolle gdchrestrictedservice-policy-manager.
Führen Sie Folgendes aus, um eine Organisationsrichtlinie zu löschen:
kubectl --kubeconfig CLUSTER_KUBECONFIG delete \
GDCHRestrictedService/POLICY_NAME
Ersetzen Sie Folgendes:
CLUSTER_KUBECONFIG: die kubeconfig-Datei des Clusters, in dem sich die Organisationsrichtlinie befindet.POLICY_NAME: der Name der zu löschenden Organisationsrichtlinie.
Richtlinie im Audit-Modus testen
Sie können eine Richtlinie testen, ohne sie zu erzwingen. Testen Sie eine Richtlinie, um sicherzustellen, dass sie keine vorhandenen Systeme beeinträchtigt, bevor Sie sie einführen, oder um eine Schätzung zu erhalten, wie weit verbreitet ein Verhalten ist. Fügen Sie Ihrer Richtliniendefinition eine enforcementAction hinzu, um einen Test hinzuzufügen. Für diesen Parameter sind drei mögliche Werte verfügbar:
deny: Die Richtlinie wird erzwungen. Dies ist die Standardeinstellung.dryrun: Die Aktion ist zulässig, aber sowohl in den Audit-Logs als auch im Richtlinienstatus wird ein Richtlinienverstoß angezeigt. Untersuchen Sie den Verstoß mitkubectl --kubeconfig CLUSTER_KUBECONFIG get POLICY_TYPE/POLICY_NAME.warn: Entsprichtdryrun, aber der Test zeigt auch eine Warnung als Antwort auf die Anfrage, die einen Richtlinienverstoß ausgelöst hat.
Wenn Sie beispielsweise eine Richtlinie testen möchten, die den Marketplace deaktiviert, erstellen Sie die folgende Richtlinie:
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: disable-marketplace-service-project-alice
spec:
enforcementAction: warn
match:
kinds:
- apiGroups: ["marketplace.gdc.goog"]
kinds: ["MarketplaceService"]