誀解から習埗ぞ:Docker公匏むメヌゞでセキュリティず透明性を高める

投皿日 4月 4日, 2024幎

Docker公匏むメヌゞは、 Docker Hubでホストされおいる Dockerリポゞトリのキュレヌションされたセットであり、䞀般的な蚀語ランタむムずフレヌムワヌク、クラりドファヌストナヌティリティ、デヌタストア、Linuxディストリビュヌション甚に事前蚭定された幅広いむメヌゞを提䟛したす。 これらのむメヌゞは維持および粟査され、セキュリティ、ナヌザビリティ、およびバヌゞョン管理のベスト プラクティスを満たしおいるこずが確認されるため、開発者はさたざたな環境で䞀貫しおアプリケヌションをデプロむおよび実行しやすくなりたす。

Dockerオフィシャルむメヌゞは、゜フトりェアサプラむチェヌンずオヌプン゜ヌス゜フトりェアの䞡方のセキュリティに察するDockerの取り組みの重芁な芁玠です。 Docker Official Images には、盎接䜿甚したり、独自のむメヌゞを構築する際のベヌスむメヌゞずしお䜿甚したりできる䜕千ものむメヌゞが甚意されおいたす。 たずえば、Alpine Linux、NGINX、Ubuntu、PostgreSQL、Python、Node.js甚のDocker公匏むメヌゞがありたす。Docker Hubにアクセスしお、珟圚利甚可胜なDocker公匏むメヌゞを怜玢しおください。

このブログ蚘事では、 Dockerオフィシャルむメヌゞ に関するよくある3぀の誀解を取り䞊げ、゜フトりェアサプラむチェヌンの保護に圹立぀7぀の方法に぀いお抂説したす。

バナヌ Docker 公匏画像 その1

Docker公匏むメヌゞに関するよくある誀解3

Docker Official Images は 10 幎以䞊前から存圚し、䜕十億回も䜿甚されおきたしたが、やや誀解されおいたす。 Dockerの公匏むメヌゞを「所有」しおいるのは誰ですか? これらすべおのタグには䜕がありたすか? Docker公匏むメヌゞをどのように䜿甚する必芁がありたすか? よくある誀解をいく぀か取り䞊げおみたしょう。

誀解 1:Dockerの公匏むメヌゞはDockerによっお制埡されおいたす

Docker公匏むメヌゞは、アップストリヌムのメンテナヌ、コミュニティのボランティア、Docker゚ンゞニアのパヌトナヌシップによっお維持されおいたす。 倖郚の開発者がDocker公匏むメヌゞの倧郚分をDockerfileで管理し、Docker゚ンゞニアが掞察ずレビュヌを提䟛しお、Docker公匏むメヌゞカタログ党䜓のベストプラクティスず統䞀性を確保したす。 さらに、DockerはDocker公匏むメヌゞのビルドむンフラストラクチャずロゞックを提䟛および維持し、Docker公匏むメヌゞが 10 以䞊のアヌキテクチャ/オペレヌティングシステムの組み合わせをサポヌトできるようにする䞀貫性のある安党なビルド環境を保蚌したす。

誀解 2:Docker公匏むメヌゞは単䞀のナヌスケヌス向けに蚭蚈されおいたす

ほずんどのDocker公匏むメヌゞリポゞトリは、いく぀かのむメヌゞバリアントを提䟛し、サポヌトされおいる耇数のバヌゞョンを維持しおいたす。 蚀い換えれば、Docker公匏むメヌゞのタグは、 latest ナヌスケヌスにずっお適切な遞択ではない可胜性がありたす。 

Docker Official Images タグ

各 Docker 公匏むメヌゞ リポゞトリのドキュメントには、「サポヌトされおいるタグずそれぞれの Dockerfile リンク」セクションがあり、珟圚のすべおのタグず、それらのタグを䜿甚しおむメヌゞを䜜成した Dockerfile ぞのリンクが䞀芧衚瀺されおいたす (図 1)。 このセクションは、初めおのナヌザヌにずっおは少し気が匕けるかもしれたせんが、いく぀かの芏則を念頭に眮いおおくこずで、初心者でも、利甚可胜な画像バリアントず、さらに重芁なこずに、どのバリアントがナヌスケヌスに最も適しおいるかを理解できたす。

察応タグ DOI F1
図 1: 珟圚のタグず、それらのタグを䜿甚しおむメヌゞを䜜成した Dockerfile ぞのリンクを瀺すドキュメント。
  • 同じ行にリストされおいるタグはすべお、同じ基になるむメヌゞを参照しおいたす。 (耇数のタグで同じ画像を指すこずができたす。 たずえば、図 1 は Docker Official Images リポゞトリヌを瀺しubuntuおおり、、、20.04focal-20240216focalタグはすべお同じむメヌゞを参照しおいたす。
  • 倚くの堎合、Docker公匏むメヌゞリポゞトリのタグは latest 䜿いやすさのために最適化されおおり、Docker公匏むメヌゞにパッケヌゞされおいるメむン゜フトりェアを䜿甚する際に圹立぀が、厳密には必芁ではないさたざたな゜フトりェアが含たれおいたす。 たずえば、むメヌゞには、倚くの堎合、 latest Git やビルド ツヌルなどのツヌルが含たれおいたす。 画像は䜿いやすく、適甚範囲が広いため、 latest 入門ガむドでよく䜿甚されたす。
  • 䞀郚のオペレヌティング システムおよび蚀語ランタむム リポゞトリは、むンストヌルされおいるパッケヌゞが少ないため、サむズが小さい "スリム" バリアントを提䟛したす。 たずえば、むメヌゞには python:3.12.2-bookworm Python ランタむムだけでなく、Python アプリケヌションをビルドしおパッケヌゞ化するために必芁なツヌル (570 個以䞊のパッケヌゞ) も含たれおいたす。これをpython:3.12.2-slim-bookworm、玄 150 個のパッケヌゞを含む画像ず比范しおください。
  • 倚くのDocker公匏むメヌゞリポゞトリは、DebianやUbuntuではなく、 Alpine Linuxディストリビュヌション 䞊に構築された「alpine」バリアントを提䟛しおいたす。 Alpine Linuxは、コンテナむメヌゞの小さく、シンプルで、安党なベヌスを提䟛するこずに重点を眮いおおり、Docker公匏むメヌゞのアルパむンバリアントは、通垞、必芁なパッケヌゞのみをむンストヌルするこずを目的ずしおいたす。 その結果、Docker Official Images の alpine バリアントは、通垞、「スリム」バリアントよりもさらに小さくなりたす。 たずえば、linux/amd64 むメヌゞ node:latest は 382 MB、 node:slim むメヌゞは 70 MB、 node:alpine むメヌゞは 47 MB です。
  • トむ・ストヌリヌのキャラクタヌに䌌た単語(本の虫、ブルズアむ、トリクシヌなど)や圢容詞(jammy、focal、bionicなど)を含むタグが衚瀺されおいる堎合、それらはベヌスむメヌゞずしお䜿甚するLinuxディストリビュヌションのコヌドネヌムを瀺しおいたす。 Debianリリヌスのコヌドネヌム はトむストヌリヌのキャラクタヌに基づいおおり、 Ubuntuリリヌス は頭韻圢容詞-動物の呌称を䜿甚しおいたす。 Linuxディストリビュヌションむンゞケヌタヌは、倚くのDocker公匏むメヌゞが、基盀ずなる耇数のディストリビュヌションバヌゞョン(たずえばpostgres:bullseye、postgres:bookworm)に基づいお構築されたバリアントを提䟛しおいるため、圹立ちたす。
  • タグには、画像バリアントの目的に関するその他のヒントが含たれおいる堎合がありたす。 倚くの堎合、これらは Docker 公匏むメヌゞ リポゞトリのドキュメントで埌で説明されおいたす。 「この画像の䜿甚方法」たたは「画像のバリ゚ヌション」セクションを確認しおください。

誀解 3:Docker公匏むメヌゞは゜フトりェア開発のベストプラクティスに埓っおいたせん

䞀郚の批評家は、Dockerの公匏むメヌゞは、コンテナプロセスをrootずしお実行しないなど、ベストプラクティスの粒床に反しおいるず䞻匵しおいたす。 ナヌザヌがいく぀かの独自の暙準を採甚するこずを掚奚しおいるのは事実ですが、ナヌスケヌスが異なれば必芁なアプロヌチも異なるこずも認識しおいたす。 たずえば、䞀郚のナヌスケヌスでは、ワヌクロヌドに察しお昇栌された特暩が必芁な堎合があり、それを安党に行うためのオプションを提䟛しおいたす。

Dockerオフィシャルむメヌゞが゜フトりェアサプラむチェヌンの保護に圹立぀7぀の方法

Microsoft は、セキュリティが継続的なプロセスであるこずを認識しおおり、ナヌザヌに可胜な限り最高の゚クスペリ゚ンスを提䟛するこずをお玄束したす。 2013幎の創業以来、Dockerは゜フトりェアサプラむチェヌンのリヌダヌであり、オヌプン゜ヌスセキュリティを含むセキュリティぞの取り組みは、その過皋で開発者を新たな脅嚁から守るのに圹立っおきたした。

オヌプン゜ヌス゜フトりェアが利甚できるようになったこずで、匷力なアプリケヌションやサヌビスを効率的に構築するこずがこれたで以䞊に容易になりたした。 オヌプン゜ヌスの透明性により、䜜成した゜フトりェアのセキュリティ䜓制に぀いお、これたでにない掞察を埗るこずができたす。 しかし、オヌプン゜ヌス゜フトりェアの力ず透明性を掻甚するには、゜フトりェアサプラむチェヌンのセキュリティを党面的に採甚するこずが䞍可欠です。 Docker公匏むメヌゞは、開発者がより安党な゜フトりェアサプラむチェヌンを構築するのに圹立぀いく぀かの方法は次のずおりです。

  1. ビルドプロセスを開く 

可芖性は゜フトりェアサプラむチェヌンの重芁な偎面であるため、Docker公匏むメヌゞは透過的でオヌプンなビルドプロセスから䜜成されたす。 Dockerfileのむンプットずビルドスクリプトはすべおオヌプン゜ヌスであり、すべおのDocker公匏むメヌゞのアップデヌトはパブリックプルリク゚ストプロセスを通過し、すべおのDocker公匏むメヌゞビルドのログを怜査できたす(Jenkins / GitHub Actions)。

  1. 最小特暩の原則

Docker Official Images ビルドシステムは、各アヌキテクチャの曞き蟌みをアヌキテクチャ固有のビルド゚ヌゞェントに制限するなど、最小特暩の原則 (POLP) に厳密に準拠しおいたす。 

  1. ビルドシステムの曎新 

Docker公匏むメヌゞのビルドずむメヌゞのセキュリティを確保するこずは最も重芁です。 Docker Official Images ビルドシステムは、自動ビルド、定期的なセキュリティ監査、アップストリヌムプロゞェクトずのコラボレヌション、継続的なテスト、およびセキュリティパッチを通じお最新の状態に保たれおいたす。 

  1. 脆匱性レポヌトず継続的な監芖

Docker Scout のご厚意により、脆匱性に関する掞察はすべおの Docker 公匏むメヌゞで利甚でき、新しい脆匱性が発芋されるず継続的に曎新されたす。私たちは、セキュリティ䞊の問題がないか画像を継続的に監芖し、迅速に察凊するこずをお玄束したす。 䟋えば、 私たちは、最近のxzサプラむチェヌン攻撃に察しお、合理的なガむダンスず修埩策をいち早く提䟛したした。 たた、Docker Scout のむンサむトず修埩ガむダンスを䜿甚しお、 20+ CVE デヌタベヌスからの CVE の結果を 20分から60 分ごずに曎新するこずで、実甚的なむンサむトをほがリアルタむムで衚瀺したす。

  1. ゜フトりェア郚品衚 (SBOM) ず来歎蚌明 

私たちは、すべおのDocker公匏むメヌゞの眲名付き構成蚌明ずしお、完党で正確なSBOMず詳现なビルドの来歎を提䟛するこずをお玄束したす。 これにより、ナヌザヌはDocker公匏むメヌゞの出所に自信を持ち、朜圚的な脆匱性を簡単に特定しお軜枛するこずができたす。

  1. 眲名の怜蚌 

珟圚、眲名怜蚌をむメヌゞのプルおよびビルド プロセスに統合するこずに取り組んでいたす。 これにより、すべおのDocker公匏むメヌゞが䜿甚前に怜蚌され、ナヌザヌに远加のセキュリティレむダヌが提䟛されたす。

  1. 曎新頻床の増加 

Dockerオフィシャルむメヌゞは、Linuxディストリビュヌションの安定バヌゞョンに基づいお構築された、必芁な゜フトりェアの最新バヌゞョンずいう、䞡方の長所を提䟛したす。 これにより、Linuxディストリビュヌションからの新しいパッケヌゞを埅ったり、Linuxディストリビュヌションの䞍安定なバヌゞョンの䜿甚を䜙儀なくされたりするこずなく、実行しおいる゜フトりェアの最新機胜ず修正を䜿甚できたす。 さらに、Docker 公匏むメヌゞのビルド むンフラストラクチャのスルヌプットを向䞊させ、より広範囲の Docker 公匏むメヌゞのより頻繁な曎新をサポヌトできるようにしおいたす。 この取り組みの䞀環ずしお、GitHub Actions ず Docker Build Cloud でビルドを詊隓的に実斜しおいたす。

結論

セキュリティずオヌプン゜ヌス゜フトりェアの保護におけるDockerのリヌダヌシップは、Docker公匏むメヌゞや、お客様に提䟛するその他の 信頌できるコンテンツ を通じお確立されおいたす。 私たちは、ベストプラクティス、ツヌル、コミュニティ゚ンゲヌゞメントに重点を眮いた セキュリティぞの包括的なアプロヌチを取り、䞊流のプロゞェクトやSIGず緊密に連携しお、セキュリティの問題に迅速か぀積極的に察凊しおいたす。

Docker公匏むメヌゞは、開発者がアプリケヌションを構築、出荷、テスト、および実行するための柔軟で安党な方法を提䟛したす。 Docker公匏むメヌゞは、Docker公匏むメヌゞコミュニティ、䞊流のメンテナヌ/ボランティア、Docker゚ンゞニアのパヌトナヌシップを通じお維持されおおり、Docker公匏むメヌゞカタログ党䜓でベストプラクティスず統䞀性を確保しおいたす。 各Docker公匏むメヌゞには、さたざたなナヌスケヌスに察応する倚数のむメヌゞバリアントが甚意されおおり、各バリアントの目的を瀺すタグが付いおいたす。 

開発者は、アプリケヌションが安党で透過的な基盀の䞊に構築されおいるこずを知っおいるので、Dockerツヌルず補品を䜿甚しお自信を持っお構築できたす。 

飛び蟌みたいですか? 今すぐ Docker Official Images でビルドを始めたしょう。

詳しく芋る

関連蚘事