Azure Machine Learning のカスタマー マネージド キー
Azure Machine Learning は、複数の Azure サービスの上に構築されています。 格納データは Microsoft が提供する暗号化キーを使用して暗号化されますが、独自の (カスタマー マネージド) キーも提供すると、セキュリティを強化できます。 提供したキーは、Azure Key Vault に格納されます。 データは、Azure サブスクリプション内で自分が管理している他のリソースのセット上に保存することも、Microsoft マネージド リソース上の (プレビュー) サーバー側に保存することもできます。
Azure Machine Learning には、カスタマー マネージド キー (CMK) に加えて、hbi_workspace フラグも用意されています。 このフラグを有効にすると、Microsoft が診断目的で収集するデータの量が減り、Microsoft マネージド環境での追加の暗号化が可能になります。 このフラグを使用すると、次の動作も有効になります。
- そのサブスクリプションに以前にクラスターを作成していない場合、Azure Machine Learning コンピューティング クラスターでローカル スクラッチ ディスクの暗号化が開始されます。 それ以外の場合、コンピューティング クラスターに対してスクラッチ ディスクの暗号化を有効にするには、サポート チケットを作成する必要があります。
- ジョブとジョブの間にローカル スクラッチ ディスクをクリーンアップします。
- キー コンテナーを使用して、ストレージ アカウント、コンテナー レジストリ、Secure Shell (SSH) アカウントの資格情報を実行レイヤーからコンピューティング クラスターに安全に渡します。
hbi_workspace
フラグは、転送中の暗号化には影響しません。 保存時の暗号化にのみ影響します。
前提条件
- Azure サブスクリプション。
- Azure Key Vault インスタンス。 キー コンテナーには、サービスを暗号化するためのキーが含まれます。
キー コンテナーでは、論理的な削除と消去保護を有効にする必要があります。 カスタマー マネージド キーを使用してセキュリティで保護するサービスのマネージド ID には、キー コンテナーに対する次のアクセス許可が必要です。
- キーのラップ
- キーのラップ解除
- Yammer の入手
たとえば、Azure Cosmos DB のマネージド ID は、キー コンテナーに対してこれらのアクセス許可が必要です。
制限事項
- ワークスペースの作成後、ワークスペースが依存するリソースのカスタマー マネージド暗号化キーは、元の Azure Key Vault リソース内の別のキーにのみ更新できます。
- サーバー側プレビューを使用している場合を除き、暗号化されたデータはサブスクリプション内の Microsoft マネージド リソース グループ内のリソース上に保存されます。 これらのリソースを事前に作成したり、それらの所有権を譲渡したりすることはできません。 データ ライフサイクルは、Azure Machine Learning service でオブジェクトを作成するときに、Azure Machine Learning API を介して間接的に管理されます。
- ワークスペースも削除しなければ、カスタマー マネージド キーに使用する Microsoft 管理対象リソースを削除することはできません。
- コンピューティング クラスターの OS ディスクは、カスタマー マネージド キーを使用して暗号化することはできません。 Microsoft マネージド キーを使用する必要があります。
警告
Azure Cosmos DB インスタンスが含まれるリソース グループ、またはそのグループに自動的に作成されたリソースが含まれるリソース グループを削除しないでください。 このリソース グループまたは Microsoft が管理するサービスを削除する必要がある場合は、それを使用する Azure Machine Learning ワークスペースを削除してください。 関連付けられたワークスペースを削除すると、リソース グループのリソースが削除されます。
カスタマー マネージド キー
カスタマー マネージド キーを使用 "しない" 場合、Microsoft が、Microsoft 所有の Azure サブスクリプションでリソースを作成して管理し、Microsoft マネージド キーを使用してデータを暗号化します。
カスタマー マネージド キーを使用する場合、リソースはお使いの Azure サブスクリプションに格納され、お使いのキーで暗号化されます。 これらのリソースはお使いのサブスクリプションに存在しますが、Microsoft によって管理されます。 これらのリソースは、Azure Machine Learning ワークスペースを作成するときに、自動的に作成および構成されます。
これらの Microsoft 管理対象リソースは、サブスクリプションに作成される新しい Azure リソース グループに配置されます。 このリソース グループは、ワークスペースのリソース グループとは別のものです。 これには、キーが使用される Microsoft 管理対象リソースが含まれます。 リソース グループに名前を付けるための数式は、<Azure Machine Learning workspace resource group name><GUID>
です。
ヒント
Azure Cosmos DB の要求ユニットは、必要に応じて自動的にスケーリングされます。
Azure Machine Learning ワークスペースでプライベート エンドポイントを使用している場合、このリソース グループには Microsoft が管理する Azure 仮想ネットワークも含まれます。 この仮想ネットワークは、マネージド サービスとワークスペースの間の通信をセキュリティで保護するために役立ちます。 Microsoft 管理対象リソースで使用するために "独自の仮想ネットワークを指定することはできません"。 また、"仮想ネットワークを変更することもできません"。 たとえば、使用される IP アドレスの範囲を変更することはできません。
重要
サブスクリプションにこれらのサービス用に十分なクォータがない場合、エラーが発生します。
カスタマー マネージド キーを使用する場合、これらのリソースはサブスクリプション内にあるため、サブスクリプションのコストが高くなります。 コストを見積もるには、Azure 料金計算ツールを使用してください。
コンピューティング リソース上のデータの暗号化
Azure Machine Learning ではコンピューティング リソースを使用して機械学習モデルをトレーニングおよびデプロイします。 次の表では、コンピューティング オプションと、各オプションでデータを暗号化する方法について説明します。
Compute | 暗号化 |
---|---|
Azure Container Instances | データは、Microsoft マネージド キーまたはカスタマー マネージド キーを使用して暗号化されます。 詳細については、「デプロイ データの暗号化」を参照してください。 |
Azure Kubernetes Service | データは、Microsoft マネージド キーまたはカスタマー マネージド キーを使用して暗号化されます。 詳細については、Azure Kubernetes Service の Azure ディスクでの Bring Your Own Keyに関するページをご覧ください。 |
Azure Machine Learning コンピューティング インスタンス | ワークスペースに対して hbi_workspace フラグを有効にすると、ローカル スクラッチ ディスクが暗号化されます。 |
Azure Machine Learning コンピューティング クラスター | OS ディスクは、Microsoft マネージド キーを使用して Azure Storage で暗号化されます。 ワークスペースに対して hbi_workspace フラグを有効にすると、一時ディスクが暗号化されます。 |
Compute | 暗号化 |
---|---|
Azure Kubernetes Service | データは、Microsoft マネージド キーまたはカスタマー マネージド キーを使用して暗号化されます。 詳細については、Azure Kubernetes Service の Azure ディスクでの Bring Your Own Keyに関するページをご覧ください。 |
Azure Machine Learning コンピューティング インスタンス | ワークスペースに対して hbi_workspace フラグを有効にすると、ローカル スクラッチ ディスクが暗号化されます。 |
Azure Machine Learning コンピューティング クラスター | OS ディスクは、Microsoft マネージド キーを使用して Azure Storage で暗号化されます。 ワークスペースに対して hbi_workspace フラグを有効にすると、一時ディスクが暗号化されます。 |
コンピューティング クラスター
コンピューティング クラスターにはローカル OS ディスク ストレージがあり、ジョブの実行時にサブスクリプションのストレージ アカウントからデータをマウントできます。 ジョブで独自のストレージ アカウントからデータをマウントする場合、暗号化のために、それらのストレージ アカウントでカスタマー マネージド キーを有効にすることができます。
各コンピューティング ノードの OS ディスクは、Azure Storage に格納され、常に Azure Machine Learning ストレージ アカウント内の Microsoft マネージド キーで暗号化され、カスタマー マネージド キーは使用されません。 このコンピューティング先は一時的なものであるため、OS ディスクに格納されているデータは、クラスターのスケールダウン後に削除されます。 クラスターは通常、ジョブがキューに登録されておらず、自動スケールがオンで、最小ノード数が 0 に設定されている場合にスケールダウンされます。 基になる仮想マシンのプロビジョニングは解除され、OS ディスクは削除されます。
OS ディスクでは Azure Disk Encryption はサポートされません。 各仮想マシンにも、OS 操作用にローカルな一時ディスクがあります。 必要に応じて、ディスクを使用してトレーニング データをステージできます。 hbi_workspace
パラメーターを TRUE
に設定してワークスペースを作成する場合、一時ディスクが暗号化されます。 この環境は有効期間が短く (ジョブの実行中のみ)、暗号化のサポートはシステム マネージド キーのみに制限されます。
コンピューティング インスタンス
コンピューティング インスタンスの OS ディスクは、Azure Machine Learning ストレージ アカウント内の Microsoft マネージド キーを使用して暗号化されます。 hbi_workspace
パラメーターを TRUE
に設定してワークスペースを作成する場合、コンピューティング インスタンスのローカル一時ディスクは Microsoft マネージド キーで暗号化されます。 カスタマー マネージド キーによる暗号化は、OS と一時ディスクについてはサポートされていません。
暗号化されたワークスペース メタデータのストレージ
独自の暗号化キーを使用すると、サービス メタデータが Azure サブスクリプション内の専用リソースに格納されます。 Microsoft は、この目的のために、サブスクリプションに別のリソース グループ (azureml-rg-workspacename_GUID) を作成します。 この管理対象リソース グループ内のリソースを変更できるのは、Microsoft のみです。
Microsoft は、ワークスペースのメタデータを格納するために、次のリソースを作成します。
サービス | 使用方法 | サンプル データ |
---|---|---|
Azure Cosmos DB | ジョブ履歴データ、コンピューティング メタデータ、資産メタデータを格納します。 | データには、ジョブ名、状態、シーケンス番号、状態を含めることができます。また、コンピューティング クラスター名、コア数、ノード数や、データストアの名前とタグ、モデルなどの資産に関する説明を含めることもできます。また、データ ラベル名を含めることもできます。 |
Azure AI Search | 機械学習コンテンツのクエリに役立つインデックスを格納します。 | これらのインデックスは、Azure Cosmos DB に格納されているデータに基づいて構築されます。 |
Azure Storage | Azure Machine Learning パイプライン データに関連するメタデータを格納します。 | データには、デザイナー パイプライン名、パイプライン レイアウト、実行プロパティを含めることができます。 |
データ ライフサイクル管理の観点から見ると、Azure Machine Learning で対応するオブジェクトを作成および削除すると、前述のリソース内のデータが作成および削除されます。
Azure Machine Learning ワークスペースでは、マネージド ID を使用してデータの読み取りと書き込みを行います。 この ID には、データ リソースに対するロールの割り当て (Azure ロールベースのアクセス制御) を使用して、リソースへのアクセス権が付与されます。 ユーザーが指定する暗号化キーは、Microsoft 管理対象リソースに格納されるデータの暗号化に使用されます。 このキーは、実行時に Azure AI 検索のインデックスを作成するためにも使用されます。
追加のネットワーク制御は、ワークスペースにプライベート リンク エンドポイントを作成して受信接続を許可するときに構成されます。 この構成には、Azure Cosmos DB インスタンスへのプライベート リンク エンドポイント接続の作成が含まれます。 ネットワーク アクセスは、信頼できる Microsoft サービスのみに制限されます。
(プレビュー) メタデータのサービス側暗号化
カスタマー マネージド キー暗号化ワークスペースの新しいアーキテクチャがプレビューで利用可能になり、現在のアーキテクチャと比較してコストが削減され、Azure ポリシーの競合の可能性が軽減されます。 この新しいモデルでは、暗号化されたデータは、サブスクリプションではなく、Microsoft 管理対象リソースのサービス側に保存されます。
お使いのサブスクリプションの Azure Cosmos DB に以前に保存されていたデータは、お使いの暗号化キーを使用するドキュメント レベルの暗号化を使って、マルチテナントの Microsoft 管理対象リソースに保存されます。 以前にお使いのサブスクリプションの Azure AI 検索に保存されていた検索インデックスは、ワークスペースごとに専用にプロビジョニングされた Microsoft 管理対象リソースに保存されます。 Azure AI 検索インスタンスのコストは、Microsoft Cost Management の Azure Machine Learning ワークスペースで請求されます。
以前は管理対象リソース グループのストレージ アカウントに保存されていたパイプライン メタデータが、Azure Machine Learning ワークスペースに関連付けられているサブスクリプションのストレージ アカウントに保存されるようになりました。 この Azure Storage リソースはサブスクリプションで個別に管理されるため、それに対して暗号化設定を構成する必要があります。
このプレビューをオプトインするには、REST API で、あるいは Bicep または Resource Manager テンプレートで enableServiceSideCMKEncryption
を設定します。 Azure ポータルを使用することもできます。 プレビューの可用性は、ワークスペースの種類によって異なります。
種類 | サポートされています |
---|---|
既定値 | はい |
ハブ | いいえ |
プロジェクト | いいえ |
Note
このプレビュー中は、キーローテーションとデータのラベル付け機能はサポートされていません。 現在、パブリック ネットワーク アクセスが無効になっている、暗号化キーを保存するための Azure キー コンテナーに関して、サーバー側の暗号化はサポートされていません。
メタデータのサービス側暗号化を使用してワークスペースを作成するテンプレートについては、https://github.com/azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-cmk-service-side-encryption を参照してください。
hbi_workspace フラグ
hbi_workspace
フラグは、ワークスペースの作成時にのみ設定できます。 既存のワークスペースのこのフラグを変更することはできません。
このフラグを TRUE
に設定すると、Microsoft に送信されるテレメトリ データが少なくなるため、問題のトラブルシューティングが困難になるおそれがあります。 成功率や問題の種類の可視性が低くなります。 このフラグが TRUE
に設定されている場合、Microsoft は積極的に対応できない可能性があります。
Azure Machine Learning ワークスペースの作成時に hbi_workspace
フラグを有効にするには、次のいずれかの記事の手順に従います。
- Azure portal または Python SDK を使用してワークスペースを作成および管理する
- Azure CLI を使用してワークスペースを作成および管理する
- HashiCorp Terraform を使用してワークスペースを作成する
- Azure Resource Manager テンプレートを使用してワークスペースを作成する