13.4. 为 CCS 集群创建安全性上下文约束


如果默认安全性上下文约束(SCC)无法满足应用程序工作负载要求,您可以使用 OpenShift CLI (oc)创建自定义 SCC。

重要

创建和修改您自己的 SCC 是可能导致集群不稳定的高级操作。如果您对使用自己的 SCC 有疑问,请联系红帽支持。有关联系红帽支持的详情,请参考获取支持

注意

在 OpenShift Dedicated 部署中,您只能为使用客户云订阅(CCS) 模型的集群创建自己的 SCC。您无法为使用 Red Hat cloud 帐户的 OpenShift Dedicated 集群创建 SCC,因为 SCC 资源创建需要 cluster-admin 权限。

先决条件

  • 安装 OpenShift CLI (oc) 。
  • 以具有 cluster-admin 角色的用户身份登录集群。

流程

  1. 在名为 scc-admin.yaml 的 YAML 文件中定义 SCC:

    kind: SecurityContextConstraints
    apiVersion: security.openshift.io/v1
    metadata:
      name: scc-admin
    allowPrivilegedContainer: true
    runAsUser:
      type: RunAsAny
    seLinuxContext:
      type: RunAsAny
    fsGroup:
      type: RunAsAny
    supplementalGroups:
      type: RunAsAny
    users:
    - my-admin-user
    groups:
    - my-admin-group

    另外,您可以通过将 requiredDropCapabilities 字段设为所需的值来丢弃 SCC 的特定功能。所有指定的功能都会从容器中丢弃。要丢弃所有的能力,请指定 ALL。例如,要创建一个丢弃 KILLMKNODSYS_CHROOT 功能的 SCC,请将以下内容添加到 SCC 对象中:

    requiredDropCapabilities:
    - KILL
    - MKNOD
    - SYS_CHROOT
    注意

    您不能列出 allowedCapabilitiesrequiredDropCapabilities 中的功能。

    CRI-O 支持 Docker 文档中找到的相同功能值列表。

  2. 通过传递文件来创建 SCC:

    $ oc create -f scc-admin.yaml

    输出示例

    securitycontextconstraints "scc-admin" created

验证

  • 验证 SCC 已创建好:

    $ oc get scc scc-admin

    输出示例

    NAME        PRIV      CAPS      SELINUX    RUNASUSER   FSGROUP    SUPGROUP   PRIORITY   READONLYROOTFS   VOLUMES
    scc-admin   true      []        RunAsAny   RunAsAny    RunAsAny   RunAsAny   <none>     false            [awsElasticBlockStore azureDisk azureFile cephFS cinder configMap downwardAPI emptyDir fc flexVolume flocker gcePersistentDisk gitRepo glusterfs iscsi nfs persistentVolumeClaim photonPersistentDisk quobyte rbd secret vsphere]

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.