コンテナイメージのセキュリティスキャン機能は、イメージ内の既知の脆弱性を識別、評価、修正します。
背景情報
クラウドネイティブな CI/CD パイプラインでは、イメージがプッシュされた後、Container Registry (ACR) が自動的にセキュリティスキャンを実行します。セキュリティブロックポリシーを設定している場合、ACR はイメージのセキュリティリスクを識別し、リスクの高いコンテナイメージをブロックします。その後、CI/CD パイプラインはセキュリティポリシーに合格したイメージのみを配信およびデプロイします。この方法により、コンテナアプリケーションの安全な配信と効率的なデプロイが保証されます。また、セキュリティスキャン API を統合して、カスタムスケジュールでイメージのセキュリティスキャンを実装することもできます。CI/CD パイプラインを使用しない場合は、[イメージスキャン] ページでスキャンルールを作成し、イメージがプッシュされたときに自動的にスキャンをトリガーできます。詳細については、「スキャンルールの作成」をご参照ください。
セキュリティスキャンの所要時間は、イメージのサイズによって異なります。ほとんどの場合、イメージスキャンは 3 分以内に完了します。
制限事項
Trivy スキャンエンジン:スキャンエンジンの制限により、単一のイメージレイヤーは 3 GB を超えることはできません。超えた場合、スキャンが失敗する可能性があります。3 GB を超えるイメージの場合は、Security Center スキャンエンジンを使用してください。
単一イメージのスキャン
Container Registry コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
Enterprise Edition インスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[リポジトリ] ページで、管理するリポジトリを見つけ、[操作] 列の [管理] をクリックします。
-
リポジトリ詳細ページの左側のナビゲーションウィンドウで イメージのバージョン をクリックします。対象のタグを見つけ、操作 列の セキュリティスキャン をクリックします。
-
セキュリティスキャン ページで、スキャン をクリックします。
スキャンが完了すると、セキュリティスキャン ページに、詳細な脆弱性情報を含む結果が表示されます。スキャン結果の詳細については、「イメージスキャンの結果」をご参照ください。
イメージのバッチスキャン
イメージのバッチスキャン機能は、Trivy スキャンエンジンと Security Center スキャンエンジンの両方をサポートしています。違いは次のとおりです。
-
Trivy スキャンエンジン:オープンソースのスキャンエンジンで、システムの脆弱性とアプリケーションの脆弱性を検出します。脆弱性データベースは毎日更新されます。このエンジンは、システムの脆弱性に対する修正機能をサポートしていません。
-
システムの脆弱性:イメージのシステムの脆弱性をスキャンし、イメージが安全で信頼できることを保証します。
-
アプリケーションの脆弱性:コンテナ関連のミドルウェアの脆弱性をスキャンします。これにより、脆弱性を特定して修正し、イメージの安全な実行環境を作成できます。
-
脆弱性データベースは毎日更新されるため、最新の脆弱性情報を入手してタイムリーなセキュリティ対応が可能です。
-
-
Security Center スキャンエンジン:Alibaba Cloud が開発した独自のスキャンエンジンです。システムの脆弱性、アプリケーションの脆弱性、ベースラインリスク、不正なサンプルを検出します。システムの脆弱性に対する修正機能をサポートしています。
-
システムの脆弱性:イメージのシステムの脆弱性をスキャンし、修正機能を提供して、イメージが安全で信頼できることを保証します。
-
アプリケーションの脆弱性:コンテナ関連のミドルウェアの脆弱性をスキャンします。これにより、脆弱性を特定して修正し、イメージの安全な実行環境を作成できます。
-
ベースラインリスク:コンテナ資産のベースラインセキュリティリスクをチェックします。これにより、ベースラインセキュリティリスクを特定して修正できます。
-
不正なサンプル:コンテナ内の不正なサンプルを検出し、資産のセキュリティ脅威を表示します。これにより、不正なサンプルを特定して削除し、コンテナ使用のセキュリティリスクを大幅に削減できます。
-
-
Enterprise Edition インスタンスに VPC を設定します。詳細については、「VPC のアクセス制御の設定」をご参照ください。
イメージのバッチスキャン機能がイメージをスキャンするために使用する Enterprise Edition インスタンスに VPC を設定する必要があります。
初めて Security Center スキャンエンジンを使用する場合は、Security Center コンソールにアクセスする必要があります。初めてコンソールにアクセスすると、AliyunServiceRoleForSas システムロールの作成を求めるプロンプトが表示されます。
説明Enterprise Edition インスタンスに VPC をすでに設定している場合は、このステップをスキップできます。
Container Registry コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
[インスタンス] ページで、管理する Enterprise Edition インスタンスをクリックします。
-
Enterprise Edition インスタンスの管理ページで、 を選択します。
-
スキャンエンジンを選択します。
-
スキャンエンジンを Trivy スキャンエンジン に設定します。
-
Security Center スキャンエンジンを購入していない場合、イメージのスキャン ページではデフォルトで Trivy スキャンエンジンが使用されます。
-
Security Center でイメージスキャンサービスを購入した場合、システムはスキャンエンジンを Security Center スキャンエンジンに切り替えます。元に戻すには、イメージのスキャン ページの右上隅にある セキュリティスキャンエンジン の横にある 切り替え をクリックします。次に、Trivy スキャンエンジン をクリックし、ヒント ダイアログボックスで OK をクリックします。
-
-
スキャンエンジンを セキュリティスキャンエンジン に設定します
Security Center スキャンエンジンを購入した場合、イメージのスキャン ページではデフォルトのエンジンとなり、追加の操作は不要です。Security Center スキャンエンジンを購入していない場合は、次の手順を実行します。
-
Security Center に ACR の OpenAPI オペレーションを呼び出す権限を付与します。
-
[クラウドリソースへのアクセス承認] をクリックします。
-
クラウドリソースのアクセス許可 ページで、許可する をクリックします。
-
-
イメージのスキャン ページの スキャン情報 エリアで、[Security Center スキャンエンジンを今すぐアップグレード] をクリックします。
-
セキュリティスキャン を セキュリティスキャンエンジン に設定し、要件に基づいて他のパラメーターを設定し、今すぐ購入する をクリックして支払いを完了します。
イメージのスキャン ページに戻ります。Security Center スキャンエンジンがデフォルトで使用されるようになります。
説明Security Center スキャンエンジンを購入した後、イメージのスキャン ページの スキャン情報 エリアで 設定 をクリックできます。ヒント ダイアログボックスで 同期 を選択し、OK をクリックします。同期が有効になると、Container Registry はインスタンスの削除、イメージのプッシュ、イメージの削除、リポジトリの削除イベントを Security Center に自動的に同期します。
-
-
-
スキャンルールを作成します。
-
イメージのスキャン ページで、ルールの作成 をクリックします。
-
スキャンルール ウィザードで、ルール名 を入力し、範囲 を設定して、次へ をクリックします。
イメージは名前空間またはリポジトリでスキャンできます。
-
名前空間別:名前空間 を選択し、タグをフィルターするための正規表現を入力します。
-
リポジトリ別:名前空間 と リポジトリ を選択し、タグをフィルターするための正規表現を入力します。
-
-
(オプション) インシデント通知 ウィザードで、通知方法を設定します。
DingTalk、HTTP、または HTTPS 経由で通知を送信できます。
-
DingTalk:通知方法 を DingTalk に設定し、Webhook URL とシークレットトークンを入力します。
-
HTTP:通知方法 を [HTTP] に設定し、HTTP アドレスを入力します。
-
HTTPS:通知方法 を [HTTPS] に設定し、HTTPS アドレスを入力します。
イメージスキャンが成功すると、システムは設定された DingTalk、HTTP、または HTTPS エンドポイントに通知を送信します。
-
-
作成 をクリックします。
-
-
手動でイメージスキャンをトリガーします。
説明スキャンルールを作成した後、手動または自動でイメージスキャンをトリガーできます。自動スキャンは、イメージが正常にプッシュまたはビルドされるたびにトリガーされます。
-
イメージのスキャン ページで、対象のルールを見つけ、操作 列の スキャン をクリックします。
-
表示されるダイアログボックスで、OK をクリックします。
タスクリスト で、スキャンの ステータス が 完了 に変わると、スキャンは成功です。
-
-
スキャン結果を表示します。
-
イメージのスキャン ページの タスクリスト セクションで対象のタスクを見つけ、操作 列の タスクの表示 をクリックします。
-
タスクの詳細 ページで、タスクを見つけ、操作 列の 詳細を表示 をクリックします。
セキュリティスキャン ページで、詳細な脆弱性情報を含むスキャン結果を表示できます。
説明設定したスキャンルールに複数のイメージが含まれている場合、タスクの詳細 ページには複数のタスクが表示されます。任意のタスクのスキャン結果を表示できます。
-
イメージスキャンの結果
Trivy スキャンエンジンの結果
セキュリティスキャン ページでは、検出されたシステムの脆弱性とアプリケーションの脆弱性を表示できます。スキャン結果は、高、中、低、不明 の 4 つの重大度レベルで要約され、デフォルトで重大度レベル順にソートされます。[Trivy スキャンエンジン] タブでは、ドーナツグラフとカテゴリ統計が脆弱性の概要を提供します。たとえば、スキャンで合計 42 件のセキュリティ脆弱性が検出された場合、概要には [高] 12 件、[中] 28 件、[低] 2 件、[不明] 0 件と表示されることがあります。以下の脆弱性リストには、[CVE 番号]、[重大度]、[パッケージ]、[現在のバージョン]、[修正済みバージョン]、[場所] などの列が含まれます。重大度レベルで脆弱性をフィルターできます。新しいスキャンをトリガーするには、右上隅の [再スキャン] をクリックします。
オープンソースの Trivy スキャンエンジンの制限により、一部のシステムまたはアプリケーションの脆弱性についてのみファイルの場所を特定できます。
Security Center スキャンエンジンの結果
セキュリティスキャン ページでは、検出された システムの脆弱性、アプリケーションの脆弱性、ベースライン検査、次の悪意のあるサンプルが表示されたときに遮断します を表示できます。スキャン結果は、高、中、低、不明 の 4 つの重大度レベルで要約され、デフォルトで重大度レベル順にソートされます。
脆弱性リストは、[重大度]、[脆弱性名]、[パッケージ]、[現在のバージョン]、[CVE 番号]、[場所]、[ステータス]、[操作] などの列を含むテーブルに表示されます。[重大度] ドロップダウンリストと [CVE 番号] 検索ボックスを使用して脆弱性をフィルターできます。[操作] 列で、未修正の脆弱性を修正するには [修正] をクリックするか、スキャン結果を更新するには右上隅の [再スキャン] をクリックします。
システムの脆弱性の修正
Security Center スキャンエンジンは、システムの脆弱性に対する修正機能も提供します。この機能を使用するには:
セキュリティスキャン ページで、修正したい脆弱性を選択し、ページ下部の 修正 をクリックします。修正 ダイアログボックスで、元のイメージを修正後のイメージで上書きするかどうかを指定し、今すぐ修正 をクリックします。
約 10 分後、セキュリティスキャン ページの左上隅にある
アイコンをクリックします。イメージのバージョン ページに、_fixd サフィックスが付いた新しいイメージが表示されます。これは、イメージが正常に修正されたことを示します。
修正されたイメージは、元のイメージ名に _fixd というサフィックスが付加されたものを使用します。
関連ドキュメント
API オペレーションを使用してタグのスキャンステータスをクエリする場合は、「イメージタグのスキャンステータスの取得」をご参照ください。