はじめに
この実験では、コンテナイメージリポジトリに Docker Scout を有効化する方法を学びます。Docker Scout は、イメージに関する重要なセキュリティ情報を提供し、脆弱性やサプライチェーンリスクを特定するのに役立ちます。
特定のリポジトリ、組織内のすべてのリポジトリ、フィルターに一致するリポジトリ、および特定のレジストリのリポジトリに対して Docker Scout を有効化するなど、さまざまな有効化方法を探索します。これらの実践的な演習では、docker scout repo enable コマンドの柔軟性と強力さを実証します。
特定のリポジトリに Docker Scout を有効化する
このステップでは、特定のリポジトリに Docker Scout を有効化する方法を学びます。Docker Scout は、コンテナイメージのセキュリティ状態を把握するのに役立ちます。リポジトリに Docker Scout を有効化することで、脆弱性、サプライチェーンリスク、その他のセキュリティ問題に関する洞察を得ることができます。
まず、Docker がインストールされて実行中かどうかを確認しましょう。以下のコマンドを実行することで確認できます。
docker version
Docker のバージョン情報を示す出力が表示されるはずです。エラーが表示された場合は、Docker がインストールされていないか、実行中ではないことを意味します。LabEx 環境にはすでに Docker がインストールされているため、このコマンドは正常に動作するはずです。
次に、このステップで使用するサンプルイメージを取得しましょう。Docker Hub の hello-world イメージを使用します。
docker pull hello-world
このコマンドは、hello-world イメージをローカルマシンにダウンロードします。ダウンロードの進捗と完了を示す出力が表示されるはずです。
特定のリポジトリに Docker Scout を有効化するには、docker scout repo enable コマンドを使用できます。基本的な構文は次のとおりです。
docker scout repo enable <repository>
<repository> を、Docker Scout を有効化したいリポジトリの名前に置き換えます。この場合、hello-world イメージに対して有効化します。
docker scout repo enable docker.io/library/hello-world
このコマンドを実行した後、指定したリポジトリに Docker Scout が有効化されたことを確認する出力が表示されるはずです。このコマンドは、リポジトリを Docker Scout に登録し、イメージのセキュリティ脆弱性やその他の問題を分析できるようにします。
組織内のすべてのリポジトリに Docker Scout を有効化する
このステップでは、特定の組織内のすべてのリポジトリに Docker Scout を有効化する方法を学びます。これは、Docker Hub のようなレジストリで単一の組織の下で管理されているすべてのイメージのセキュリティ情報を取得したい場合に便利です。
組織内のすべてのリポジトリに Docker Scout を有効化するには、--org フラグを使用して docker scout repo enable コマンドを実行します。基本的な構文は次のとおりです。
docker scout repo enable --org <organization>
<organization> を、Docker Scout を有効化したい組織の名前に置き換えます。
注意: この実験環境では、実際の Docker Hub 組織が設定されていないため、プレースホルダーの組織名を使用します。実際のシナリオでは、your-organization-name を実際の Docker Hub 組織名に置き換えます。
デモンストレーションのために、my-docker-org をプレースホルダーの組織名として使用しましょう。
docker scout repo enable --org my-docker-org
このコマンドを実行した後、指定した組織内のすべてのリポジトリに Docker Scout が有効化されたことを示す出力が表示されるはずです。この操作により、Docker Scout はその組織の下のリポジトリにプッシュされたすべてのイメージを監視および分析するように指示されます。
組織が監視対象として追加されたことを確認するには、docker scout repo ls コマンドを使用して有効化されたリポジトリと組織を一覧表示できます。
docker scout repo ls
出力に my-docker-org が表示され、Docker Scout がこの組織内のリポジトリを監視するように構成されたことを示します。
フィルターに一致するリポジトリに Docker Scout を有効化する
このステップでは、特定のフィルターに一致するリポジトリに Docker Scout を有効化する方法を学びます。これにより、リポジトリ名のパターンに基づいて、リポジトリのサブセットを選択的に監視対象として有効化できます。
フィルターに一致するリポジトリに Docker Scout を有効化するには、--filter フラグを使用して docker scout repo enable コマンドを実行します。基本的な構文は次のとおりです。
docker scout repo enable --filter <filter>
<filter> を、一致させたいパターンに置き換えます。フィルターでは、ワイルドカード (*) を使用して複数の文字を一致させることができます。
この例では、プレースホルダーの組織 my-docker-org に web- で始まるいくつかのリポジトリがあるとします。これらすべてのリポジトリに Docker Scout を有効化したいとします。
docker scout repo enable --org my-docker-org --filter "web-*"
このコマンドは、my-docker-org 組織内の名前が web- で始まるすべてのリポジトリに Docker Scout を有効化します。
Docker Scout が監視しているリポジトリとフィルターを確認するには、docker scout repo ls コマンドを使用できます。
docker scout repo ls
これで、前のステップで有効化した組織 my-docker-org に加えて、出力にフィルター my-docker-org/web-* が表示されるはずです。これは、Docker Scout が指定された組織内でこのパターンに一致するリポジトリを監視するように構成されていることを示しています。
特定のレジストリのリポジトリに Docker Scout を有効化する
このステップでは、Docker Hub 以外の特定のコンテナレジストリにあるリポジトリに Docker Scout を有効化する方法を学びます。これは、プライベートレジストリや他のパブリックレジストリを使用している場合に重要です。
特定のレジストリのリポジトリに Docker Scout を有効化するには、リポジトリパスにレジストリ名を含める必要があります。基本的な構文は次のとおりです。
docker scout repo enable <registry>/<repository>
<registry> をコンテナレジストリのアドレスに、<repository> をそのレジストリ内のリポジトリ名に置き換えます。
この例では、myregistry.example.com にある架空のレジストリに my-app という名前のリポジトリがあるとします。
まず、このシナリオをシミュレートするために、別のレジストリからサンプルイメージを取得しましょう。registry.hub.docker.com(docker.io と同じですが、レジストリの指定方法を示すために完全な名前を使用します)から alpine イメージを使用します。
docker pull registry.hub.docker.com/library/alpine
このコマンドは、指定されたレジストリから alpine イメージを取得します。
次に、このイメージに Docker Scout を有効化し、明示的にレジストリを指定しましょう。
docker scout repo enable registry.hub.docker.com/library/alpine
このコマンドを実行した後、指定されたレジストリ内の指定されたリポジトリに Docker Scout が有効化されたことを確認する出力が表示されるはずです。
特定のレジストリのリポジトリが監視対象として追加されたことを確認するには、docker scout repo ls コマンドを使用して有効化されたリポジトリと組織を一覧表示できます。
docker scout repo ls
出力に registry.hub.docker.com/library/alpine が表示され、Docker Scout が指定されたレジストリからこのリポジトリを監視するように構成されたことを示します。
まとめ
この実験では、docker scout repo enable コマンドを使用してリポジトリに Docker Scout を有効化する方法を学びました。まず、docker scout repo enable <repository> 構文を使用して特定のリポジトリに Docker Scout を有効化し、hello-world イメージを使ってこれを実証しました。このプロセスにより、リポジトリが Docker Scout に登録され、セキュリティ分析が行われます。
また、この機能を複数のリポジトリに拡張する方法を探りました。組織内のすべてのリポジトリ、特定のフィルターに一致するリポジトリ、特定のレジストリにあるリポジトリに Docker Scout を有効化するなどのシナリオをカバーしています。これらの方法により、さまざまなリポジトリ構成にわたるセキュリティスキャンを効率的に管理できます。



