第 12 章 配置端点
了解如何使用 YAML 配置文件为 Red Hat Advanced Cluster Security for Kubernetes (RHACS)配置端点。
您可以使用 YAML 配置文件配置公开的端点。您可以使用此配置文件为 Red Hat Advanced Cluster Security for Kubernetes 定义一个或多个端点,并自定义每个端点的 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 的 endpoint .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 1 endpoints: 2 # Serve plaintext HTTP only on port 8080 - listen: ":8080" 3 # Backend protocols, possible values are 'http' and 'grpc'. If unset or empty, assume both. protocols: 4 - http tls: 5 # Disable TLS. If this is not specified, assume TLS is enabled. disable: true 6 # Serve HTTP and gRPC for sensors only on port 8444 - listen: ":8444" 7 tls: 8 # 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: 9 - default - service # Client authentication settings. clientAuth: 10 # Enforce TLS client authentication. If unset, do not enforce, only request certificates # opportunistically. required: true 11 # 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: 12 # if not set, assume ["user", "service"] - service
- 1
- 使用
true
禁用对默认端口号8443
的暴露。默认值为false
;将其改为true
可能会破坏现有功能。 - 2
- 用于公开 Central 的额外端点列表。
- 3 7
- 要侦听的地址和端口号。如果使用
端点
,则必须指定这个值。您可以使用格式端口
、: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
。但是,您将无法将端点用于服务到服务通信或roxctl
CLI,因为这些客户端同时需要 gRPC 和 HTTP。红帽建议不要指定这个键的值,为端点启用 HTTP 和 gRPC 协议。如果要将端点限制为 Red Hat Advanced Cluster Security for Kubernetes 服务,请使用 clientAuth 选项。 - 5 8
- 使用它来指定端点的 TLS 设置。如果没有指定值,Red Hat Advanced Cluster Security for Kubernetes 会启用 TLS,并设置以下所有嵌套键的默认设置。
- 6
- 使用
true
在指定端点中禁用 TLS。默认值为false
。当您将其设置为true
时,您无法为serverCerts
和clientAuth
指定值。 - 9
- 指定要配置服务器 TLS 证书的源列表。
serverCerts
列表取决于顺序,这意味着当没有匹配的 SNI (Server Name Indication)时,列表中的第一个项目决定了 Central 默认使用的证书。您可以使用它来指定多个证书,Central 会自动根据 SNI 选择正确的证书。可接受值为:-
默认
:使用已配置的自定义 TLS 证书(如果存在)。 -
服务
:使用 Red Hat Advanced Cluster Security for Kubernetes 生成的内部服务证书。
-
- 10
- 使用它来配置启用了 TLS 的端点的客户端证书身份验证的行为。
- 11
- 使用
true
来只允许具有有效客户端证书的客户端。默认值为false
。您可以将true
与服务的certAuthorities
设置一起使用,以便只允许 Red Hat Advanced Cluster Security for Kubernetes 服务连接到此端点。 - 12
- 用于验证客户端证书的 CA 列表。默认值为
["service", "user
"]。certAuthorities
列表是独立于顺序的,这意味着此列表中项目的位置无关紧要。另外,将其设置为空列表[]
会禁用端点的客户端证书身份验证,这与保留这个值未设置不同。可接受值为:-
服务
:Red Hat Advanced Cluster Security for Kubernetes 生成的服务证书的 CA。 -
用户
:由 PKI 身份验证提供程序配置的 CA。
-