Présentation de l'API Organization Policy

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/v1beta1MANAGEMENT_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

Vous trouverez ci-dessous un exemple d'objet GDCHRestrictedServices dans l'API Organization Policy pour limiter l'utilisation des services 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"