Docker 컨테이너에 AppArmor 구성 파일 로드

Docker 컨테이너에 AppArmor 구성 파일 로드

Docker 컨테이너 내에 다른 AppArmor 프로필을 로드하고 싶습니다. Docker 컨테이너 자체는 이 docker-default구성 파일을 사용합니다. 또 다른 구성 파일은 제한을 적용 docker-default하고 컨테이너 내의 모든 파일 시스템 액세스를 크게 제한해야 합니다. 컨테이너 내부의 구성 파일을 변경하는 것은 분명히 불가능하므로 다른 옵션이 있는지 묻고자 이 질문을 게시합니다.

  1. 제가 고려 중인 한 가지 옵션은 docker-default전환을 허용하는 로컬 구성 파일을 작성하는 것입니다. 그러나 나는 이것이 AppArmor 구성 파일에 기록되어야 한다고 생각하는데 docker-default, 이는 거기에 없습니다 /etc/apparmor.d. docker-default구성 파일은 분명히 이것을 기반으로 합니다.주형.

    어떻게 해야 하나요? 로컬 구성 파일을 템플릿에 붙여넣은 다음 실행합니까 apparmor_parser -r -W template.go? 이것을 어떻게 무시합니까 default-docker? 이름으로 template.go docker-default.go?

    docker-defaultDocker가 업데이트되면 이러한 수정 사항을 덮어쓸 수 있으므로 덮어쓰기는 최선의 선택이 아니라고 생각합니다 .

  2. 또 다른 옵션은 실행 중인 컨테이너를 사용하는 것 같습니다 --privileged. 이는 일반적으로 컨테이너의 보안을 약화시키므로 이를 피하고 싶습니다.

내가 작업 중인 설정에 대한 배경 지식: 몇 가지를 작성 중입니다.R 샤인배포된 애플리케이션빛나는 에이전트Ubuntu 20.04 시스템에서. ShinyProxy는 AppArmor 구성 파일을 사용하여 각 애플리케이션 세션을 별도의 Docker 컨테이너로 시작합니다 docker-default. 일부 응용프로그램 기능에서는 사용자가 다음과 같이 R 코드를 입력합니다.샤이닝 에이스백엔드 평가용 콘솔. 일반적으로 사용자가 백엔드에서 코드를 실행하도록 하는 것은 좋지 않지만 이 경우에는 필수입니다. 주로 Docker 컨테이너 내부와 외부에 저장된 파일 시스템과 데이터에 대한 사용자 액세스를 제한하고 싶기 때문에 RAppArmorunix패키지를 사용할 계획입니다. unix::eval_safe시스템의 AppArmor 프로필 중 하나를 실행하는 동시에 기능을 실행할 수 있습니다. docker-default프로필은 전체 애플리케이션 세션 동안 활성화되므로 내부적 unix::eval_safe으로 RAppArmor::aa_change_profile다른 프로필을 로드할 수 있는 방법이 없습니다 .

이 문제에 대한 안전하고 믿을 수 있는 해결책은 무엇입니까?

관련 정보