第 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 配置文件示例:
其中:
disableDefault-
指定是否禁用对默认端口号
8443的暴露。如果没有指定值,则默认为false; 将其改为true可能会破坏现有功能。 端点- 指定用于公开 Central 的额外端点列表。
endpoints.listen指定要侦听的地址和端口号。如果使用
端点,则必须指定这个值。您可以使用格式端口、: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。但是,您无法将端点用于服务到服务通信或roxctlCLI,因为这些客户端需要 gRPC 和 HTTP。要为端点启用 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 默认使用的证书。您可以使用它来指定多个证书,Central 会自动根据 SNI 选择正确的证书。可接受值为:-
默认:使用已配置的自定义 TLS 证书(如果存在)。 -
服务:使用 Red Hat Advanced Cluster Security for Kubernetes 生成的内部服务证书。
-
endpoints.tls.clientAuth- 指定是否配置启用了 TLS 端点的客户端证书身份验证的行为。
endpoints.tls.clientAuth.required-
指定是否只允许带有有效客户端证书的客户端。如果没有指定值,则默认为
false。您可以将true与服务的certAuthorities设置一起使用,以便只允许 Red Hat Advanced Cluster Security for Kubernetes 服务连接到此端点。 endpoints.tls.clientAuth.certAuthorities指定用于验证客户端证书的 CA 列表。默认值为
["service", "user"]。certAuthorities列表是独立于顺序的,这意味着此列表中项目的位置无关紧要。另外,将其设置为空列表[]会禁用端点的客户端证书身份验证,这与保留这个值未设置不同。可接受值为:-
服务:Red Hat Advanced Cluster Security for Kubernetes 生成的服务证书的 CA。 -
用户:由 PKI 身份验证提供程序配置的 CA。
-