第12章 エンドポイントの設定
YAML 設定ファイルを使用して、Red Hat Advanced Cluster Security for Kubernetes (RHACS) のエンドポイントを設定する方法を学習します。
YAML 設定ファイルを使用して、公開されたエンドポイントを設定できます。この設定ファイルを使用して、Red Hat Advanced Cluster Security for Kubernetes の 1 つ以上のエンドポイントを定義し、各エンドポイントの TLS 設定をカスタマイズしたり、特定のエンドポイントの TLS を無効にしたりできます。また、クライアント認証が必要かどうか、およびどのクライアント証明書を受け入れるかを定義することもできます。
12.1. カスタム YAML 設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Security for Kubernetes は、YAML 設定を ConfigMap として使用し、設定の変更と管理を容易にします。
カスタム YAML 設定ファイルを使用する場合、エンドポイントごとに以下を設定できます。
-
HTTP、gRPCなど、またはその両方を使用するプロトコル。 - TLS を有効または無効にします。
- サーバー証明書を指定します。
- クライアント認証を信頼するクライアント認証局 (CA)。
-
クライアント認証局 (
mTLS) が必要かどうかを指定します。
設定ファイルを使用して、インストール中または Red Hat Advanced Cluster Security for Kubernetes の既存のインスタンスでエンドポイントを指定できます。ただし、デフォルトのポート 8443 以外の追加のポートを公開する場合は、それらの追加のポートでのトラフィックを許可するネットワークポリシーを作成する必要があります。
以下は、Red Hat Advanced Cluster Security for Kubernetes のサンプル endpoints.yaml 設定ファイルです。
各項目の説明:
disableDefault-
デフォルトのポート番号
8443での公開を無効にするかどうかを指定します。値を指定しない場合、デフォルトはfalseです。trueに変更すると、既存の機能が破損する可能性があります。 endpoints- セントラルを公開するための追加のエンドポイントのリストを指定します。
endpoints.listenリッスンするアドレスとポート番号を指定します。
endpointsを使用している場合は、この値を指定する必要があります。形式port、:port、またはaddress:portを使用して、値を指定できます。以下に例を示します。-
8080または:8080- すべてのインターフェイスのポート8080でリッスンします。 -
0.0.0.0:8080- すべての IPv4 (IPv6 ではない) インターフェイスのポート8080でリッスンします。 -
127.0.0.1:8080- ローカルループバックデバイスのポート8080でのみリッスンします。
-
endpoints.protocols-
指定されたエンドポイントに使用するプロトコルを指定します。使用できる値は
httpとgrpcです。値を指定しない場合、Central は指定されたポートで HTTP トラフィックと gRPC トラフィックの両方をリッスンします。RHACS ポータル専用のエンドポイントを公開する場合は、httpを使用します。ただし、これらのクライアントは gRPC と HTTP の両方を必要とするため、サービス間通信またはroxctlCLI にエンドポイントを使用することはできません。エンドポイントで HTTP プロトコルと gRPC プロトコルの両方を有効にするには、このキーの値を指定しないでください。エンドポイントを Red Hat Advanced Cluster Security for Kubernetes サービスのみに制限する場合は、clientAuth オプションを使用します。 endpoints.tls- エンドポイントの TLS 設定を指定します。値を指定しない場合、Red Hat Advanced Cluster Security for Kubernetes は、以下のすべてのネストされたキーのデフォルト設定で TLS を有効にします。
endpoints.tls.disable-
指定したエンドポイントで TLS を無効にするかどうかを指定します。値を指定しない場合は、デフォルトで
falseに設定されます。trueに設定すると、serverCertsとclientAuthの値を指定できなくなります。 endpoints.tls.serverCertsサーバー TLS 証明書を設定するソースのリストを指定します。
serverCertsリストは順序に依存します。つまり、一致する Server Name Indication (SNI)がない場合、リストの最初の項目がセントラルがデフォルトで使用する証明書を決定します。これを使用して複数の証明書を指定でき、Central は SNI に基づいて適切な証明書を自動的に選択します。設定可能な値は以下のとおりです。-
default: 設定済みのカスタム TLS 証明書が存在する場合はそれを使用します。 -
service: Red Hat Advanced Cluster Security for Kubernetes が生成する内部サービス証明書を使用します。
-
endpoints.tls.clientAuth- TLS 対応のエンドポイントのクライアント証明書認証の動作を設定するかどうかを指定します。
endpoints.tls.clientAuth.required-
有効なクライアント証明書を持つクライアントのみを許可するかどうかを指定します。値を指定しない場合は、デフォルトで
falseに設定されます。trueをserviceのcertAuthorities設定と組み合わせて使用すると、Red Hat Advanced Cluster Security for Kubernetes サービスのみがこのエンドポイントに接続できるようになります。 endpoints.tls.clientAuth.certAuthoritiesクライアント証明書を検証する CA のリストを指定します。デフォルト値は
["service", "user"]です。certAuthoritiesリストは順序に依存しません。つまり、このリスト内のアイテムの位置は重要ではありません。また、空のリスト[]として設定すると、エンドポイントのクライアント証明書認証が無効になります。これは、この値を未設定のままにするのとは異なります。設定可能な値は以下のとおりです。-
service: Red Hat Advanced Cluster Security for Kubernetes が生成するサービス証明書の CA。 -
user: PKI 認証プロバイダーによって設定された CA。
-