2017-12-29 10 views
0

ubuntu 이미지에서 도커 컨테이너를 만들었습니다. 다른 사용자는 docker exec -it CONTAINER_ID bash에 의해이 컨테이너에 연결할 수 있습니다. 이 명령에 사용자 이름과 암호를 추가하는 방법이 있습니까? 내 컨테이너에 다른 사용자가 액세스하는 것을 원하지 않습니다. 사용자가 docker exec 명령을 내 컨테이너에 첨부 할 때 사용자 이름과 비밀번호를 묻는 메시지가 표시됩니다. 사용자는 올바른 사용자 이름과 암호를 입력 한 후에 만 ​​연결할 수 있습니다. ssh가하는 것과 같습니다.`docker exec` 명령에 대한 자격 증명을 추가하는 방법

+0

정확히 무엇을하려합니까? –

+0

죄송합니다. 명확하지 않았습니다. 내 게시물을 업데이트했으며'docker exec' 명령이 사용자 이름과 암호를 요구합니다. 'ssh' 또는'telnet' 명령과 같습니다. –

+0

Docker exec는 SSH와 매우 다르다. 당신은 쉘을 열지 않고 문자 그대로 방금 임의의 프로세스를 실행하고있다. 다른 사용자가 먼저 컨테이너에 손을 대지 않도록해야합니다. –

답변

1

docker 명령 줄에서 사용되는 docker 소켓에 대한 액세스는 호스트 및 해당 호스트에서 실행중인 모든 컨테이너에 대한 sysadmin 수준 액세스로 간주되어야합니다.

TLS 자격 증명 및 클라이언트 인증서 유효성 검사를 사용하여 포트에서 수신 대기하도록 docker 데몬을 구성 할 수 있습니다. 그러나 일단 사용자가 docker API 호출에 액세스하면 모든 로그인 프롬프트없이 모든 사용자에게 액세스 할 수 있습니다.

docker 용 authz 플러그인을 구현 한 Twistlock에서 제공하는 타사 플러그인을 사용해 볼 수 있습니다. 이렇게하면 특정 TLS 클라이언트 인증서에 대한 exec 호출에 대한 액세스를 제한 할 수 있습니다. 그러나 어떤 컨테이너에 exec 할 수 있는지는 제한하지 않습니다.

Docker의 EE 오퍼링, 특히 UCP와 가장 가까운 것일 수도 있습니다. 상업용 도구이지만 웹 기반 요청을 사용하는 사용자/암호 옵션과 exec과 같은 호출에 대한 액세스를 특정 사용자 및 특정 컬렉션으로 제한 할 수있는 RBAC 보안을 포함하여 자체 인증을 수행하는 다른 API 진입 점을 제공합니다. 컨테이너.

컨테이너 측에서이 작업을 수행하려는 경우 작동하지 않을 것 같습니다. Exec은 컨테이너 네임 스페이스 내에서 직접 Linux exec syscall로 실행되므로 해당 액세스를 방지하기 위해 할 수있는 컨테이너 내부에는 아무 것도 없습니다. 가장 좋은 방법은 컨테이너에서 누군가를 실행할 수 없도록하려는 이미지의 명령을 제거하는 것입니다.