Docker 비밀은 안전한 것으로 간주되므로 보안 수준을 알고 싶습니다. 예상대로 비밀에 대한 서비스 액세스 권한을 부여하면 임시 파일 시스템이 /var/lib/docker/containers/<container ID>/mounts/secrets
서비스 작업을 호스팅하는 노드의 컨테이너 경로( )에 마운트되는 것을 볼 수 있습니다. 그러나 이 경로 내의 파일을 캡처하고 비밀 내용을 볼 수 있습니다.
그렇다면 구성보다 비밀을 더 안전하게 만드는 것이 무엇인지 궁금했습니다. 내가 아는 한 RAM 디스크에 저장된다는 사실이 RAM 디스크와 구성의 주요 차이점입니다. 구성과 비밀은 모두 Raft에서 내부적으로 암호화됩니다. 유일한 차이점은 구성이 RAM 디스크에 있는 비밀이 아니라 컨테이너에 설치될 때 디스크의 파일에 저장된다는 것입니다. 하지만 비밀의 내용을 볼 수 있다면 정말 달라질까?
답변1
안타깝게도,안정감이것은 쉬운 용어가 아닙니다. 차라리 얘기하고 싶어위험 평가그리고위험 수용. 그것은 당신이 얼마나 편집증적인지, 어떤 솔루션이 안전하다고 주장하는지에 대한 질문에 대답하는 것입니다.
문서에 따르면,우리는:
Swarm에 비밀을 추가하면 Docker는 상호 TLS 연결을 통해 Swarm 관리자에게 비밀을 보냅니다. 비밀은 Raft 로그에 저장되고 암호화됩니다. 전체 Raft 로그는 다른 관리자 간에 복제되어 비밀이 나머지 클러스터 관리 데이터와 동일한 고가용성을 보장하도록 보장합니다.
비밀 가용성.컨테이너당조로. 컨테이너가 어느 노드에서 실행될지 알 수 없으므로 이에 대해 너무 신경 쓰지 않아도 됩니다. 즉, 이 비밀은 컨테이너가 실행되는 모든 곳에서 사용할 수 있어야 합니다.
기억 속의 비밀.비밀을 기억에 간직하는 것에 관한 기사가 있는데,여기문제는... 시스템과 메모리 관리를 신뢰하지 않는다면 메모리에 저장된 비밀번호보다 더 큰 문제에 직면하게 될 것이라는 점입니다.
차이점.
당신이 그것을 실현할 수 있다고 말해요거의비밀 파일을 암호화된 상태로 유지하는 것도 마찬가지입니다.OpenSSL, 암호화되지 않은 콘텐츠를 해독하고 메모리에 저장합니다. 이 모든 작업을 수동으로 수행해야 합니다.