프로젝트 소개
Bottlerocket OS는 Amazon이 컨테이너 워크로드를 안전하고 신뢰성 있게 호스팅하기 위해 설계한 무료 오픈소스 Linux 기반 운영체제입니다. 전통적인 범용 Linux 배포판과 달리 Bottlerocket은 기본 런타임 환경에서 패키지 관리자와 대화형 셸 같은 불필요한 구성 요소를 제거하여 공격 표면을 최소화합니다. 그 아키텍처는 보안, 유지보수성, 일관성을 우선시합니다.
주요 기능:
- 불변 파일시스템: 루트 파일시스템은 읽기 전용으로, 안정성을 저해할 수 있는 무단 또는 우발적 수정을 방지합니다.
- API 기반 구성: 시스템 설정은 수동 파일 편집 대신 로컬 HTTP API를 통해 관리됩니다. 이를 통해 구조화되고 검증된 구성 변경이 가능하며, 업데이트 시 자동으로 마이그레이션됩니다.
- 신뢰할 수 있는 업데이트: Bottlerocket은 이중 파티션 업데이트 메커니즘(A/B 파티션)을 사용합니다. TUF(The Update Framework)로 보호되는 전체 파일시스템 이미지를 다운로드하고 새 버전으로 재부팅합니다. 부팅에 실패하면 자동으로 이전 상태로 롤백됩니다.
- 호스트 컨테이너: 관리 작업은 메인 오케스트레이터 외부에서 실행되는 별도의 컨테이너(Control 및 Admin 컨테이너)에 격리되어, 관리 오버헤드가 워크로드 성능에 영향을 미치지 않도록 합니다.
지원 환경:
Bottlerocket은 다양한 컨테이너 오케스트레이터와 클라우드 플랫폼에 맞춘 특정 변형을 제공합니다:
- AWS EKS(Kubernetes): `aws-k8s-1.31`부터 `1.36`까지의 변형, NVIDIA GPU 지원 버전 포함.
- AWS ECS: `aws-ecs-2` 및 `aws-ecs-3` 같은 변형, 표준 및 FIPS 준수 모드 모두 지원.
- VMware: Kubernetes 워커 노드 변형(`vmware-k8s-*`).
접근 및 관리:
기본적으로 SSH는 보안 강화를 위해 비활성화되어 있습니다. 관리자는 다음을 사용하여 시스템에 접근할 수 있습니다:
1. Control 컨테이너: AWS Systems Manager(SSM) Session Manager를 사용하여 네트워크 노출 없이 명령을 실행하고 로그를 확인합니다.
2. Admin 컨테이너: 고급 디버깅을 위해 SSH 접근을 제공하고 `sheltie`를 통해 루트 셸 접근을 제공하는 선택적 컨테이너입니다.
구성은 `apiclient` 도구를 통해 처리되거나 인스턴스 초기화 중 TOML/JSON 설정을 전달하여 처리됩니다. 시스템은 Kubernetes 클러스터 통합, ECS 에이전트 구성, 네트워크 프록시, NTP, 커널 매개변수, 사용자 지정 CA 인증서를 포함한 다양한 설정을 지원합니다.
커뮤니티 및 기여:
Bottlerocket은 GitHub 토론과 Meetup 그룹을 통해 커뮤니티 참여를 장려합니다. 기여자 가이드를 통해 기여를 환영합니다. 보안 문제는 공개 이슈 트래커가 아닌 보안 팀에 직접 보고해야 합니다.
아키텍처:
이 OS는 x86_64 및 ARM64(aarch64) 아키텍처를 지원하여 지원되는 클라우드 제공자 내 다양한 하드웨어 배포에 적합합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.