- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`ID: docker-best-practices/service-writable-filesystem
Language: YAML
Severity: Warning
Category: Security
CWE: 732
This rule advises against configuring services with a writable filesystem in Docker Compose files. Allowing a writable filesystem can increase the attack surface by enabling potential attackers or malicious processes to modify the container’s file system, which could lead to unauthorized changes or persistence of malicious code.
Ensuring that services run with a read-only filesystem enhances security by preventing in-container modifications during runtime. This practice helps maintain the integrity of the container environment and reduces the risk of accidental or intentional file tampering.
To comply with this rule, explicitly set read_only: true
for your service definitions in the Docker Compose YAML file. For example, use read_only: true
under the service configuration to enforce a read-only root filesystem.
By adopting this approach, you improve the overall security posture of your containerized applications and make them more resilient against attacks or unintended changes.
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
read_only: false
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py
version: '3.3'
services:
postgres:
build:
context: .
dockerfile: Dockerfile.db
ports:
- 5432:5432
redis:
image: redis:alpine
read_only: true
sqli:
build:
context: .
dockerfile: Dockerfile.app
depends_on:
- postgres
- redis
ports:
- 8080:8080
command: |
wait-for postgres:5432 -- python run.py