コンテンツに移動
DevOps & SRE

Docker Hub の公開コンテンツを利用するためのベスト プラクティス

2024年1月10日
Google Cloud Japan Team

※この投稿は米国時間 2023 年 12 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。

最近の開発環境ではオープンソース ソフトウェアが普及しているため、使用中の環境で、Docker Hub に保存されている公開コンテナ イメージに依存関係が存在している場合もあるのではないでしょうか。適切な構成と管理を行わないと、こうした依存関係により CI / CD パイプライン内でセキュリティと信頼性のリスクが生じる可能性があります。今回のブログ投稿では、このようなリスクを低減するためにチームが従うことができる、いくつかのベスト プラクティスについて概説します。

公開コンテナのローカルコピーを保存する

可能な限り公開コンテナのローカルコピーを保存することで、信頼性を高め、より厳格なセキュリティ管理を行うことができます。Open Containers Initiative から公開コンテンツの利用に関するガイドラインが発表されており、そちらで詳細についてご確認いただけます。

Docker Hub にアクセスする際に認証を使用する

Docker Hub にアクセスする際は、匿名ではなく認証された方法でアクセスすることをおすすめします。匿名リクエストを行うと、セキュリティ リスクはもちろんのこと、レート制限に達するリスクも生まれる可能性があり、CI / CD パイプラインの信頼性に影響を与えかねません。CI / CD インフラストラクチャのアーキテクチャと使用する Google Cloud サービスに応じて、認証にはいくつかの選択肢が用意されています。

Artifact Registry のリモート リポジトリを使用する: ビルドプロセス内で Docker Hub リポジトリを直接参照する代わりに、Artifact Registry のリモート リポジトリを使用して Docker Hub で認証し、依存関係のリージョン キャッシュを提供できます。Artifact Registry で Docker Hub のアクセス トークンを使用する手順について詳しくは、Artifact Registry のドキュメント ページ Docker Hub へのリモート リポジトリ認証を構成するをご覧ください。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/authenticated_dockerhub_login.gif

  • Cloud Build を使用して Docker イメージを操作する: Cloud Build は、ビルドステップ内で Docker Hub イメージを pull するための認証メカニズムを提供します。コンテナ イメージをビルドするために Docker Hub イメージを利用している場合、これらの認証メカニズムを使用できます。

次の Cloud Build 構成ファイルは、Secret Manager に保存されている Docker のユーザー名とパスワードを使用して Docker にログインし、非公開イメージを実行する方法を示しています。Cloud Build を使用して Docker Hub を操作する方法の詳細については、Docker Hub イメージとのやり取りをご覧ください。

読み込んでいます...

上記で概説しているベスト プラクティスに従うことで、CI / CD パイプライン内のセキュリティ対策が強化され、信頼性のリスクを低減できます。さらに、環境に適切な認証管理を実装することにより、開発段階での障害を本番環境では取り除き、同時に企業のセキュリティ基準を余裕をもって満たすことができます。

また、次の関連プロダクト ページや機能も役立つと思われますのでご覧ください。

-プロダクト マネージャー Rishi Mukhopadhyay

投稿先