Organization Policy API – Übersicht

Die Organization Policy API verwendet benutzerdefinierte Kubernetes-Ressourcen und basiert auf dem Kubernetes-Ressourcenmodell (Kubernetes Resource Model, KRM). Sie wird verwendet, um den Lebenszyklus von Organisationsrichtlinien zu verwalten, z. B. zum Erstellen, Aktualisieren und Löschen.

Wir empfehlen, für die Verwendung der Organization Policy API die Kubernetes-Befehlszeile kubectl zu verwenden. Wenn Ihre Anwendung diese API mit eigenen Bibliotheken aufrufen muss, verwenden Sie das folgende Beispiel, die vollständige API-Definition und die spezielle Seite für 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. Der Befehl kubectl proxy öffnet einen Proxy zum Kubernetes API-Server auf Ihrem lokalen Computer. Nachdem der Befehl ausgeführt wurde, können Sie unter der folgenden URL auf das Dokument zugreifen: http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1.

Beispiel für KRM

Im Folgenden sehen Sie ein Beispiel für ein GDCHRestrictedServices-Objekt in der Organization Policy API, um die Verwendung der Datenbankdienste auf Projekte zu beschränken, die das Label owner: dba-team haben.

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:
      - Dbclusters
      - Backupplans
      - Imports
      - Restores
    - apiGroups:
      - "oracle.dbadmin.gdc.goog"
      kinds:
      - Dbclusters
      - Backupplans
      - Imports
  parameters:
    disabledOperations:
      - "UPDATE"
      - "CREATE"