Docker 컨테이너의 내부에 대한 액세스를 금지하는 방법은 무엇입니까?


14

도커 이미지 형식으로 고객에게 앱을 제공하고 싶습니다. 그러나 최종 사용자가 컨테이너 내부의 내용을 변경하지 않도록하는 것이 중요합니다. 사용자는 컨테이너를 실행 / 중지하고 네트워크를 통해 컨테이너와 상호 작용할 수 있어야합니다.

컨테이너 내부에 대한 접근을 금지 할 수 있습니까? 컨테이너가 만든 이미지의 무결성을 확인할 수 있습니까?


2
도커 호스트를 관리하지 않으면 할 수 없다고 생각합니다. 이 액세스를 차단하여 어떤 문제를 해결 하시겠습니까?
— Tensibai

Tensibai가 언급했듯이 그것은 다릅니다. 이 경우 필요한 컨테이너 보안상의 이유로 수정되지 않은 것을 알고, 당신은 기본적으로 자신의 서버에서 실행해야합니다. 사람들이 문제를 수정하지 않도록 수정하지 못하게하려면 아마도 그렇게 할 수있는 방법이있을 것입니다. 사용 사례를 설명하면 여기에 도움이됩니다.
— Aurora0001

답변:


11

즉, 고객이 자체 인프라에서 실행되는 컨테이너를 수정하지 못하게 할 수 없습니다. 컨테이너는 난독화할 수있는 바이너리와는 다릅니다. 그것들은 런타임 환경입니다. 그러나 컨테이너 내부에 배포하는 코드는 난독 화 될 수 있습니다.

귀하의 질문은 타사 지원 문제, 즉 자신의 환경에서 실행되는 소프트웨어를 수정하는 클라이언트를 암시합니다. 제공 하는 컨테이너 를 운영 하는 도구 (예 : 모니터링 및 로깅)를 제공하는 경우 클라이언트는 소프트웨어 라이센스의 일부로 무단으로 수정하지 않는 데 동의해야합니다. 이는 컨테이너뿐만 아니라 모든 유형의 타사 소프트웨어에 적용됩니다.

상황에 따라 클라우드 인프라에서 실행되는 SaaS (Software As A Service)로 앱을 제공 할 수도 있습니다.

클라이언트가 컨테이너를 인프라에서 실행해야하고 수정 제한 사항을 준수하지 않으면 소프트웨어 사용을 지원하지 않을 수 있습니다.


6

Docker는 컨테이너에 대한 사용자 액세스를 막을 수단을 제공하지 않지만 이미지 개발자는 몇 가지 전략을 따를 수 있습니다

  • 소프트웨어를 난독 처리합니다 (루비, 파이썬 등)
  • 쉘이없는 기본 이미지 및 사용자가 이미지를 짓밟는 데 사용할 수있는 다른 바이너리에서 이미지를 빌드하십시오.

물론 그들은 항상 컨테이너를 내보내고 다시 포장 할 수 있지만 극단적 인 조치입니다 ...


난독 화 코드의 예제로 Ruby와 Python이 제공되는 이유는 무엇입니까? 이러한 언어의 코드는 일반적으로 실행중인 OS에서 일반 텍스트 소스 파일로 유지됩니다. C ++, C #, Java와 같은 컴파일 된 언어 또는 JS와 같이 "축소"될 수있는 언어를 사용하는 것이 바람직하지 않습니까?
— AjaxLeung

5

당신은 고정 표시기 그룹에서 사용자를 제거하고 대한 sudos 만들 수 있습니다 docker start와 docker stop.


3
해당 서버를 소유 한 경우에만 가능 / 효과적 ...
— Dan Cornilescu

5

고객이 돈을 투자 할 준비가되면 Docker enterprise edition을 사용해야합니다. Docker EE에는 UCP(Universal Control Plane) UCP 도구가 있습니다. UCP를 통해 역할 및 액세스 권한을 생성하고 사용자가 컨테이너를 변경 / 수정하도록 제한 할 수 있습니다.

1 개월의 평가판 라이센스가있는 DDC (Docker Data Center)보다 UCP를 테스트하려는 경우 요구 사항에 따라 세부 사항을 정교하게하는 데 도움이됩니다.

이것이 도움이되기를 바랍니다!

감사합니다!


1
도커 그룹에 대한 솔루션으로, 이것은 도커 호스트 시스템 만 관리하면 작동합니다. OP는 이미지를 배포하는 것처럼 들립니다 ...
— Tensibai

2

스크립트를 통해 전달하십시오. 모든 종류의 제한 및 검사를 ansible 스크립트에 보관하십시오.


2
컨테이너에 대한 액세스를 어떻게 방지합니까? 제안이 실제로 OP의 문제를 어떻게 해결하는지 설명하십시오.
— Michael Le Barbier Grünewald
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.