15.4. Skupper ポリシー CR の作成
Skupper Policy CR を使用すると、クラスター管理者はクラスターからサービスネットワーク全体の通信を制御できます。
前提条件
-
cluster-admin
アカウントを使用したクラスターへアクセスできる。 - Skupper ポリシー CRD がクラスターにインストールされている。
通常は、以下の手順の多くの要素を組み合わせた Skupper ポリシー CR を作成します。CR の例は、「Skupper ポリシーについて」を参照してください。
15.4.1. 着信リンクを許可するポリシーを実装する
allowIncomingLinks
を使用して、開発者がトークンを作成し、入力リンクを設定できるようにします。
手順
- このポリシーを適用する namespace を決定します。
-
allowIncomingLinks
をtrue
またはfalse
に設定して CR を作成します。 - CR を作成して適用します。
たとえば、次の CR は、すべての namespace の入力リンクを許可します。
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowincominglinks spec: namespaces: - "*" allowIncomingLinks: true
15.4.2. 特定のホストへの出力リンクを許可するポリシーを実装する
allowedOutgoingLinksHostnames
を使用して、開発者がリンクを作成できるホストを指定します。allowedOutgoingLinksHostnames
ポリシーを作成して、以前に許可されていた特定のホストを禁止することはできません。
- このポリシーを適用する namespace を決定します。
-
許可されたホストのパターンに設定された
allowedOutgoingLinksHostnames
を使用して CR を作成します。 - CR を作成して適用します。
たとえば、次の CR は、すべての namespace の example.com
のすべてのサブドメインへのリンクを許可します。
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedoutgoinglinkshostnames spec: namespaces: - "*" allowedOutgoingLinksHostnames: ['.*\.example\.com']
15.4.3. 特定のサービスを許可するポリシーを実装する
allowedServices
を使用して、開発者がサービスネットワーク上で作成または使用できるサービスを指定します。以前に許可されていた特定のサービスを禁止する allowedServices
ポリシーを作成することはできません。
手順
- このポリシーを適用する namespace を決定します。
-
サービスネットワークで許可されるサービスを指定する
allowedServices
を設定した CR を作成します。 - CR を作成して適用します。
たとえば、次の CR を使用すると、ユーザーはすべての namespace に対して接頭辞 backend-
を持つサービスを公開および利用できます。
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedservices spec: namespaces: - "*" allowedServices: ['^backend-']
サービスを公開するとき、ポリシーに合うようにサービスの名前を付けるため、skupper
CLI の --address <name>
パラメーターを利用することができます。
15.4.4. 特定のリソースを許可するポリシーを実装する
allowedExposedResources
を使用して、開発者がサービスネットワーク上で公開できるリソースを指定します。以前に許可されていた特定のリソースを禁止する allowedExposedResources
ポリシーを作成することはできません。
手順
- このポリシーを適用する namespace を決定します。
-
allowedExposedResources
を設定して CR を作成し、開発者がサービスネットワーク上で公開できるリソースを指定します。 - CR を作成して適用します。
たとえば、次の CR を使用すると、すべての namespace の nginx
デプロイメントを公開できます。
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedexposedresources spec: namespaces: - "*" allowedExposedResources: ['deployment/nginx']
allowedExposedResources
の場合、各エントリーは type/name
の構文に準拠している必要があります。