Organization Policy API の概要

組織のポリシー 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 の例

次の例は、Organization Policy API の GDCHRestrictedServices オブジェクトで、ラベル owner: dba-team を持つプロジェクトに Database Service の使用を制限しています。

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"