第 6 章 安全概述


管理 Red Hat Advanced Cluster Management for Kubernetes 组件的安全性。使用定义的策略和流程监管集群,以识别并最大程度降低风险。使用策略来定义规则和设置控制。

先决条件:您必须为 Red Hat Advanced Cluster Management for Kubernetes 配置身份验证服务要求。如需更多信息,请参阅 访问控制

阅读以下主题以了解更多有关保护集群的信息:

6.1. 证书简介

您可以使用各种证书来验证 Red Hat Advanced Cluster Management for Kubernetes 集群的真实性。继续阅读以了解证书管理的信息。

6.1.1. 证书

在 Red Hat Advanced Cluster Management 中运行的服务所需的所有证书都是在 Red Hat Advanced Cluster Management 安装过程中创建的。查看以下由 Red Hat OpenShift Container Platform 组件创建和管理的证书列表:

  • OpenShift Service Serving 证书
  • Red Hat Advanced Cluster Management Webhook 控制器
  • Kubernetes 证书 API
  • OpenShift 默认入口

需要的访问权限: 集群管理员

继续阅读以了解有关证书管理的更多信息:

注意 :用户负责证书轮转和更新。

6.1.1.1. Red Hat Advanced Cluster Management hub 集群证书

OpenShift 默认入口证书在技术上是一个 hub 集群证书。安装 Red Hat Advanced Cluster Management 后,会创建可观察性证书,并由可观察性组件使用,以便在 hub 集群和受管集群之间的流量上提供 mutual TLS。

  • open-cluster-management-observability 命名空间包含以下证书:

    • Observability-server-ca-certs:获取 CA 证书来签署服务器端证书
    • Observability-client-ca-certs:获取 CA 证书来签署客户端的证书
    • Observability-server-certs:获取由 observability-observatorium-api 部署使用的服务器证书
    • Observability-grafana-certs:获取 observability-rbac-query-proxy 部署使用的客户端证书
  • open-cluster-management-addon-observability 命名空间在受管集群中包含以下证书:

    • Observability-managed-cluster-certs :与 hub 服务器中的 observability-server-ca-certs 相同的服务器 CA 证书
    • observability-controller-open-cluster-management.io-observability-signer-client-cert:由被 metrics-collector-deployment 使用的客户证书

CA 证书的有效期为五年,其他证书的有效期为一年。所有可观察证书会在过期后自动刷新。查看以下列表以了解证书自动更新时的影响:

  • 当剩余的有效时间不超过 73 天时,非 CA 证书将自动续订。续订证书后,相关部署中的 Pod 会自动重启以使用更新的证书。
  • 当剩余有效时间不超过一年时,CA 证书会被自动续订。证书被续订后,旧的 CA 不会被删除,而是与更新的 CA 共存。相关部署同时使用旧和更新的证书,并继续工作。旧的 CA 证书在过期时会被删除。
  • 当证书被续订时,hub 集群和受管集群之间的流量不会中断。

查看以下 Red Hat Advanced Cluster Management hub 集群证书表:

表 6.1. Red Hat Advanced Cluster Management hub 集群证书
NamespaceSecret 名称Pod 标签 

open-cluster-management

channels-apps-open-cluster-management-webhook-svc-ca

app=multicluster-operators-channel

open-cluster-management

channels-apps-open-cluster-management-webhook-svc-signed-ca

app=multicluster-operators-channel

open-cluster-management

multicluster-operators-application-svc-ca

app=multicluster-operators-application

open-cluster-management

multicluster-operators-application-svc-signed-ca

app=multicluster-operators-application

open-cluster-management-hub

registration-webhook-serving-cert signer-secret

不是必需的

open-cluster-management-hub

6.1.1.2. Red Hat Advanced Cluster Management 管理的证书

查看下表,了解包含 Red Hat Advanced Cluster Management 管理的证书和相关 secret 的组件 pod 的总结列表:

表 6.2. 包含 Red Hat Advanced Cluster Management 管理证书的 Pod
NamespaceSecret 名称(如果适用)

open-cluster-management-agent-addon

cluster-proxy-open-cluster-management.io-proxy-agent-signer-client-cert

open-cluster-management-agent-addon

cluster-proxy-service-proxy-server-certificates

6.1.1.2.1. 受管集群证书

您可以使用证书与 hub 集群验证受管集群。因此,了解与这些证书关联的故障排除方案非常重要。

受管集群证书会自动刷新。

6.1.1.3. 其他资源

6.1.2. 管理证书

继续阅读以了解有关如何刷新、替换、轮转和列出证书的信息。

6.1.2.1. 刷新 Red Hat Advanced Cluster Management Webhook 证书

您可以刷新 Red Hat Advanced Cluster Management 受管证书,它们是由 Red Hat Advanced Cluster Management 服务创建和管理的证书。

完成以下步骤以刷新 Red Hat Advanced Cluster Management 管理的证书:

  1. 运行以下命令,删除与 Red Hat Advanced Cluster Management 管理证书关联的 secret:

    oc delete secret -n <namespace> <secret> 1
    1
    <namespace><secret> 替换为您要使用的值。
  2. 运行以下命令,重启与 Red Hat Advanced Cluster Management 受管证书关联的服务:

    oc delete pod -n <namespace> -l <pod-label> 1
    1
    <namespace><pod-label> 替换为 Red Hat Advanced Cluster Management 受管集群证书 表中的值。

    注: 如果没有指定 pod-label,则不会重启任何服务。secret 被重新创建并自动使用。

6.1.2.2. 替换 alertmanager 路由的证书

如果您不想使用 OpenShift 默认入口证书,请通过更新 alertmanager 路由来替换 observability alertmanager 证书。完成以下步骤:

  1. 使用以下命令检查可观察证书:

    openssl x509  -noout -text -in ./observability.crt
  2. 将证书上的通用名称 (CN) 更改为 alertmanager
  3. 使用 alertmanager 路由的主机名更改 csr.cnf 配置文件中的 SAN。
  4. open-cluster-management-observability 命名空间中创建以下两个 secret。运行以下命令:

    oc -n open-cluster-management-observability create secret tls alertmanager-byo-ca --cert ./ca.crt --key ./ca.key
    
    oc -n open-cluster-management-observability create secret tls alertmanager-byo-cert --cert ./ingress.crt --key ./ingress.key

6.1.2.3. 轮转 gatekeeper Webhook 证书

完成以下步骤以轮转 gatekeeper Webhook 证书:

  1. 使用以下命令编辑包含证书的 secret:

    oc edit secret -n openshift-gatekeeper-system gatekeeper-webhook-server-cert
  2. 删除 data 部分中的以下内容: ca.crtca.keytls.crttls.key
  3. 使用以下命令删除 gatekeeper-controller-manager pod 来重启 gatekeeper Webhook 服务:

    oc delete pod -n openshift-gatekeeper-system -l control-plane=controller-manager

gatekeeper Webhook 证书被轮转。

6.1.2.4. 验证证书轮转

按照以下流程验证您的证书是否已轮转:

  1. 找到要检查的 secret。
  2. 检查 tls.crt 密钥以验证证书是否可用。
  3. 使用以下命令显示证书信息:

    oc get secret <your-secret-name> -n open-cluster-management -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -text -noout

    <your-secret-name> 替换为您要验证的 secret 的名称。如果需要,还要更新命名空间和 JSON 路径。

  4. 检查输出中的 Validity 详情。查看以下 Validity 示例:

    Validity
                Not Before: Jul 13 15:17:50 2023 GMT 1
                Not After : Jul 12 15:17:50 2024 GMT 2
    1
    Not Before 值是您轮转证书的日期和时间。
    2
    Not After 值是证书过期的日期和时间。

6.1.2.5. 列出 hub 集群受管证书

您可以查看在内部使用 OpenShift Service Serving 证书服务的 hub 集群受管证书列表。运行以下命令列出证书:

for ns in multicluster-engine open-cluster-management ; do echo "$ns:" ; oc get secret -n $ns -o custom-columns=Name:.metadata.name,Expiration:.metadata.annotations.service\\.beta\\.openshift\\.io/expiry | grep -v '<none>' ; echo ""; done

如需更多信息,请参阅附加资源部分中的 OpenShift Service Serving 证书部分。

:如果启用了可观察性,则还需要额外的命名空间来创建证书。

6.1.2.6. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.