18.4. 가상 머신 사용자가 수행할 수 있는 작업 제한
경우에 따라 RHEL 9에서 호스팅되는 VM(가상 머신) 사용자가 기본적으로 수행할 수 있는 조치로 인해 보안 위험이 발생할 수 있습니다. 이 경우 호스트 시스템에서 polkit
정책 툴킷을 사용하도록 libvirt
데몬을 구성하여 VM 사용자가 사용할 수 있는 작업을 제한할 수 있습니다.
절차
선택 사항:
libvirt
와 관련된 시스템의polkit
제어 정책이 기본 설정에 따라 설정되어 있는지 확인합니다./usr/share/polkit-1/actions/
및/usr/share/polkit-1/rules.d/
디렉토리에서 모든 libvirt 관련 파일을 찾습니다.# ls /usr/share/polkit-1/actions | grep libvirt # ls /usr/share/polkit-1/rules.d | grep libvirt
파일을 열고 규칙 설정을 검토합니다.
polkit
제어 정책의 구문을 읽는 방법에 대한 자세한 내용은man polkit
을 사용합니다.libvirt
제어 정책을 수정합니다. 이를 위해 다음을 수행합니다.-
/etc/polkit-1/
디렉터리에 새 .rules 파일을 만듭니다.rules.
d/ 이 파일에 사용자 지정 정책을 추가하고 저장합니다.
libvirt
제어 정책의 자세한 내용 및 예는libvirt
업스트림 문서를 참조하십시오.
-
polkit
에 의해 결정된 액세스 정책을 사용하도록 VM을 구성합니다.이를 위해
/etc/libvirt/
디렉토리에서 가상화 드라이버의 모든 구성 파일을 찾고access_drivers = [ "polkit" ]
줄의 주석을 제거하십시오.# find /etc/libvirt/ -name virt*d.conf -exec sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/g' {} +
이전 단계에서 수정한 각 파일에 대해 해당 서비스를 다시 시작합니다.
예를 들어
/etc/libvirt/virtqemud.conf
를 수정한 경우virtqemud
서비스를 다시 시작합니다.# systemctl try-restart virtqemud
검증
제한하려는 VM 작업이 있는 사용자로 제한된 작업 중 하나를 수행합니다.
예를 들어 권한이 없는 사용자가 시스템 세션에서 생성된 VM을 볼 수 없는 경우 다음을 실행합니다.
$ virsh -c qemu:///system list --all Id Name State -------------------------------
시스템에 하나 이상의 VM이 있어도 이 명령에 VM이 나열되지 않은 경우
polkit
은 권한이 없는 사용자에 대한 작업을 성공적으로 제한합니다.
문제 해결
현재
polkit
을 사용하도록libvirt
를 구성하면libvirt-dbus
서비스와 의 호환성으로 인해 RHEL 9 웹 콘솔을 사용하여 VM에 연결할 수 없습니다.웹 콘솔에서 VM에 대한 액세스를 세밀하게 제어해야 하는 경우 사용자 지정 D-Bus 정책을 생성합니다. 자세한 내용은 Red Hat 지식베이스 의 Cockpit에서 가상 머신을 세부적으로 제어하는 방법을 참조하십시오.
추가 리소스
-
man polkit
명령 -
polkit 액세스 제어 정책에대한
libvirt
업스트림 정보