組織のポリシー API は Kubernetes カスタム リソースを使用し、Kubernetes Resource Model(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
などのツールでその URL にアクセスして、組織のポリシー API のディスカバリ ドキュメントを取得できます。kubectl proxy
コマンドは、ローカルマシンの Kubernetes API サーバーへのプロキシを開きます。このコマンドを実行すると、次の URL でドキュメントにアクセスできます。http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1
KRM の例
次の例は、Database Services の使用をラベル owner: dba-team
のあるプロジェクトに制限する Organization Policy API の GDCHRestrictedServices
オブジェクトの例です。
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"