Organization Policy API 總覽

Organization Policy API 使用 Kubernetes 自訂資源,並依賴 Kubernetes 資源模型 (KRM)。用於管理機構政策的生命週期,例如建立、更新及刪除政策。

如要使用 Organization Policy API,建議使用 Kubernetes CLI kubectl。如果您的應用程式需要使用自己的程式庫呼叫這項 API,請使用下列範例、完整 API 定義和專屬的政策比對頁面來建構要求。

服務端點和探索文件

Organization Policy API 的 API 端點為: https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1 其中 MANAGEMENT_API_SERVER_ENDPOINT 是 Management API 伺服器的端點。

使用 kubectl proxy 指令,您可以在瀏覽器中存取該網址,也可以使用 curl 等工具,取得 Organization Policy API 的探索文件。kubectl proxy 指令會在您的本機電腦上開啟 Kubernetes API 伺服器的 Proxy。執行該指令後,您可以在下列網址存取文件:http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1

KRM 範例

以下是 Organization Policy API 中的 GDCHRestrictedServices 物件範例,可將 Database Services 的使用限制在具有 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"