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 Service 的使用限制在具有 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"