12.4. 보안 컨텍스트 제약 조건 생성
기본 SCC(보안 컨텍스트 제약 조건)가 애플리케이션 워크로드 요구 사항을 충족하지 않는 경우 OpenShift CLI(oc)를 사용하여 사용자 정의 SCC를 생성할 수 있습니다.
자체 SCC를 생성하고 수정하는 것은 클러스터에 불안정할 수 있는 고급 작업입니다. 자체 SCC 사용에 대한 질문이 있는 경우 Red Hat 지원에 문의하십시오. Red Hat 지원에 문의하는 방법에 대한 자세한 내용은 지원 받기를 참조하십시오.
AWS SCC에서 기본 Red Hat OpenShift Service에 대해 SCC 우선순위를 0보다 크게 설정하면 심각한 클러스터 불안정을 초래할 수 있습니다.
사전 요구 사항
-
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]