Azure Machine Learning を使用したデータの暗号化

Azure Machine Learning は、モデルをトレーニングするときと、推論を実行するときに、さまざまな Azure データ ストレージ サービスとコンピューティング リソースに依存します。 この記事では、各サービスでの保存時と転送中両方のデータ暗号化について説明します。

トレーニング中の運用グレードの暗号化の場合、Azure Machine Learning コンピューティング クラスターを使用することをお勧めします。 推論中の運用グレードの暗号化の場合、Microsoft は Azure Kubernetes Service (AKS) を使用することをお勧めします。

Azure Machine Learning コンピューティング インスタンスは、Dev/Test 環境です。 これを使用する場合は、ノートブックやスクリプトなどのファイルをファイル共有に保存することをお勧めします。 データストアにデータを保存します。

保存時の暗号化

Azure Machine Learning のエンド ツー エンドのプロジェクトは、Azure Blob Storage、Azure Cosmos DB、Azure SQL Database などのサービスと統合します。 この記事では、このようなサービスの暗号化方法について説明します。

Azure Blob Storage

Azure Machine Learning では、Azure Machine Learning ワークスペースとサブスクリプションに関連付けられている Azure Blob Storage アカウント (既定のストレージ アカウント) にスナップショット、出力、ログを格納します。 Azure Blob Storage に格納されるすべてのデータは、Microsoft によって管理されたキーを使用して保存時に暗号化されます。

Azure Blob Storage に格納されるデータに独自のキーを使用する方法については、Azure Key Vault でのカスタマー マネージド キーによる Azure Storage の暗号化に関するページを参照してください。

トレーニング データは通常、トレーニング コンピューティング先がアクセスできるように Azure Blob Storage にも格納されます。 このストレージは、Azure Machine Learning では管理されません。 このストレージは、リモート ファイル システムとしてコンピューティング先にマウントされます。

キーを交換または取り消す必要がある場合は、いつでもこの操作を行うことができます。 キーをローテーションすると、ストレージ アカウントでは、新しいキー (最新バージョン) を使用して、保存データの暗号化が開始されます。 キーを取り消す (無効にする) と、ストレージ アカウントによって、失敗した要求が処理されます。 通常、交換または失効が有効になるまでに 1 時間かかります。

アクセス キーを再生成する方法の詳細については、ストレージ アカウント アクセス キーの再生成に関するページを参照してください。

Azure Data Lake Storage

Note

2024 年 2 月 29 日に Azure Data Lake Storage Gen1 は廃止されます。 詳細については、公式告知を参照してください。 Azure Data Lake Storage Gen1 を使用している場合は、その日になる前に Azure Data Lake Storage Gen2 に移行してください。 方法を確認するには、「Azure portal を使用して、Gen1 から Gen2 に Azure Data Lake Storage を移行する」を参照してください。

Azure Data Lake Storage Gen1 アカウントを持っていなければ、新しいアカウントは作成できません。

Azure Data Lake Storage Gen2 は、Azure Blob Storage を基にして構築され、エンタープライズでビッグ データ分析用に設計されています。 Data Lake Storage Gen2 は、Azure Machine Learning 用のデータストアとして使用されます。 Azure Blob Storage と同じように、保存データは Microsoft マネージド キーで暗号化されます。

Azure Data Lake Storage に格納されるデータに独自のキーを使う方法については、Azure Key Vault でのカスタマー マネージド キーによる Azure Storage の暗号化に関する記事をご覧ください。

Azure リレーショナル データベース

Azure Machine Learning service は、次のデータ ソースのデータをサポートしています。

Azure SQL Database

Transparent Data Encryption を使用すると、保存データを暗号化することにより、悪意のあるオフライン アクティビティの脅威から Azure SQL Database を保護できます。 既定では、Microsoft マネージド キーを使用する、新しくデプロイされるすべての SQL データベースに対して、Transparent Data Encryption が有効になります。

Transparent Data Encryption にカスタマー マネージド キーを使用する方法については、Azure SQL Database の Transparent Data Encryption に関するページをご覧ください。

Azure Database for PostgreSQL

既定では、Azure Database for PostgreSQL では、Azure Storage の暗号化と Microsoft マネージド キーを使用して保存データが暗号化されます。 これは、SQL Server などの他のデータベースの Transparent Data Encryption と似ています。

Transparent Data Encryption にカスタマー マネージド キーを使用する方法については、「カスタマーマネージド キーを使用した Azure Database for PostgreSQL 単一サーバーのデータ暗号化」を参照してください。

Azure Database for MySQL

Azure Database for MySQL は、Microsoft Cloud のリレーショナル データベース サービスです。 これは MySQL Community Edition データベース エンジンに基づいています。 Azure Database for MySQL サービスでは、保存データの Azure Storage の暗号化に FIPS 140-2 認証済みの暗号モジュールが使用されます。

カスタマー マネージド キーを使用したデータの暗号化については、「カスタマー マネージド キーを使用した Azure Database for MySQL のデータの暗号化」を参照してください。

Azure Cosmos DB

Azure Machine Learning では、メトリックとメタデータは Azure Cosmos DB インスタンスに格納されます。 このインスタンスは、Azure Machine Learning によって管理される Microsoft サブスクリプションに関連付けられています。 Azure Cosmos DB に格納されているすべてのデータは、Microsoft によって管理されるキーを使用して保存時に暗号化されます。

独自の (カスタマー マネージド) キーを使用して Azure Cosmos DB インスタンスを暗号化する場合は、Microsoft が管理する Azure Cosmos DB インスタンスがお使いのサブスクリプションに作成されます。 このインスタンスは、お使いのワークスペースのリソース グループとは異なる、Microsoft 管理対象リソース グループに作成されます。 詳細については、「Azure Machine Learning のカスタマー マネージド キー」を参照してください。

Azure Container Registry

コンテナー レジストリ (Azure Container Registry のインスタンス) 内のすべてのコンテナー イメージは、保存時に暗号化されます。 Azure では、イメージは保存前に自動的に暗号化され、Azure Machine Learning がイメージをプルするときに暗号解除されます。

カスタマー マネージド キーを使ってコンテナー レジストリを暗号化するには、ワークスペースをプロビジョニングしている間に、コンテナー レジストリを作成してアタッチする必要があります。 ワークスペースのプロビジョニング時に作成される既定のインスタンスを暗号化できます。

重要

Azure Machine Learning では、コンテナー レジストリで管理者アカウントを有効にする必要があります。 既定では、コンテナー レジストリを作成するときに、この設定は無効になっています。 管理者アカウントを有効にする方法の詳細については、この記事の後半の「管理者アカウント」を参照してください。

ワークスペースに対して作成したコンテナー レジストリは削除しないでください。 それを行うと、Azure Machine Learning ワークスペースが破損します。

既存のコンテナー レジストリを使用してワークスペースを作成する例については、次の記事を参照してください。

Azure Container Instances

重要

Azure Container Instances へのデプロイは、Azure Machine Learning Python SDK と CLI v1 に依存します。

デプロイされた Azure Container Instances リソースを暗号化するには、カスタマー マネージド キーを使用します。 Container Instances に使用するカスタマー マネージド キーは、ワークスペースのキー コンテナーに保存できます。

適用対象:Python SDK azureml v1

Container Instances にモデルをデプロイするときにキーを使用するには、AciWebservice.deploy_configuration() を使用して新しいデプロイ構成を作成します。 次のパラメーターを使用して、キーの情報を指定します。

  • cmk_vault_base_url:キーが含まれるキー コンテナーの URL。
  • cmk_key_name:キーの名前です。
  • cmk_key_version:キーのバージョン。

デプロイ構成の作成と使用の詳細については、次の記事を参照してください。

カスタマー マネージド キーを Container Instances で使用する方法の詳細については、「デプロイ データの暗号化」を参照してください。

Azure Kubernetes Service

デプロイされた Azure Kubernetes Service リソースは、カスタマー マネージド キーを使用していつでも暗号化できます。 詳細については、Azure Kubernetes Service で独自のキーを取り込む方法に関するページを参照してください。

このプロセスでは、Kubernetes クラスター内のデプロイされた仮想マシンのデータと OS ディスクの両方を暗号化できます。

重要

このプロセスは、AKS バージョン 1.17 以降でのみ動作します。 Azure Machine Learning は、2020 年 1 月 13 日に AKS 1.17 のサポートを追加しました。

Machine Learning コンピューティング

コンピューティング クラスター

Azure Storage に格納されている各コンピューティング ノードの OS ディスクは、Azure Machine Learning ストレージ アカウント内の Microsoft によって管理されるキーを使用して暗号化されます。 このコンピューティング先は一時的なものであり、キューに入れられたジョブがない場合、通常はクラスターがスケールダウンされます。 基になる仮想マシンのプロビジョニングは解除され、OS ディスクは削除されます。

既定では、ワークスペースに対して Azure Disk Encryption は有効になっていません。 hbi_workspace パラメーターを TRUE に設定してワークスペースを作成する場合、OS ディスクは暗号化されます。

各仮想マシンにも、OS 操作用にローカルな一時ディスクがあります。 必要に応じて、ディスクを使用してトレーニング データをステージできます。 hbi_workspace パラメーターを TRUE に設定してワークスペースを作成する場合、一時ディスクが暗号化されます。 この環境は有効期間が短く (ジョブ中のみ)、暗号化のサポートはシステム マネージド キーのみに制限されています。

マネージド オンライン エンドポイントとバッチ エンドポイントでは、バックエンドで Azure Machine Learning コンピューティングが使用され、同じ暗号化メカニズムに従います。

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

コンピューティング インスタンスの OS ディスクは、Azure Machine Learning ストレージ アカウント内の Microsoft マネージド キーを使用して暗号化されます。 hbi_workspace パラメーターを TRUE に設定してワークスペースを作成する場合、コンピューティング インスタンスのローカルの OS と一時ディスクは Microsoft マネージド キーで暗号化されます。 カスタマー マネージド キーによる暗号化は、OS と一時ディスクについてはサポートされていません。

詳細については、「Azure Machine Learning のカスタマー マネージド キー」を参照してください。

Azure Data Factory

Azure Data Factory パイプラインによって、Azure Machine Learning で使用するデータが取り込まれます。 Azure Data Factory では、エンティティの定義や実行中にキャッシュされたデータなどの保存データが暗号化されます。 既定では、データは、ランダムに生成されてデータ ファクトリに一意に割り当てられる Microsoft マネージド キーで暗号化されます。

暗号化にカスタマー マネージド キーを使う方法については、「カスタマー マネージド キーを使用した Azure Data Factory の暗号化」を参照してください。

Azure Databricks

Azure Machine Learning パイプラインで Azure Databricks を使用できます。 既定では、Azure Databricks によって使用される Databricks ファイル システム (DBFS) は、Microsoft マネージド キーを使用して暗号化されます。 顧客が管理するキーを使用するように Azure Databricks を構成するには、「既定 (ルート) の DBFS で顧客が管理するキーを構成する」を参照してください。

Microsoft が生成したデータ

Azure Machine Learning などのサービスを使用する場合、Microsoft では、複数のモデルをトレーニングするために、一時的な処理済みのデータを生成することがあります。 このデータはワークスペース内のデータストアに保存されるため、アクセス制御と暗号化を適切に適用できます。

また、デプロイされているエンドポイントからログ記録された診断情報を Application Insights インスタンスに暗号化することもできます。

転送中の暗号化

Azure Machine Learning では、さまざまな Azure Machine Learning マイクロサービス間の内部通信をセキュリティで保護するために、トランスポート層セキュリティ (TLS) を使用します。 すべての Azure Storage アクセスも、セキュリティで保護されたチャネル経由で行われます。

スコアリング エンドポイントへの外部呼び出しをセキュリティで保護できるように、Azure Machine Learning では TLS が使用されます。 詳細については、「TSL を使用して Azure Machine Learning による Web サービスをセキュリティで保護する」を参照してください。

データの収集と処理

診断目的で、Microsoft ではユーザーを識別しない情報を収集する場合があります。 たとえば、Microsoft は、リソース名 (データセット名や機械学習の実験名など) またはジョブ環境変数を収集する場合があります。 このようなデータはすべて、Microsoft が所有するサブスクリプションでホストされているストレージに、Microsoft マネージド キーを使用して保存されます。 ストレージは、Microsoft の標準のプライバシー ポリシーとデータ処理規格に従います。 このデータは、ワークスペースと同じリージョン内に保持されます。

機密情報 (アカウント キー シークレットなど) は環境変数に保存しないことをお勧めします。 Microsoft では、環境変数をログに記録し、暗号化して、保存します。 同様に、ジョブに名前を付けるときは、ユーザー名や秘密のプロジェクト名などの機密情報を含めないようにしてください。 この情報は、Microsoft サポート エンジニアがアクセスできるテレメトリ ログに表示されることがあります。

ワークスペースのプロビジョニング中に hbi_workspace パラメーターを TRUE に設定して、診断データの収集をオプトアウトすることができます。 この機能は、Azure Machine Learning Python SDK、Azure CLI、REST API、Azure Resource Manager テンプレートを使用する場合にサポートされます。

Azure Key Vault の資格情報ストレージ

Azure Machine Learning では、ワークスペースに関連付けられた Azure Key Vault インスタンスを使用して、さまざまな種類の資格情報が保存されます。

  • ストレージ アカウントの関連付けられた接続文字列
  • Azure Container Registry インスタンスへのパスワード
  • データストアへの接続文字列

Azure HDInsight や仮想マシンなどのコンピューティング先に対する Secure Shell (SSH) パスワードとキーは、Microsoft サブスクリプションに関連付けられている別のキー コンテナーに保存されます。 Azure Machine Learning には、ユーザーによって提供されるパスワードやキーは保存されません。 代わりに、仮想マシンと HDInsight に接続して実験を行うために、独自の SSH キーが生成、承認、保存されます。

各ワークスペースには、ワークスペースと同じ名前を持つ、関連付けられたシステム割り当て済みマネージド ID があります。 このマネージド ID では、キー コンテナー内のすべてのキー、シークレット、および証明書にアクセスできます。

次のステップ