Microsoft Foundry (クラシック) の脆弱性管理

適用対象:Foundry (クラシック) ポータル。 この記事は、新しい Foundry ポータルでは使用できません。 新しいポータルの詳細を確認します

メモ

この記事のリンクは、現在表示している Foundry (クラシック) ドキュメントではなく、新しい Microsoft Foundry ドキュメントのコンテンツを開く場合があります。

重要

この記事では、ハブ ベースのプロジェクトのレガシ サポートを提供します。 Foundry プロジェクトでは機能しません。 「自分が持っているプロジェクトの種類を確認する方法」を参照してください。

脆弱性管理は、組織のシステムとソフトウェアのセキュリティ脆弱性を検出、評価、軽減、および報告するプロセスです。 お客様とMicrosoftは、この責任を共有します。

この記事では、Foundry が提供する責任と脆弱性管理コントロールについて説明します。 最新のセキュリティ更新プログラムを使用してサービス インスタンスとアプリを最新の状態に保ち、サイバー攻撃の機会を減らす方法について説明します。

前提 条件

Foundry 環境の脆弱性を管理するには、次のものが必要です。

  • Azure サブスクリプション
  • Foundry ハブまたはプロジェクト
  • Foundry ハブやプロジェクトでコンピューティングリソースを管理するための共同作成者または所有者の役割
  • コンピューティング管理のために Foundry ポータルにAzure CLIまたはアクセスする
  • コンピューティング インスタンスの再作成の場合: 次の RBAC アクセス許可。
    • Microsoft.MachineLearningServices/workspaces/computes/write (コンピューティング インスタンスの作成)
    • Microsoft.MachineLearningServices/workspaces/computes/delete (コンピューティング インスタンスの削除)

Microsoftマネージド VM イメージ

Microsoftは、コンピューティング インスタンスとサーバーレス コンピューティング クラスターのホスト OS 仮想マシン (VM) イメージを管理します。 更新プログラムは毎月行われ、次の詳細が含まれます。

  • 新しい VM イメージのバージョンごとに、Microsoft元のパブリッシャーから最新の OS 更新プログラムが提供されます。 最新の更新プログラムを使用すると、該当するすべての OS パッチを確実に取得できます。 Foundry の場合、Canonical はすべての Ubuntu イメージを発行します。

  • Microsoftは、VM イメージを毎月更新します。

  • パブリッシャーのパッチに加えて、更新プログラムが利用可能になると、Microsoftはシステムパッケージを更新します。

  • Microsoftは、アップグレードが必要になる可能性がある機械学習パッケージを確認して検証します。 ほとんどの場合、新しい VM イメージには最新のパッケージ バージョンが含まれています。

  • Microsoftは、脆弱性スキャンを定期的に実行するセキュリティで保護されたサブスクリプションにすべての VM イメージを構築します。 Microsoftは、修正されていない脆弱性にフラグを設定し、次のリリースで修正します。

  • ほとんどのイメージでは、毎月のリリース周期が使用されます。 コンピューティング インスタンスの場合、イメージのリリースは、環境にプレインストールされている Azure Machine Learning SDK のリリース周期に合わせて調整されます。

Microsoft脆弱性が発生した場合にも修正プログラムが適用されます。 Microsoft、サーバーレス コンピューティング クラスターの場合は 72 時間以内、コンピューティング インスタンスの場合は 1 週間以内に修正プログラムをロールアウトします。

メモ

ホスト OS は、モデルをトレーニングまたはデプロイするときに環境に指定する OS バージョンではありません。 環境は Docker 内で実行されます。 Docker はホスト OS 上で実行されます。

Microsoftマネージド コンテナー イメージ

Base Docker イメージは、MicrosoftがFoundry向けに維持しており、新しく検出された脆弱性を修正するために頻繁にセキュリティ パッチを受け取ります。

Microsoftは、脆弱性を修正するために、サポートされているイメージを 2 週間ごとに更新します。 目標は、サポートされている最新のイメージで 30 日を超える脆弱性がゼロです。

Microsoft、新しい変更できないタグと更新された :latest タグを使用して、修正プログラムが適用されたイメージをリリースします。 :latest タグを使用するか、特定のイメージ バージョンをピン留めすることは、機械学習ジョブのセキュリティと環境の再現性のトレードオフです。

環境とコンテナー イメージの管理

Foundry ポータルでは、Docker イメージによって 、プロンプト フローのデプロイ用のランタイム環境が提供されます。 これらのイメージは Foundry 基本イメージから開始されます。

Microsoftはリリースごとに基本イメージにパッチを適用しますが、最新のイメージを使用することは、再現性と脆弱性管理のトレードオフです。 ジョブまたはモデルデプロイの環境バージョンを選択します。

既定では、イメージをビルドするときに、基本イメージの上に依存関係を重ねて表示します。 Microsoft提供されたイメージに追加の依存関係をインストールした後は、脆弱性の管理を担当します。

ハブには、コンテナー イメージをキャッシュするAzure Container Registry インスタンスが含まれています。 イメージをビルドするときは、コンテナー レジストリにプッシュします。 ワークスペースは、対応する環境をデプロイするときにキャッシュされたイメージを使用します。

ハブは、コンテナー レジストリからイメージを削除しません。 時間の経過に伴う各画像の必要性を確認します。 環境の衛生を監視して維持するには、Container Registry 用 Microsoft Defender を使用して、イメージの脆弱性をスキャンします。 Microsoft Defender トリガーに基づいてプロセスを自動化するには、自動修復応答を参照してください。

コンピューティング ホストでの脆弱性管理

Foundry ポータルのマネージド コンピューティング ノードでは、Microsoftマネージド OS VM イメージが使用されます。 ノードをプロビジョニングすると、最新の VM イメージがプルされます。 この動作は、コンピューティング インスタンス、サーバーレス コンピューティング クラスター、マネージド推論コンピューティングに適用されます。

Microsoftは OS VM イメージに定期的にパッチを適用しますが、使用中のコンピューティング ノードでは脆弱性をアクティブにスキャンしません。 追加の保護層については、コンピューティング ノードのネットワーク分離を検討してください。

環境が最新であり、コンピューティング ノードが最新の OS バージョンを使用していることを確認することは、お客様とMicrosoftの間で共有される責任です。 サービスは、ビジー状態のノードを最新の VM イメージに更新しません。 次のセクションに示すように、コンピューティングの種類ごとに考慮事項が若干異なります。

コンピューティング インスタンス

コンピューティング インスタンスは、プロビジョニング時に最新の VM イメージを取得します。 Microsoftは、毎月新しい VM イメージをリリースします。 コンピューティング インスタンスをデプロイした後、継続的なイメージの更新は受け取りません。 最新のソフトウェア更新プログラムとセキュリティ パッチを最新の状態に保つには、次のいずれかの方法を使用します。

  • コンピューティング インスタンスを再作成して、最新の OS イメージを取得します (推奨)。

    この方法を使用すると、インスタンスの OS ディスクと一時ディスクに格納されているデータとカスタマイズ (インストールされているパッケージなど) が失われます。

    イメージ のリリースの詳細については、Azure Machine Learning コンピューティング インスタンス イメージのリリース ノートを参照してください。

  • OS およびPython パッケージを定期的に更新します。

    コンピューティング インスタンス ターミナルに接続し、次のコマンドを実行してパッケージを更新します。

    • パッケージ一覧を最新バージョンで更新します。

      sudo apt-get update
      

      予想される出力: パッケージ リストはリポジトリから更新されます。 各リポジトリの Hit:Get: などの行が表示されます。

      リファレンス: apt-get update

    • パッケージを最新バージョンにアップグレードします。 この方法を使用すると、パッケージの競合が発生する可能性があります。

      sudo apt-get upgrade
      

      予想される出力: パッケージがダウンロードされ、インストールされます。 Y/nを使用してインストールの確認を求められる場合があります。

      リファレンス: apt-get アップグレード

    • 古いPython パッケージを確認します。

      pip list --outdated
      

      予期される出力: 利用可能な更新プログラム (列: Package、Version、Latest、Type) を含むパッケージを一覧表示するテーブル。すべてのパッケージが最新の場合は空の出力。

      リファレンス: pip list

    更新プログラムが正常に適用されたことを確認するには、次を実行します。

    # Check for remaining upgradable packages
    sudo apt list --upgradable
    

    予期される出力: パッケージが一覧に含まれていない Listing... Done は、すべての更新プログラムが適用されていることを意味します。

    リファレンス: apt list

脆弱性をスキャンする

コンピューティング インスタンスに追加のスキャン ソフトウェアをインストールして実行し、セキュリティの問題をスキャンします。

Trivy と ClamAV を組み合わせた自動化の例については、Compute インスタンスのサンプル セットアップ スクリプトを参照してください。

メモ

コンピューティング インスタンスに Microsoft Defender for Servers エージェントをインストールすることはできません。

エンドポイント

エンドポイントは、脆弱性が修正された OS ホスト イメージの更新プログラムを自動的に受け取ります。 Microsoftは、少なくとも 1 か月に 1 回はイメージを更新します。

コンピューティング ノードは、リリースされると、最新の VM イメージ バージョンに自動的にアップグレードされます。 アクションを実行する必要はありません。