Nvidia 드라이버를 업데이트 하고 나서 kubectl kui 를 실행하면
[1892112:0821/175405.492245:FATAL:credentials.cc(127)] Check failed: . : 허가 거부 (13)
이런 에러가 났다.
dmesg -w # 확인
[27296.153135] audit: type=1400 audit(1724230445.490:627): apparmor="DENIED" operation="userns_create" class="namespace" info="User namespace creation restricted" error=-13 profile="unconfined" pid=1892112 comm="Kui" requested="userns_create" denied="userns_create"
[27296.153298] traps: Kui[1892112] trap int3 ip:5616dbf0438e sp:7fff53179ac0 error:0 in Kui[5616d88b7000+75e0000]
userns_create.. 뭐시기 에러가 나고 있었다.
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
위 명령어를 실행 후에 kubectl kui를 하니까 kui를 실행할 수 있었다.
왜 그런지는 GPT가 아래와 같이 말해줬다. apparmor가 실행되고 있었구나!!!
이 메시지는 dmesg 출력에서 나타난 것으로, AppArmor 보안 모듈이 특정 작업을 제한한 것을 나타냅니다. 메시지를 분석해보면, Kui라는 프로세스가 사용자 네임스페이스(userns_create)를 생성하려고 했으나, AppArmor 프로파일에 의해 이 작업이 거부되었음을 알 수 있습니다. 이 오류와 관련된 주요 요소들을 설명하겠습니다.
메시지 분석
apparmor="DENIED": AppArmor 보안 모듈이 작업을 거부했음을 의미합니다.
operation="userns_create": 사용자 네임스페이스를 생성하는 작업이 시도되었습니다.
profile="unconfined": 이 메시지는 AppArmor가 적용된 프로세스가 특정 보안 프로파일에 제한되지 않았음을 의미하지만, 여전히 일부 작업은 제한됩니다.
pid=1892112 comm="Kui": 이 메시지는 Kui라는 이름의 프로세스에서 발생했음을 나타냅니다.
Nvidia 드라이버와의 관련성
Nvidia 드라이버와 직접적인 연관성은 없어 보입니다. 하지만, Nvidia 드라이버 또는 다른 그래픽 관련 소프트웨어가 사용자 네임스페이스를 생성하려고 할 때, AppArmor에 의해 제한이 걸리는 상황이 발생할 수 있습니다. 특정 애플리케이션(이 경우 Kui)이 그래픽 카드나 다른 리소스에 접근하기 위해 사용자 네임스페이스를 사용하려고 할 때 이런 문제가 발생할 수 있습니다.
원인
AppArmor 제한: 기본적으로 사용자 네임스페이스 생성은 보안상의 이유로 제한될 수 있습니다. 특히, unconfined 프로파일로 실행되더라도, AppArmor는 사용자 네임스페이스 생성과 같은 작업을 여전히 제한할 수 있습니다.
권한 부족: 프로세스가 사용자 네임스페이스를 생성하려고 할 때, 필요한 권한이 없으면 이러한 거부 메시지가 나타납니다.
내부 보안 정책: 일부 시스템에서는 보안 정책상 사용자 네임스페이스 생성이 기본적으로 비활성화되어 있을 수 있습니다. 이는 보안 취약점으로 이어질 수 있는 잠재적인 공격 벡터를 차단하기 위한 조치일 수 있습니다.
해결 방법
AppArmor 설정 변경: AppArmor 설정을 수정하여 특정 애플리케이션이 사용자 네임스페이스를 생성할 수 있도록 허용할 수 있습니다. 이를 위해 AppArmor 프로파일을 수정하거나, Kui 애플리케이션을 더 적합한 프로파일로 실행할 수 있습니다.
bash
코드 복사
sudo aa-status
sudo aa-complain /path/to/kui # 또는 원하는 프로파일 경로
보안 설정 조정: 만약 사용자 네임스페이스 생성이 꼭 필요하다면, 보안 정책을 조정할 수 있습니다. 예를 들어, sysctl 설정에서 사용자 네임스페이스 사용을 허용하도록 변경할 수 있습니다.
bash
코드 복사
sudo sysctl -w kernel.unprivileged_userns_clone=1
프로세스 권한 확인: Kui 프로세스가 충분한 권한으로 실행되고 있는지 확인하고, 필요한 경우 sudo 등으로 권한을 높여 실행할 수 있습니다.
이러한 조치들을 통해 dmesg에서 나타나는 메시지를 해결하고, 애플리케이션이 정상적으로 동작하도록 할 수 있습니다. 만약 Nvidia 드라이버와의 연관성을 의심한다면, 관련 로그를 더 확인하여 Nvidia 드라이버와의 상호작용 문제를 추가로 조사하는 것이 좋습니다.