第15章 Skupper ポリシーを使用したサービスネットワークの保護


デフォルトでは、Skupper には、サイト間のすべてのサービスネットワーク通信に相互 TLS を使用するなど、多くのセキュリティー機能が含まれています。Skupper ポリシー CRD をインストールして、セキュリティー機能を追加できます。デフォルトでは、Skupper ポリシー CRD をクラスターに適用すると、そのクラスターとの間のすべてのサービスネットワーク通信が阻止されます。必要なサービスネットワーク通信のみを許可するには、Skupper ポリシー CR を詳細に指定します。

注記

Skupper ポリシーは、Skupper CLI の使用 で説明されているように、Skupper サービスへのアクセスを現在の namespace に制限する network-policy オプションである Kubernetes ネットワークポリシーとは異なります。

サービスネットワーク内の各サイトには、Skupper ルーターを実行し、プライベートな専用認証局 (CA) があります。サイト間の通信は相互 TLS で保護されているため、サービスネットワークは外部アクセスから分離され、横方向の攻撃、マルウェアの侵入、データの漏えいなどのセキュリティーリスクを防ぎます。Skupper ポリシーのセットは、クラスターレベルで別のレイヤーを追加して、クラスター管理者がサービスネットワークへのアクセスを制御できるようにします。

このガイドは、次の Skupper の概念を理解していることを前提としています。

サイト
Skupper がインストールされている namespace。
token
2 つのサイト間のリンクを確立するには、トークンが必要。
サービスネットワーク
Skupper を使用してサービスを公開した後、サービスネットワークを作成している。

15.1. Skupper ポリシーについて

クラスター管理者は、Skupper ポリシーのカスタムリソース定義 (CRD) をインストールした後、開発者 がサービスネットワーク上でサービスを作成および使用できるように、1 つ以上のポリシーを設定する必要があります。

注記

このガイドでは、開発者とは、namespace にアクセスできるが管理者権限を持たないクラスターのユーザーを指します。

クラスター管理者は、カスタムリソース (CR) を使用して、次の 1 つ以上の項目を設定して通信を有効にします。

入力リンクを許可する
allowIncomingLinks を使用して、開発者がトークンを作成し、入力リンクを設定できるようにします。
特定のホストへの出力リンクを許可する
allowedOutgoingLinksHostnames を使用して、開発者がリンクを作成できるホストを指定します。
サービスを許可する
allowedServices を使用して、開発者がサービスネットワーク上で作成または使用できるサービスを指定します。
リソースの公開を許可する
allowedExposedResources を使用して、開発者がサービスネットワーク上で公開できるリソースを指定します。
注記

クラスター管理者は、各ポリシー CR 設定を 1 つ以上の namespace に適用できます。

たとえば、次のポリシー CR は、以下を除くすべての namespace ですべての Skupper 機能を完全に許可します。

  • .example.com で終わるドメインへの出力リンクのみを許可します。
  • 'deployment/nginx' リソースのみをサービスネットワークに公開できます。
apiVersion: skupper.io/v1alpha1
kind: SkupperClusterPolicy
metadata:
  name: cluster-policy-sample-01
spec:
  namespaces:
    - "*"
  allowIncomingLinks: true
  allowedExposedResources:
    - "deployment/nginx"
  allowedOutgoingLinksHostnames: [".*\.example.com$"]
  allowedServices:
    - "*"
注記

多くのポリシー CR を適用でき、許可された項目に競合がある場合は、最も許容度の高いポリシーが適用されます。たとえば、allowedOutgoingLinksHostnames: [] という行を含む追加のポリシー CR を適用する場合は、ホスト名をリストしない場合でも、元の CR で許可されているため、*.example.com への出力リンクは許可されます。

namespaces
このポリシーが適用される namespace を指定するための 1 つ以上のパターン。ラベルセレクター を使用して namespace を一致させることができることに注意してください。
allowIncomingLinks
他のサイトが指定された namespace へのリンクを作成できるようにするには、true を指定します。
allowedOutgoingLinksHostnames
1 つ以上のパターンを指定して、指定したネームスペースからリンクを作成できるホストを決定します。
allowedServices
1 つ以上のパターンを指定して、指定された namespace からサービスネットワークで許可されるサービスの許可される名前を決定します。
allowedExposedResources
指定された namespace から、サービストワークで許可されているリソースの 1 つ以上の許可された名前を指定します。パターンはサポートされていないことに注意してください。
ヒント

正規表現を使用して、パターンの一致を作成します。次に例を示します。

  • .*\.com$ は、.com で終わる任意の文字列に一致します。YAML の問題を回避するには、二重の円記号が必要です。
  • ^abc$ は文字列 abc と一致します。

特定の namespace への送信リンクを許可する別の Skupper ポリシー CR を作成すると、ユーザーはその namespace からリンクを作成してサービスネットワークに参加できます。つまり、複数のポリシー CR のロジックは OR です。単一のポリシー CR で操作が許可されている場合、操作は許可されます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.