L'API Organization Policy utilise des ressources personnalisées Kubernetes et s'appuie sur le modèle de ressource Kubernetes (KRM). Il permet de gérer le cycle de vie des règles d'administration (création, mise à jour, suppression, etc.).
Pour utiliser l'API Organization Policy, nous vous recommandons d'utiliser la CLI Kubernetes kubectl
. Si votre application doit utiliser ses propres bibliothèques pour appeler cette API, utilisez l'exemple suivant, la définition complète de l'API et la page dédiée aux correspondances de règles pour créer vos requêtes.
Point de terminaison du service et document de découverte
Le point de terminaison de l'API Organization Policy est le suivant :
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1
où MANAGEMENT_API_SERVER_ENDPOINT
correspond au point de terminaison du serveur de l'API Management.
À l'aide de la commande kubectl proxy
, vous pouvez accéder à cette URL dans votre navigateur ou avec un outil tel que curl
pour obtenir le document de découverte de l'API Organization Policy. La commande kubectl proxy
ouvre un proxy vers le serveur d'API Kubernetes sur votre machine locale. Une fois cette commande exécutée, vous pouvez accéder au document à l'URL suivante : http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1
.
Exemple de KRM
L'exemple suivant est un objet GDCHRestrictedServices
dans l'API Organization Policy pour limiter l'utilisation du service de base de données aux projets portant le libellé owner: dba-team
.
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"