12.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
角色的用户身份登录集群。
流程
在名为
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
。例如,要创建一个丢弃KILL
、MKNOD
和SYS_CHROOT
功能的 SCC,请将以下内容添加到 SCC 对象中:requiredDropCapabilities: - KILL - MKNOD - SYS_CHROOT
注意您不能列出
allowedCapabilities
和requiredDropCapabilities
中的功能。CRI-O 支持 Docker 文档中找到的相同功能值列表。
通过传递文件来创建 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]