에디터의 참고: 컨테이너의 안전에 관해서, 대부분의 사람들이 그것은 충분히 안전 하 게 높은 성능 및 편의 제공 포기 하지 말. 이 문서의 저자 생각 독 노동자 이미 안전 모드를 제공 하 고 SELinux, AppArmor, 하지만 많은 사람들이 사용 하지 않는 잘 같이 모든 리눅스 보안 설정을 사용할 수 있습니다. 베어 메탈, VM과 컨테이너 건물, 아파트 및 개인 객실에 비교 하 여 저자는 문제를 보여 줍니다. 물론, 보기의 다른 지점에서 저자 고려 단일 거주자, 다중 소유 컨테이너 보안 상황의 문제는 아직도 충분.
지난해부터 리눅스 컨테이너 기술과 대 광고의 최전선 이었고 컨테이너 안전에 대 한 다양 한 논의 어디에 나. 게시 된 토론, 기사 및 블로그의 대부분에서는, vm 비교 불가피 하다, 또는 하지 여부. 이야기의 진실 "컨테이너 항상" 및 "Vm 때때로"에 가까운 이다. 물론, 일부 사용자가 VM 독 노동자를 사용 하 여 후에 재평가 시작 있습니다. 대부분의 경우, 사용자는 VM 수명 주기 관리를 사용 하는 동안 보안-가상화 오버 헤드를 피하고 단일 테 넌 트 환경에서 확실히 더 바람직한 보다 성능 쪽으로 더 편향입니다.
그러나, 독 노동자 대안 하지만 보안을 위해 VM을 사용 하는 이러한 솔루션을 보완 하지 않습니다.
일반적으로, 완전, VM 및 컨테이너 건물, 아파트 및 개인 객실에 비교를 선호 합니다. 리눅스 컨테이너 VM에 존재할 수 있으며 그들은 벌 거 벗은 금속에 직접 실행할 수도 있습니다. 실제 생활에서 몇 친구 들 아파트, 있을 수 있습니다 그리고 그들은 별도로 그들의 개인실을 사용. 하지만 거기에 의심의 여 지는 데 자신의 아파트와 동일. 몇 친구와 함께 아파트를 공유 하려는 경우이 사람들이 당신에 게 완전히 믿을 수 있어야 합니다. 그럼에도 불구 하 고, 보안의이 종류는 특정 조건 에서만 수 그리고 한계가 있다.
내 아내와 나 12 년 동안 결혼 하 고 두 아이 우리와 함께 살고 있다. 내 아내와 나는 방에 살고 아이가 다른 방에서 살고 그리고 세 번째는 내 홈 오피스. 별도 아파트에서 아이 들을 퍼 팅 많은 이해가 되지 않습니다, 그리고 그냥 추가 openssh로 자신의 VM에 데몬 분리는 응용 프로그램에서.
아 이들이 그들의 자신의 개별 실, 미래는 그들은 그들의 부모의 침대에 유지 되지 않습니다 하지만 결과 (해당 되는 경우 3-올해-된 딸 그녀의 자신의 아파트를 준비, 것 이다 필연적으로 CPS 응용 프로그램 실행) 만족 하지 않습니다.
내 홈 오피스는 금 단의 영역 있는데이 방에 대 한 사용자 지정 방화벽 내 아이, 아직 올 것 이다 하지만 자주. 심지어 2-세 인지는 아버지의 공간과 존중 설정.
컨테이너, 개인실, 같은 귀중 한 개인 정보 보호에-어떤 이유로, 그것은 종종 여러 프로세스가 동일한 호스트에 VM을 혼합 해야 하. 컨테이너 환경에서 이러한 프로세스 격리, 그리고 Vm의 보안 이점을 존재 중지 해야.
버그, 하지만 유용한 기능 같은 컨테이너 사이 느슨한 격리 되지 않습니다. 컨테이너에서 실행 되는 프로세스는 동일한 VM에서 실행 중인 가정, 그러나 그것은 좋은 이러한 프로세스 간에 엄격한, 세밀 한 액세스 제어를 구현 하.
실제로 호스트에도 컨테이너를 실행 하는 단일 프로세스 실행 보호할 수 있습니다 당신의 보안. 누가 우리가 미래에 어떤 일반적인 프로세스 실행 되지 않습니다 보장할 수? 등 SYSLOGD, sshd는 일반적으로 호스트에서 실행 됩니다. 이것은 분명히 불가능, 그리고 여기 우리는 VM 직접 로드 네트워크 서버는 초기화 프로세스 (PID 1)으로 추측할 수 있다.
그래서 무엇이 프로세스의 결과 수? 그것은 무엇을 할 수? 원래 네트워크 프레임을 보낼 수? 루트를 높일 수? 시스템에서 setuid 루트 경우 높을 수 있다 그것은? 그것은 DAC 재작성 할 수 하거나, 파일 시스템을 마운트 또는 루트 권한 가진 사용자만이 할 수 있는 다른 것 들을 할?
물론, SELinux 프로세스를 보호 하기 위해 사용할 수 있습니다. 하지만 믿습니다 많은 DevOps 엔지니어는 selinux를 비활성화 하 고, 많은 사람들이 다시 그들의 자신의 selinux 전략, 그리고 심지어 읽기 SELinux 전략은 매우 소수의 사람. 오늘, 현재 리눅스 시스템의 얼마나 많은 SELinux 기본 보안 정책에 대 한 사용 독 노동자? 여기에 장애물은 무엇입니까?
예, 응용 프로그램은 이러한 권한을 취소할 수 있지만 애플 리 케이 션과 개발자가 옳은 일을 해야. 물론, 선택할 수 있습니다 또한 독 노동자는 상자를 사용 하 여.
즉, VM을 사용 하 여도 의미 하지 않는다 당신이 실행할 수 있는 "Chmod-r 777 /" 호스트에. 시스템, 프로세스에 필요한 보안 정책을 제공 합니다 하지만 당신은 수 있을 그들을 사용 하지. 독 노동자는 열기 상자의 최대 범위 내에서이 기능을 제공 하는 도구입니다.
위의 문제 DevOps, 도구와 문화의 성공의 열쇠는 의심의 여지가 있다. 대부분의 조직에 대 한 "DevOps"는 일반적으로 "부드러운 작전" (소프트웨어 수준에 작전). 과거에 개발자가 구축 하 고 배포 응용 프로그램, 특히 VM에에서 더 많은 권한이 필요 합니다. 이 또한 관심사의 별거에 지도, 보통 하드-작전 (작전 하드웨어) 엔지니어 하드웨어와 네트워크 인프라의 건강에 대 한 책임만 있습니다. 그 실행 AWS 또는 GCE 서비스에 대 한 하드-작전 구글과 AWS 아웃소싱 이다.
하드-작전 엔지니어, 전통적인 시스템 관리자 및 보안 엔지니어, 응용 프로그램 배포 및 보안 문제를 평가 하는 데 도움이 그들이 할 수 사용. 일부 기관에서 그들은 여전히 같은 일에 종사 될 수 있습니다. 하지만 거기에 의심의 여지가 자기-provisioning-에서-한-거품 모델을 사용 하는 개발자의 수는 증가 하 고 있다.
불행히도, devsecops (또는 secdevops)에 많이 진행 되지 않습니다. 같은 시간에 "No 작전"에 DevOps 기울기로 사람들의 보안 우려 수 있습니다 수 말기.
독 노동자, devops 도구로 사용자에 대 한 보안 모델을 제공 하 고 조정 하는 더 편리 하 고 쉽게 모델을 하 여이 상황을 변경 합니다. 독 노동자 옮길 것 이다 안전 하 고 효과적으로 그들 개발자의 손에 발에 자신을 촬영 하는 피하기 위해.
독 노동자, 사용자는 기본적으로는 엄격한 일련의 기능을 얻을 것 이다와이 기능을 얻을 수만 몇 가지 명령줄 매개 변수를 조정 해야 합니다. 같은 시간에는 리눅스 시스템 호출 설명서의 이전 독서를 비교 하 고 다음 디버깅의 공포만 하면 런타임에 간단한 마크를 설정 (아마도 미래에이 작업을 더 쉽게 수행할 수 있습니다 Dockerfile에 의해).
컨테이너 보안은 확실히 좋은 보안 보증, Sys_setcap ()를 사용 하 여 응용 프로그램에 우수한 하지만 컨테이너에 대 한 다른 모범 사례와 충돌 하지 않습니다. 그것은 VM와 일치, 실행에 잘 맞는 수 있습니다. 동시에 그것은 SELinux와 AppArmor, 충돌 하지 않습니다 하지만 좋은 배치에도 사용할 수 있습니다. 사실, 당신이 그것을 사용 후 리눅스에 존재 하는 모든 보안 솔루션 독 노동자 통해 할 수 있습니다 찾을 수 있습니다.