第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
設定ファイルです。
Sample endpoints.yaml configuration for Central. # CAREFUL: If the following line is uncommented, do not expose the default endpoint on port 8443 by default. # This will break normal operation. disableDefault: true # if true, do not serve on :8443
# Sample endpoints.yaml configuration for Central.
#
# # CAREFUL: If the following line is uncommented, do not expose the default endpoint on port 8443 by default.
# # This will break normal operation.
# disableDefault: true # if true, do not serve on :8443
endpoints:
# Serve plaintext HTTP only on port 8080
- listen: ":8080"
# Backend protocols, possible values are 'http' and 'grpc'. If unset or empty, assume both.
protocols:
- http
tls:
# Disable TLS. If this is not specified, assume TLS is enabled.
disable: true
# Serve HTTP and gRPC for sensors only on port 8444
- listen: ":8444"
tls:
# Which TLS certificates to serve, possible values are 'service' (For service certificates that Red Hat Advanced Cluster Security for Kubernetes generates)
# and 'default' (user-configured default TLS certificate). If unset or empty, assume both.
serverCerts:
- default
- service
# Client authentication settings.
clientAuth:
# Enforce TLS client authentication. If unset, do not enforce, only request certificates
# opportunistically.
required: true
# Which TLS client CAs to serve, possible values are 'service' (CA for service
# certificates that Red Hat Advanced Cluster Security for Kubernetes generates) and 'user' (CAs for PKI auth providers). If unset or empty, assume both.
certAuthorities:
# if not set, assume ["user", "service"]
- service
- 1
true
を使用して、デフォルトのポート番号8443
での公開を無効にします。デフォルト値はfalse
です。true
に変更すると、既存の機能が破損する可能性があります。- 2
- Central を公開するための追加のエンドポイントのリスト。
- 3 7
- リッスンするアドレスとポート番号。
endpoints
を使用している場合は、この値を指定する必要があります。形式port
、:port
、またはaddress:port
を使用して、値を指定できます。以下に例を示します。-
8080
または:8080
- すべてのインターフェイスのポート8080
でリッスンします。 -
0.0.0.0:8080
- すべての IPv4 (IPv6 ではない) インターフェイスのポート8080
でリッスンします。 -
127.0.0.1:8080
- ローカルループバックデバイスのポート8080
でのみリッスンします。
-
- 4
- 指定されたエンドポイントに使用するプロトコル。使用できる値は
http
とgrpc
です。値を指定しない場合、Central は指定されたポートで HTTP トラフィックと gRPC トラフィックの両方をリッスンします。RHACS ポータル専用のエンドポイントを公開する場合は、http
を使用します。ただし、これらのクライアントは gRPC と HTTP の両方を必要とするため、サービス間通信またはroxctl
CLI にエンドポイントを使用することはできません。Red Hat は、エンドポイントで HTTP プロトコルと gRPC プロトコルの両方を有効にするために、このキーの値を指定しないことを推奨します。エンドポイントを Red Hat Advanced Cluster Security for Kubernetes サービスのみに制限する場合は、clientAuth オプションを使用します。 - 5 8
- これを使用して、エンドポイントの TLS 設定を指定します。値を指定しない場合、Red Hat Advanced Cluster Security for Kubernetes は、以下のすべてのネストされたキーのデフォルト設定で TLS を有効にします。
- 6
- 指定したエンドポイントで TLS を無効にするには、
true
を使用します。デフォルト値はfalse
です。true
に設定すると、serverCerts
とclientAuth
の値を指定できなくなります。 - 9
- サーバー TLS 証明書を設定するソースのリストを指定します。
serverCerts
リストは順序に依存します。つまり、一致する SNI (Server Name Indication) がない場合、リストの最初の項目が Central がデフォルトで使用する証明書を決定します。これを使用して複数の証明書を指定でき、Central は SNI に基づいて適切な証明書を自動的に選択します。設定可能な値は以下のとおりです。-
default
: 設定済みのカスタム TLS 証明書が存在する場合はそれを使用します。 -
service
: Red Hat Advanced Cluster Security for Kubernetes が生成する内部サービス証明書を使用します。
-
- 10
- これを使用して、TLS が有効なエンドポイントのクライアント証明書認証の動作を設定します。
- 11
true
を使用して、有効なクライアント証明書を持つクライアントのみを許可します。デフォルト値はfalse
です。true
をservice
のcertAuthorities
設定と組み合わせて使用すると、Red Hat Advanced Cluster Security for Kubernetes サービスのみがこのエンドポイントに接続できるようになります。- 12
- クライアント証明書を検証するための CA のリスト。デフォルト値は
["service", "user"]
です。certAuthorities
リストは順序に依存しません。つまり、このリスト内のアイテムの位置は重要ではありません。また、空のリスト[]
として設定すると、エンドポイントのクライアント証明書認証が無効になります。これは、この値を未設定のままにするのとは異なります。設定可能な値は以下のとおりです。-
service
: Red Hat Advanced Cluster Security for Kubernetes が生成するサービス証明書の CA。 -
user
: PKI 認証プロバイダーによって設定された CA。
-