このプロジェクトについて

Bottlerocket OSは、Amazonがコンテナワークロードを安全かつ確実にホストするために設計した、無料のオープンソースLinuxベースのオペレーティングシステムです。従来の汎用Linuxディストリビューションとは異なり、Bottlerocketはデフォルトのランタイム環境からパッケージマネージャーや対話型シェルなどの不要なコンポーネントを削除することで、攻撃面を最小限に抑えます。そのアーキテクチャは、セキュリティ、保守性、一貫性を優先しています。 主な機能: - 不変のファイルシステム: ルートファイルシステムは読み取り専用で、安定性を損なう可能性のある不正または偶発的な変更を防ぎます。 - API駆動の設定: システム設定は手動のファイル編集ではなく、ローカルHTTP APIを介して管理されます。これにより、構造化され検証された設定変更が可能になり、更新時に自動的に移行されます。 - 信頼性の高い更新: Bottlerocketはデュアルパーティション更新メカニズム(A/Bパーティション)を使用します。The Update Framework (TUF) で保護された完全なファイルシステムイメージをダウンロードし、新しいバージョンで再起動します。起動に失敗した場合、自動的に以前の状態にロールバックします。 - ホストコンテナ: 管理タスクは、メインのオーケストレーターの外部で実行される別のコンテナ(コントロールおよびアドミンコンテナ)に分離され、管理オーバーヘッドがワークロードのパフォーマンスに影響を与えないようにします。 サポートされる環境: 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. コントロールコンテナ: AWS Systems Manager (SSM) Session Managerを使用して、ネットワークにさらすことなくコマンドを実行し、ログを表示します。 2. アドミンコンテナ: `sheltie` を介して高度なデバッグとルートシェルアクセスを提供するオプションのコンテナです。 設定は `apiclient` ツールを使用するか、インスタンス初期化中にTOML/JSON設定を渡すことで処理されます。システムは、Kubernetesクラスター統合、ECSエージェント設定、ネットワークプロキシ、NTP、カーネルパラメータ、カスタムCA証明書など、さまざまな設定をサポートしています。 コミュニティと貢献: Bottlerocketは、GitHubディスカッションやMeetupグループを通じてコミュニティの参加を奨励しています。貢献はコントリビューターガイドを通じて歓迎されます。セキュリティの問題は、公開のイシュートラッカーではなく、セキュリティチームに直接報告する必要があります。 アーキテクチャ: このOSはx86_64およびARM64 (aarch64) アーキテクチャをサポートしており、サポートされているクラウドプロバイダー内の幅広いハードウェア展開に適しています。