내 프로젝트의 Python 환경을 관리하는 방법을 알아보는 동안 Docker 사용을 고려하고 있습니다.컨테이너. 나는 데비안 위키를 이해하기 시작했습니다.경고하다, 좋다기타 온라인 리소스, Docker 커뮤니티의 위험에 대해 설명합니다. 하지만 잘 모르겠습니다.
Docker 자체를 설치한 후 Docker 그룹을 생성할 가능성이 위험합니까?
즉, 블로그에서 제안한 대로 Docker를 설치하고 그룹을 만들지 않거나 그룹에 자신을 추가하지 않는 경우 Docker를 사용하여 환경을 관리하는 데 위험이 있습니까(참고: 저는 유일한 사용자입니까)?
그러나 동일한 환경에서 여러 프로젝트를 작업하면 구성 또는 종속성 충돌이 발생할 수 있으므로 빠르게 문제가 될 수 있습니다. 또한 팀원과 프로젝트를 공유할 때 환경을 조정해야 합니다. 이를 위해서는 쉽게 공유할 수 있는 방식으로 프로젝트 환경을 정의해야 합니다.
좋은 접근 방식은 각 프로젝트에 대해 별도의 개발 환경을 만드는 것입니다. 이는 컨테이너와 Docker Compose를 사용하여 관리하면 쉽게 수행할 수 있습니다.
편집: 이런, 중복되었을 수도 있다는 걸 방금 깨달았습니다.Docker는 거대한 보안 허점을 설치합니까?
답변1
위험이 추가됩니다.사용자가 있습니다이러한 사용자는 추가 액세스 제어 없이 루트에 대한 간단한 경로를 제공하기 때문입니다. 그 밖에도 그런 것들이 있다Debian 시스템의 그룹예를 들어 disks
Docker를 설치하고 docker
그룹을 만드는 것 자체로는 위험이 증가하지 않습니다. 그러한 그룹에 사용자를 추가하지 않더라도 문제가 되지 않습니다. 그룹에 사용자를 추가하는 것은 어쨌든 권한 있는 작업이기 때문입니다(따라서 공격자가 이를 수행할 수 있다면 이미 실패한 것입니다).
권한 있는 데몬 실행과 관련된 특정 위험도 있습니다. 예를 들어 권한 있는 Docker 데몬을 전혀 실행하지 않는 다른 솔루션을 살펴볼 수도 있습니다.보드맨또는 특별히 Python 프로젝트에 대해 이 문제를 해결하고 있기 때문에Python 가상 환경.
답변2
제 생각에는 컨테이너 시스템/서비스(예: Docker 또는 LXD/LXC) 또는 클라우드 서비스(예: Amazon Elastic Container Service(EC2), Amazon Elastic Container Service for Kubernetes, Microsoft Azure Kubernetes Service 및 Google Kubernetes Engine(GKE) )는 모든 부분을 마이크로서비스로 나누어 별도로 테스트, 사용, 공유할 수 있고, 획일적인 시스템에서 벗어나 영리한 전략을 사용할 수 있기 때문에 일반적인 소프트웨어 개발에 가장 적합한 솔루션입니다.
컨테이너 시스템은 특정 개발 환경이나 시스템을 빠르고 쉽게 설정 및 가동하고, 테스트 및 사용해 볼 수 있으며, 가상 머신이나 모놀리식 시스템보다 리소스를 더 효율적으로 사용 및 관리할 수 있기 때문에 소프트웨어 개발을 위한 최선의 선택입니다.
제 생각에는 개발 환경, 테스트 환경, 프로덕션 환경 등 최소한 3개의 독립적인 소프트웨어 프로젝트 시스템이 있어야 하며, 물리적으로나 논리적으로 독립된 것이 가장 좋을 것입니다(이제는 별로 의미가 없습니다). 소규모 프로젝트) 프로젝트는 물리적, 논리적으로 완전히 분리됩니다.
안전한 것은 없습니다. 여기서는 docker의 구성뿐만 아니라 전체 시스템 자체의 구성도 중요합니다.
운영 체제 구성 방법, 운영 체제에서 실행 중인 다른 소프트웨어, 네트워크 및 방화벽 설정 방법, 그룹 및 데이터 공유 및 사용 방법 등.
이 모든 질문에 하나의 대답으로 답할 수는 없으며 고려해야 할 요소가 많이 있다는 것을 알게 될 것입니다.
어쨌든 docker와 같은 컨테이너 서비스에 대해 작업하고 익숙해지는 것은 보너스가 될 것입니다.
Docker 설치에는 본질적인 위험이 없지만 Docker 그룹 생성과 관련된 잠재적인 위험을 이해하는 것이 중요합니다.
Docker 그룹을 사용하면 사용자가 루트 권한 없이 Docker 컨테이너를 실행할 수 있으므로 편리하고 보안이 향상됩니다.
Docker 그룹은 적절하게 관리되지 않는 경우 보안 취약점을 생성할 수도 있습니다. 또는 적절한 인증 및 권한 부여 없이 사용자가 그룹에 추가되면 해당 사용자가 임의의 Docker 컨테이너를 실행할 수 있어 잠재적으로 데이터 유출, 맬웨어 감염 및 기타 보안 문제가 발생할 수 있습니다. 사건.
Docker 그룹을 안전한 방식으로 생성하고 관리해야 합니다. 예를 들면 다음과 같습니다.
- Docker 그룹에 액세스할 수 있는 사용자 수 제한
- Docker 그룹에 추가된 사용자는 적절하게 인증되고 권한이 부여됩니다.
- Docker 컨테이너 활동을 모니터링하여 무단 액세스 및 악의적인 활동을 감지하고 방지합니다.
- 보안 패치 및 업데이트를 통해 Docker를 최신 상태로 유지하세요.
- 교통은 무제한입니다
- 기본적으로 일부 Docker 버전은 동일한 호스트에서 모든 네트워크 트래픽을 허용합니다.
- 취약하고 악의적인 컨테이너 이미지
- 무제한 액세스
- 호스트 커널에 취약점이 있습니다
- 컨테이너 혁신
별도의 도커 그룹을 만드는 것은 보안 위험을 나타내지 않습니다(정확히 귀하가 요청한 것입니다). 하지만 이 그룹에 사용자를 추가하면 공격 표면이 늘어날 수 있습니다(아마도 이것이 바로 여러분이 묻고 싶은 내용일 것입니다). 실제 보안 위험은 위협 모델에 따라 다릅니다.
https://security.stackexchange.com/questions/178542/is-adding-docker-group-not-a-good-idea