4.6. 보안 및 권한
커널 모듈을 로드하는 것은 매우 민감한 작업입니다. 커널 모듈이 로드되면 노드에서 모든 종류의 작업을 수행할 수 있는 모든 권한이 제공됩니다.
4.6.1. ServiceAccounts 및 SecurityContextConstraints 링크 복사링크가 클립보드에 복사되었습니다!
KMM(커널 모듈 관리)은 노드에 커널 모듈을 로드하는 권한 있는 워크로드를 생성합니다. 해당 워크로드에는 privileged SCC( SecurityContextConstraint ) 리소스를 사용할 수 있는 ServiceAccounts 가 필요합니다.
해당 워크로드에 대한 권한 부여 모델은 Module 리소스의 네임스페이스와 해당 사양에 따라 다릅니다.
-
.spec.moduleLoader.serviceAccountName또는.spec.devicePlugin.serviceAccountName필드가 설정된 경우 항상 사용됩니다. 해당 필드가 설정되지 않은 경우 다음을 수행합니다.
-
모듈리소스가 Operator의 네임 스페이스(기본적으로openshift-kmm)에 생성되는 경우 KMM은 기본 강력한ServiceAccounts를 사용하여 작업자 및 장치 플러그인 Pod를 실행합니다. -
다른 네임스페이스에서
모듈리소스가 생성되면 KMM은 네임스페이스의기본ServiceAccount를 사용하여 Pod를 실행합니다. 권한 있는 SCC를 사용하도록 수동으로 활성화하지 않는 한Module리소스는privileged워크로드를 실행할 수 없습니다.
-
OpenShift-kmm 는 신뢰할 수 있는 네임스페이스입니다.
RBAC 권한을 설정할 때 openshift-kmm 네임스페이스에서 Module 리소스를 생성하는 사용자 또는 ServiceAccount 가 있으면 KMM이 클러스터의 모든 노드에서 권한이 있는 워크로드를 자동으로 실행합니다.
모든 ServiceAccount 에서 권한 있는 SCC를 사용하고 작업자 또는 장치 플러그인 Pod를 실행할 수 있도록 하려면 다음 예와 같이 oc adm policy 명령을 사용하면 됩니다.
$ oc adm policy add-scc-to-user privileged -z "${serviceAccountName}" [ -n "${namespace}" ]
4.6.2. Pod 보안 표준 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift는 사용 중인 보안 컨텍스트에 따라 네임스페이스 Pod 보안 수준을 자동으로 설정하는 동기화 메커니즘을 실행합니다. 아무 작업도 필요하지 않습니다.