独自の暗号化キーを使用して、ストレージ アカウントのデータを保護できます。 顧客管理キーを指定すると、Azure Storageはその鍵を使ってデータを暗号化する鍵へのアクセスを保護・制御します。 カスタマー マネージド キーを使用すると、アクセス制御をより柔軟に管理できます。
カスタマー マネージド キーを格納するには、次のいずれかの Azure キー ストアを使用する必要があります。
独自のキーを作成してキー コンテナーまたはマネージド HSM に格納することも、Azure Key Vault API を使ってキーを生成することもできます。 ストレージ アカウントとキー コンテナーまたはマネージド HSM は、異なる Microsoft Entra テナント、リージョン、サブスクリプションにある可能性があります。
注
Azure Key Vault と Azure Key Vault マネージド HSM では、カスタマー マネージド キーの構成用に同じ API と管理インターフェイスがサポートされています。 Azure Key Vault でサポートされているすべてのアクションが、Azure Key Vault マネージド HSM でもサポートされます。
カスタマー マネージド キーの概要
以下の図は、Azure StorageがMicrosoft Entra IDとキーボールトまたはマネージドHSMを使って顧客管理キーを使ってリクエストを行う様子を示しています。
次の一覧では、図の番号付きの手順について説明します。
- Azure Key Vault 管理者が、暗号化キーへのアクセス許可をマネージド ID に付与します。 マネージドIDは、ユーザーが作成・管理するマネージドIDか、ストレージアカウントに関連付けられたシステム割り当てのマネージドIDのいずれかです。
- Azure Storage 管理者が、ストレージ アカウントのカスタマー マネージド キーを使用して暗号化を構成します。
- Azure Storage は、手順 1 で Azure Key Vault 管理者がアクセス許可を付与したマネージド ID を使用して、Microsoft Entra ID 経由で Azure Key Vault へのアクセスを認証します。
- Azure Storage は、Azure Key Vault のカスタマー マネージド キーを使用してアカウント暗号化キーをラップします。
- 読み書き操作のために、Azure StorageはAzure Key Vaultにリクエストを送信し、アカウントの暗号化鍵をアンラッピングして暗号化および復号化操作を行います。
ストレージ アカウントに関連付けられているマネージド ID が、Azure Key Vault のカスタマー マネージド キーにアクセスするには、少なくとも次のアクセス許可を持っている必要があります。
- ラップキー
- アンラップキー
- get
キーのアクセス許可の詳細については、「キーの種類、アルゴリズム、および操作」を参照してください。
Azure Policy には、ストレージ アカウントに、Blob Storage と Azure Files のワークロードに対してカスタマー マネージド キーの使用を要求する組み込みのポリシーがあります。 詳細については、「Azure Policy の組み込みのポリシー定義」の「ストレージ」セクションを参照してください。
キューとテーブルのカスタマー マネージド キー
キューおよびテーブルストレージに保存されたデータは、ストレージアカウントで顧客管理キーを有効にしても自動的に顧客管理キーで保護されません。 ストレージアカウントを作成する際に、これらのサービスもこの保護に含めるように設定できます。
キューとテーブルのカスタマー マネージド キーがサポートされるストレージ アカウントを作成する方法について詳しくは、「テーブルとキューのカスタマー マネージド キーがサポートされるアカウントを作成する」を参照してください。
Blob StorageやAzure Filesのデータは、ストレージアカウントの顧客管理キーを設定する際に常に顧客管理キーで保護されます。
ストレージ アカウントのカスタマー マネージド キーを有効にする
ストレージ アカウントのカスタマー マネージド キーを構成すると、Azure Storage は、関連するキー コンテナーまたはマネージド HSM 内のカスタマー マネージド キーを使用して、アカウントのルート データ暗号化キーをラップします。 ルート暗号化キーの保護は変わりますが、Azure Storage アカウント内のデータは常に暗号化されたままです。 データの暗号化を維持するために追加の措置を取る必要はありません。 カスタマー マネージド キーによる保護はすぐに有効になります。
カスタマー マネージド キーと Microsoft マネージド キーをいつでも切り替えることができます。 Microsoft マネージド キーの詳細については、「暗号化キーの管理について」を参照してください。
キー保管庫の要件
鍵を保管する鍵保管庫または管理型HSMは、以下の要件を満たす必要があります:
- 論理的な削除が有効になっています。
- 消去保護が有効になっています。
- 鍵はRSAまたは RSA-HSM 鍵です。
- キーサイズは2048、3072、または4096です。
キーの詳細については、「キーについて」を参照してください。
キーボールトやマネージド HSM には関連するコストが発生します。 詳細については、「Key Vault の価格」を参照してください。
同じテナント内のキー コンテナーを使用したカスタマー マネージド キー
カスタマー マネージド キーは、同じテナントまたは異なる Microsoft Entra テナントにあるキー コンテナーとストレージ アカウントを使用して構成できます。 キー コンテナーとストレージ アカウントが同じテナントにある場合に、カスタマー マネージド キーを使用して Azure Storage 暗号化を構成する方法については、次の記事のいずれかを参照してください。
- Azure Key Vault に新しいストレージ アカウントのカスタマー マネージド キーを構成する
- Azure Key Vault に既存のストレージ アカウントのカスタマー マネージド キーを構成する
同じテナント内でキーボールトを持つ顧客管理キーを有効にする場合、キーを含むキーボールトへのアクセスを許可するために管理IDを指定する必要があります。 マネージドIDは、ユーザー割り当てまたはシステム割り当てのマネージドアイデンティティのいずれかである場合があります。
- ストレージ アカウントの作成時にカスタマー マネージド キーを構成する場合は、ユーザー割り当てマネージド ID を使用する必要があります。
- 既存のストレージ アカウントでカスタマー マネージド キーを構成する場合は、ユーザー割り当てマネージド ID とシステム割り当てマネージド ID のどちらも使用できます。
システム割り当てマネージド ID とユーザー割り当てマネージド ID の比較については、「Azure リソースのマネージド ID」を参照してください。 ユーザー割り当てマネージド ID を作成して管理する方法については、「ユーザー割り当てマネージド ID の管理」を参照してください。
別のテナントにあるキー保管庫を使用したカスタマー マネージド キー
キー コンテナーとストレージ アカウントが異なる Microsoft Entra テナントにある場合に、カスタマー マネージド キーを使用して Azure Storage 暗号化を構成する方法については、次の記事のいずれかを参照してください:
マネージド HSM を使用したカスタマー マネージド キー
新規または既存のアカウントに対して、Azure Key Vault マネージド HSM を使用してカスタマー マネージド キーを構成できます。 また、ストレージ アカウントと同じテナント内、または別のテナント内にあるマネージド HSM を使用して、カスタマー マネージド キーを構成できます。 マネージド HSM でカスタマー マネージド キーを構成するプロセスは、キー コンテナーでカスタマー マネージド キーを構成する場合と同じですが、アクセス許可は若干異なります。 詳細については、「Azure Key Vault マネージド HSM に格納されているカスタマー マネージド キーによる暗号化を構成する」を参照してください。
キーのバージョンを更新する
暗号学のベストプラクティスに従うために、ストレージアカウントを保護する鍵を定期的に、通常は少なくとも2年ごとにローテーションしてください。 Azure Storage によってキー コンテナー内のキーが変更されることはありませんが、ユーザーは、コンプライアンス要件に従ってキーをローテーションするようにキー ローテーション ポリシーを構成できます。 詳細については、「Azure Key Vault で暗号化キーの自動ローテーションを構成する」を参照してください。
キーがキーヴォルトでローテーションされた後、ストレージアカウントの顧客管理キー設定を新しいキーバージョンに更新する必要があります。 顧客管理キーは、アカウントを保護するキーのバージョンを自動および手動で更新できます。 どちらの方法を使用するかは、カスタマー マネージド キーを構成する際、または構成を更新する際に決めることができます。
キーまたはキー バージョンを変更すると、ルート暗号化キーの保護は変わりますが、Azure Storage アカウント内のデータは常に暗号化されたままです。 データが確実に保護されるように、追加のアクションを実行する必要はありません。 キーのバージョンをローテーションしてもパフォーマンスには影響しません。 キーバージョンを回転させるとダウンタイムはありません。
重要
キーをローテーションするには、コンプライアンス要件に従って、キー コンテナーまたはマネージド HSM に新しいバージョンのキーを作成します。 Azure Storageは鍵の回転を扱わないので、鍵の回転は鍵の保管庫内で管理しなければなりません。
顧客管理キーに使われるキーをローテーションすると、その操作は現在Azure MonitorのAzure Storageログに記録されていません。
キー バージョンを自動的に更新する
新しいバージョンが利用可能になった場合にカスタマー マネージド キーを自動的に更新するには、ストレージ アカウントでカスタマー マネージド キーを使用した暗号化を有効にするときに、キーのバージョンを省略します。 キーのバージョンを省略すると、Azure Storageは毎日キーボールトやマネージドHSMで新しいバージョンのカスタマー管理キーをチェックします。 新しいキーのバージョンが利用可能であれば、Azure Storageは自動的に最新のキーを使用します。
Azure Storage では、新しいキー バージョンの確認のため、キー コンテナーが 1 日に 1 回だけチェックされます。 キーをローテーションするときは、古いバージョンを無効にする前に 24 時間待ちます。
以前にキー バージョンを手動で更新するようにストレージ アカウントを構成していて、自動的に更新するように変更する場合は、必要に応じてキー バージョンを明示的に空の文字列に変更します。 この方法の詳細については、「キー バージョンの自動更新の暗号化を構成する」を参照してください。
キーのバージョンを手動で更新する
Azure Storage 暗号化に特定のバージョンのキーを使用するには、ストレージ アカウントでカスタマー マネージド キーを使用した暗号化を有効にするときに、そのキー バージョンを指定します。 キーのバージョンを指定すると、Azure Storageは手動でキーバージョンを更新するまでそのバージョンを暗号化に使います。
キーバージョンを明示的に指定した場合、新しいバージョンが作成される際にストレージアカウントを手動で更新して新しいキーバージョンURIを使う必要があります。 新しいバージョンのキーを使用するようにストレージ アカウントを更新する方法については、「Azure Key Vault に格納されているカスタマー マネージド キーによる暗号化を構成する」または「Azure Key Vault Managed HSM に格納されているカスタマー マネージド キーによる暗号化を構成する」を参照してください。
カスタマー マネージド キーを使用するストレージ アカウントへのアクセスを取り消す
カスタマー マネージド キーを使用しているストレージ アカウントへのアクセスを取り消すには、キー コンテナー内のキーを無効にします。 キーを無効にする方法については、「カスタマー マネージド キーを使用するストレージ アカウントへのアクセスを取り消す」を参照してください。
キーが無効化された後は、クライアントがリソースやそのメタデータから読み書きする操作を呼び出すことはできません。 これらの操作を呼び出す試みは、すべてのユーザーに対してエラーコード403(禁止)で失敗します。
これらの操作を再び呼び出すには、カスタマー マネージド キーへのアクセス権を復元します。
以下のセクションに記載されていないすべてのデータ操作は、顧客管理キーが取り消された後やキーが無効化・削除された後に進行可能です。
カスタマー マネージド キーへのアクセス権を取り消すには、PowerShell または Azure CLI を使用します。
キーが取り消された後に失敗する Blob Storage 操作
-
List Blobs (要求 URI で
include=metadataパラメーターを指定して呼び出す場合) - BLOB を取得する
- BLOB のプロパティを取得する
- BLOB メタデータを取得する
- BLOB メタデータの設定
-
Snapshot Blob (
x-ms-meta-name要求ヘッダーを使用して呼び出す場合) - ブロブをコピー
- URL から BLOB をコピーする
- BLOB 層の設定
- ブロックを置く
- URL からブロックを配置する
- ブロックの追加
- URL からのブロックの追加
- Blob を配置
- Put ページ
- URL からページを配置する
- 増分コピー BLOB
キーが取り消された後に失敗する Azure Files 操作
- アクセス許可の作成
- アクセス許可の取得
- ディレクトリとファイルの一覧表示
- ディレクトリの作成
- ディレクトリ プロパティの取得
- ディレクトリ プロパティの設定
- ディレクトリ メタデータの設定
- ディレクトリのメタデータの設定
- ファイルを作成する
- ファイルの取得
- ファイル プロパティの取得
- ファイル プロパティの設定
- 範囲を設定
- URL から範囲を配置
- ファイル メタデータの取得
- ファイル メタデータの設定
- ファイルのコピー
- ファイル名の変更
Azure マネージド ディスクのカスタマー マネージド キー
また、顧客管理キーを使ってAzure管理ディスクの暗号化管理も可能です。 カスタマーマネージドキーは、マネージドディスクとAzure Storageリソースで異なる動作をします。 詳細については、「 Azure マネージド ディスクのサーバー側暗号化」を参照してください。