한국어

개발자 도구 · Docker 작성 변환기로의 Docker 실행

--privileged, --cap-add 및 --device: Compose 파일에서의 의미

· 그것이 중요한 이유

도커 작성 보안

--privileged, --cap-add 및 --device를 설명하는 추상 다이어그램: 작성 파일에서 이들의 의미
원본 ToolAcre 벡터 일러스트레이션

하나의 플래그는 Docker의 격리 대부분을 끕니다. 이 게시물에서는 --privileged가 실제로 부여하는 것, 더 좁은 대안, 특권 하에서 어떻게 보이는지, cap_add: 및 devices: 변환 후 설명합니다.

포럼에서는 add --privileged라고 말했습니다. 이제 컨테이너가 작동하고 컨테이너를 매력적으로 만들었던 격리 기능이 대부분 사라졌습니다.

포럼에서는 add --privileged라고 말했습니다. 이제 컨테이너가 작동하며 컨테이너를 매력적으로 만들었던 격리 기능이 대부분 사라졌습니다. 증거: --privileged는 안전 보증 없이 특권 true가 됩니다. 일회용 리터럴로 최소 권한을 재현합니다. 각 소스 발생을 권한 있는 기능 장치와 결합합니다. 목적지 검토를 위해 호스트 제한 및 액세스를 예약합니다.

보안 사고는 또한 --device가 인식되지만 호스트에 따라 경고되고 생략된다는 별도의 보안 사고 경계가 있음을 보여줍니다. 증거: --device는 인식되지만 호스트에 따라 경고되고 생략됩니다. 이 최소 권한 제약 조건은 중지 지점입니다. 제조 동작 없이 권한 있는 기능 장치를 검사한 다음 호스트 제한 및 액세스에 대한 호스트 검사를 문서화합니다.

--privileged의 기능 — 모든 기능, 모든 장치에 대한 액세스, 완화된 seccomp 및 AppArmor 제한

--privileged의 기능 — 모든 기능, 모든 장치에 대한 액세스, 완화된 seccomp 및 AppArmor 제한. 증거: 호스트 감금 효과는 명령 텍스트에서 열거할 수 없습니다. 최소 권한 토큰을 권한 있는 기능 장치로 추적합니다. 순서가 지정된 값을 마지막 값 필드와 구분하세요. 호스트 감금 및 액세스는 수집 외부에 있습니다.

관련 보안 메커니즘 경계는 별도의 보안 문법 경계는 이전 권한 명령에서 필요한 Zigbee 액세스를 유추할 수 없다는 것입니다. 증거: 필요한 Zigbee 액세스는 이전 권한 있는 명령에서 추론할 수 없습니다. 이 최소 권한 사실을 사용하여 권한 있는 기능 장치에서 하나의 멤버 또는 스칼라를 예측합니다. 호스트 제한 및 액세스에 대해 결정하기 전에 경고를 확인하세요.

기능 대신 — cap_add: NET_ADMIN, SYS_TIME 또는 기타를 좁은 버전으로 사용하고 cap_drop: ALL을 기준으로 사용

기능 대신 — cap_add: NET_ADMIN, SYS_TIME 또는 기타를 좁은 버전으로 사용하고 cap_drop: ALL을 기준으로 합니다. 증거: --cap-add 및 --cap-drop은 명시적으로 순서가 지정된 목록이 됩니다. 해당 모델에서 최소 권한 직렬화를 판단합니다. 권한 있는 기능을 인용하는 장치는 유형을 보호하지만 호스트 제한 및 액세스에 대한 작동 증거를 제공하지 않습니다.

두 번째 보안 직렬화 관찰은 별도의 보안 출력 경계는 경고가 공백을 보존하는 동안 표시되는 권한 있는 키가 검토를 지원한다는 것입니다. 증거: 눈에 보이는 특권 키는 검토를 지원하는 반면 경고는 공백을 보존합니다. 이 최소 권한 출력은 설정을 사용할 수 없는 컨텍스트와 분리합니다. 권한 있는 기능 장치를 검토 가능하게 유지하고 호스트 제한 및 액세스를 독립적으로 확인합니다.

--장치가 인식되지만 의도적으로 변환되지 않습니다. 호스트별 장치 목록을 수동으로 추가

장치 대신 — --device /dev/ttyUSB0 장치가 됨: 사람들이 --privileged에 도달한 일반적인 실제 이유입니다. 증거: --device는 인식되지만 호스트에 따라 경고되고 생략됩니다. --장치가 인식되지만 의도적으로 변환되지 않습니다. 호스트별 장치 목록을 수동으로 추가합니다. 추측하는 대신 최소 권한 예외에서 중지하세요. 권한 있는 기능 장치 근처에 추가하려면 호스트 제한 및 액세스와 관련된 배포별 이유가 필요합니다.

또 다른 보안 예외 제약 조건은 이 보안 섹션의 경우 이 보안 섹션 명령에 대한 원본과 이 보안 섹션에 대한 경고를 이 후보 파일 옆에 보관해야 한다는 것입니다. 증거: 저장소는 더 넓은 런타임이나 기록 증거를 제공하지 않습니다. 경고 옆에 원래의 최소 권한 명령을 유지하십시오. 비교를 통해 장치에 어떤 권한 있는 기능이 포함되어 있는지, 어떤 호스트 제한 및 액세스 결정이 수동으로 유지되는지 보여줍니다.

권한 취소 편집에는 이 변환기가 필요한 장치나 기능을 추론할 수 없기 때문에 운영자의 판단이 필요합니다.

작동 예: Zigbee 브리지 명령 권한 해제 — --privileged를 장치 항목 및 단일 기능으로 대체합니다. 증거: 필요한 Zigbee 액세스는 이전 권한 있는 명령에서 추론할 수 없습니다. 권한 해제 편집에는 이 변환기가 필요한 장치나 기능을 추론할 수 없기 때문에 운영자의 판단이 필요합니다. 합성 이름으로 최소 권한 예제를 구축합니다. 프로덕션 호스트 제한 및 액세스 세부 정보를 노출하지 않고도 모든 권한 있는 기능 장치 항목을 추적 가능하게 만듭니다.

동일한 보안 예제 샘플은 이 보안 섹션에 대해 이 보안 섹션 명령에 대한 원본과 이 보안 섹션에 대한 경고를 이 후보 파일 옆에 유지한다는 것을 보여줍니다. 페어링된 최소 권한 사실은 권한 있는 기능 장치에 표시되어야 합니다. 해당 행을 기록하고 호스트 제한 및 액세스에 대한 가정을 피하십시오.

변환된 YAML을 검토로 읽기 — 특권: true는 쉘 라인의 플래그와는 달리 차이점에서 두드러집니다.

변환된 YAML을 검토로 읽기 - 특권: true는 쉘 라인의 플래그와는 달리 차이점에서 두드러집니다. 최소 권한 결과를 하나의 관찰 가능한 권한 있는 기능 장치 차이로 변환합니다. Docker는 이후의 호스트 제한 및 액세스 결과를 소유합니다.

보안 결과 구현은 또한 --privileged가 안전 보증 없이 특권이 true가 된다는 별도의 보안 효과 경계를 보여줍니다. 최소 권한 책임 분할: 변환은 권한 있는 기능 장치를 쓰고, 저장소는 비밀을 제거하고, 운영자는 호스트 제한 및 액세스를 검증합니다.

여기에 포함되지 않는 내용 — GPU 액세스, 사용자 정의 seccomp 프로필 및 Kubernetes 보안 컨텍스트

여기서 다루지 않는 내용 — GPU 액세스, 사용자 정의 seccomp 프로필 및 Kubernetes 보안 컨텍스트. 증거: GPU 예약 및 사용자 정의 프로필이 생성되지 않습니다. 여기에 표시된 권한 있는 기능 장치 분기로 최소 권한 범위를 제한합니다. 인접한 양식과 기본값은 호스트 제한 및 액세스 질문에 답할 수 없습니다.

보안 범위 제한이 하나 더 있습니다. 별도의 보안 제한 경계는 명령 텍스트에서 호스트 감금 효과를 열거할 수 없다는 것입니다. 이 최소 권한 경계를 제외로 처리합니다. 호스트 제한 및 액세스에 대한 추측보다 정확한 권한 있는 기능 장치를 선호합니다.

매핑되면 권한이 표시되지만 지원되지 않는 장치 액세스는 생성된 키가 아닌 경고로 남아 있습니다.

요점: 권한은 명시적이고 최소화되어야 하며 변환기는 이를 질문할 수 있는 키로 표시합니다. 증거: 최소 권한에는 전환 이상의 인간 설계가 필요합니다. 매핑되면 권한이 표시되지만 지원되지 않는 장치 액세스는 생성된 키가 아닌 경고로 남아 있습니다. 소스 옵션, 모델 필드, 권한 있는 기능 장치 라인 및 경고로 최소 권한을 감사합니다. 호스트 제한 및 액세스를 확인하기 전에 비밀을 제거하십시오.

마지막으로 보안 테이크아웃 소스는 이 보안 섹션에 대한 원래 명령을 유지하고 이 보안 섹션 구문 분석에 대한 동등 쉘을 약속하지 않고 보안 테이크아웃 결론이 이 보안 섹션에 대한 감사 가능성을 향상시킨다는 이 후보 파일 옆에 경고를 확인합니다. 최소 권한을 좁게 닫습니다. 권한 있는 기능 장치가 후보입니다. 호스트 제한 및 액세스와 쉘 동등성은 보장되지 않습니다.