第 2 章 Pod Security Admission


Red Hat OpenShift 使用 Pod Security Admission (PSA)为同一 Red Hat OpenShift 集群中的应用程序 pod 应用一组安全规则。在 Cryostat 的上下文中,这些应用程序 pod 包含一个 Cryostat pod 和 Report sidecar pod。另外,您还可以在 Cryostat 自定义资源(CR)上启用 Report sidecar pod。如果应用程序不符合策略标准,则应用程序无法在 Red Hat OpenShift 集群中运行。

Red Hat OpenShift 4.8 或更高版本不再支持 PodSecurityPolicy API,并使用 PSA。PSA 提供以下优点:

  • 包含一个内置控制器,可为应用程序 Pod 实现 Pod 安全标准。
  • 包含一组定义三种不同策略的 Pod 安全标准: PrivilegedBaselineRestricted

在 Red Hat OpenShift 上,您可以使用带有安全性上下文约束(SCC)的 PSA 来为 Red Hat OpenShift 集群定义策略。默认情况下,restricted-v2 SCC 与 Restricted pod 安全标准一致。

注意

默认情况下,Cryostat pod 的安全上下文符合 restricted-v2 SCC,这意味着 Red Hat OpenShift 可以在强制 Restricted pod 安全标准的命名空间中接受 pod。

Restricted 策略要求 Red Hat build of Cryostat Operator 配置容器安全上下文,如下所示:

  • 丢弃所有 功能
  • allowPrivilegeEscaltion 设置为 false

Restricted 策略要求 Red Hat build of Cryostat Operator 配置 pod 安全上下文,如下所示:

  • runAsNonRoot 设置为 true
  • seccompProfile 设置为 RuntimeDefault

另外,Red Hat build of Cryostat Operator 在 Cryostat 应用程序 pod 的 Pod 安全上下文中定义 fsGroup,以便 Cryostat 可以在 Red Hat OpenShift 的持久性存储卷中读取和写入文件。

如果您在符合 Restricted pod 安全标准之外还有额外的要求,您可以覆盖 Cryostat 使用的默认安全上下文。

2.1. 配置安全上下文

您可以在 Red Hat OpenShift 上的 Cryostat 自定义资源(CR)中指定 pod 和容器安全上下文。安全上下文将权限应用到 Cryostat pod、报告 sidecar pod (使用时)以及每个 pod 的容器。

注意

如果您更改了 CR 的设置,这些设置将覆盖默认的安全上下文设置。

安全上下文将特定权限应用到 pod 中存在的应用程序。安全上下文无法更改 SCC 策略的条件。您可以创建自定义 SCC 来指示 Red Hat OpenShift 集群对 pod 强制执行严格的权限,如 Pod 可以执行的操作或 Pod 可访问的资源。

要创建自定义 SCC,必须具有集群管理权限。您还必须为在集群中运行的任何 pod 创建安全上下文,以便这些 Pod 满足自定义 SCC 要求。

SCC 在 Red Hat OpenShift 集群级别和命名空间级别强制实施更改,以便此集群内运行的任何 pod 都接收策略标准。相反,安全上下文对 pod 是唯一的。

默认情况下,Red Hat build of Cryostat Operator 符合 Cryostat pod 的 restricted-v2 SCC 策略。

默认情况下,Red Hat build of Cryostat Operator 为 Cryostat 及其组件创建一个服务帐户,如 jfr-datasourcegrafana存储数据库, 和 auth-proxy.

要启用此服务帐户使用自定义 SCC,请执行以下步骤之一:

  • 创建 Role Binding,将 Cryostat 服务帐户绑定到使用自定义 SCC 的角色。
  • 使用 Label Syncer 组件指示项目的命名空间遵循 PSA 策略。
注意

Label Syncer 组件超出了本文档的范围。您不能在 Red Hat OpenShift 系统命名空间中使用 Label Syncer 组件,它们通常带有 openshift- tag 前缀。

重要

在配置安全上下文以将特定权限应用到应用程序 pod 之前,请考虑以下在 Red Hat OpenShift 中可能引入的安全风险。PSA 提供三个通常满足大部分要求的 gradient 策略级别。红帽不承担与 Red Hat OpenShift pod 安全标准不匹配的安全上下文更改的任何责任。

先决条件

流程

  1. 如果要开始创建 Cryostat 实例,请执行以下步骤:

    1. 在 Red Hat OpenShift web 控制台中,点 Operators > Installed Operators
    2. 从可用 Operator 列表中,选择 Red Hat build of Cryostat。
    3. Operator 详情页中,点 Details 选项卡。
    4. Provided APIs 部分中,选择 Cryostat,然后单击 Create instance

      注意

      Red Hat build of Cryostat Operator 不会为 Report sidecar pod 创建服务帐户。相反,这些 pod 在自己的命名空间中使用默认服务帐户。

  2. 在 Create Cryostat 面板中,要配置安全上下文,请选择以下选项之一:

    1. 如果要使用 YAML 视图:

      1. YAML 视图 单选按钮。
      2. spec: 元素中,编辑 securityOptionsreportOptions 属性,以满足您的安全要求。

        安全上下文配置示例

        apiVersion: operator.cryostat.io/v1beta2
        kind: Cryostat
        metadata:
          name: cryostat-sample
        spec:
          securityOptions:
            podSecurityContext:
              runAsNonRoot: true
              seccompProfile:
                type: RuntimeDefault
            coreSecurityContext:
              allowPrivilegeEscalation: false
              capabilities:
                drop:
                  - ALL
              runAsUser: 1001
            dataSourceSecurityContext:
              allowPrivilegeEscalation: false
              capabilities:
                drop:
                  - ALL
            grafanaSecurityContext:
              allowPrivilegeEscalation: false
              capabilities:
                drop:
                  - ALL
          reportOptions:
            replicas: 1
            podSecurityContext:
              runAsNonRoot: true
              seccompProfile:
                type: RuntimeDefault
            reportsSecurityContext:
              allowPrivilegeEscalation: false
              capabilities:
                drop:
                  - ALL
              runAsUser: 1001
        Copy to Clipboard Toggle word wrap

    2. 如果要使用 Form 视图:

      1. 点 *Form view" 单选按钮。
      2. 展开 Advanced configuration 以在 Red Hat OpenShift Web 控制台中打开附加选项。

        图 2.1. 高级配置菜单选项

      3. 展开 Core Security Context。从可用选项列表中,定义安全上下文的设置。
      4. 逐一扩展以下安全上下文,并根据情况定义设置:

        • 身份验证代理安全上下文
        • 数据源安全上下文
        • 数据库安全上下文
        • Grafana 安全上下文
        • Pod 安全上下文
        • 存储安全上下文
      5. 可选: 如果您使用 Report Generator 服务,您也可以为此服务配置安全上下文。在这种情况下,展开 Report Options > Advanced Configuration > Security Options。然后,根据情况扩展和定义 报告安全上下文Pod 安全上下文设置。

        图 2.2. 报告生成器安全上下文

  3. 如果要为这个 Cryostat 实例配置自定义资源(CR)中的其他属性,请参阅本文档的其它部分来了解有关这些属性的更多信息。
  4. 如果要完成创建此 Cryostat 实例,请点击 Create

当您点 Create 时,Operator 详情页中的 Cryostat 选项卡下提供了此 Cryostat 实例。然后,您可以通过点 Operator 详情页面上的实例名称来编辑 Cryostat 实例的 CR 属性,然后从 Actions 下拉菜单中选择 Edit Cryostat

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat