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 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. Nachdem der Befehl ausgeführt wurde, 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 zeigt ein GDCHRestrictedServices
-Objekt in der Organization Policy API, mit dem die Verwendung der Database Services auf Projekte mit dem Label owner: dba-team
beschränkt wird.
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"