Organization Policy API – Übersicht

Die Organization Policy API verwendet benutzerdefinierte Kubernetes-Ressourcen und basiert auf dem Kubernetes-Ressourcenmodell (KRM). Damit wird der Lebenszyklus von Organisationsrichtlinien verwaltet, z. B. das Erstellen, Aktualisieren und Löschen.

Für die Verwendung der Organization Policy API empfehlen wir die Kubernetes-Befehlszeile kubectl. Wenn Ihre Anwendung eigene Bibliotheken verwenden muss, um diese API aufzurufen, verwenden Sie das folgende Beispiel, die vollständige API-Definition und die spezielle Seite zu Richtlinienübereinstimmungen, um Ihre Anfragen zu erstellen.

Dienstendpunkt und Discovery-Dokument

Der API-Endpunkt für die Organization Policy API ist: https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1 Dabei ist MANAGEMENT_API_SERVER_ENDPOINT der Endpunkt des Management API-Servers.

Mit dem Befehl kubectl proxy können Sie in Ihrem Browser oder mit einem Tool wie curl auf diese URL zugreifen, um das Discovery-Dokument für die Organization Policy API abzurufen. Mit dem Befehl kubectl proxy wird ein Proxy zum Kubernetes API-Server auf Ihrem lokalen Computer geöffnet. Sobald der Befehl ausgeführt wird, können Sie über die folgende URL auf das Dokument zugreifen: http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1.

Beispiel für KRM

Das folgende Beispiel ist ein GDCHRestrictedServices-Objekt in der Organization Policy API, um die Verwendung des Database Service auf Projekte mit dem Label owner: dba-team zu beschränken.

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.ods.anthosapis.com"
      kinds:
      - Dbclusters
      - Backupplans
      - Imports
      - Restores
    - apiGroups:
      - "oracle.ods.anthosapis.com"
      kinds:
      - Dbclusters
      - Backupplans
      - Imports
  parameters:
    disabledOperations:
      - "UPDATE"
      - "CREATE"