Azure Storage の暗号化のためのカスタマー マネージド キー
独自の暗号化キーを使用して、ストレージ アカウントのデータを保護できます。 カスタマー マネージド キーを指定すると、データを暗号化するキーへのアクセスを保護および制御するために、そのキーが使用されます。 カスタマー マネージド キーを使用すると、アクセス制御をより柔軟に管理できます。
カスタマー マネージド キーを格納するには、次のいずれかの Azure キー ストアを使用する必要があります。
独自のキーを作成してキー コンテナーまたはマネージド HSM に格納することも、Azure Key Vault API を使ってキーを生成することもできます。 ストレージ アカウントとキー コンテナーまたはマネージド HSM は、異なる Microsoft Entra テナント、リージョン、サブスクリプションにある可能性があります。
Note
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 のカスタマー マネージド キーにアクセスするには、少なくとも次のアクセス許可を持っている必要があります。
- wrapkey
- unwrapkey
- get
キーのアクセス許可の詳細については、「キーの種類、アルゴリズム、および操作」を参照してください。
Azure Policy には、ストレージ アカウントに、Blob Storage と Azure Files のワークロードに対してカスタマー マネージド キーの使用を要求する組み込みのポリシーがあります。 詳細については、「Azure Policy の組み込みのポリシー定義」の「ストレージ」セクションを参照してください。
キューとテーブルのカスタマー マネージド キー
カスタマー マネージド キーがストレージ アカウントに対して有効になっている場合、キューおよびテーブル ストレージに保管されているデータは、カスタマー マネージド キーによって自動的には保護されません。 ストレージ アカウントを作成するときに、必要に応じてこの保護に含めるようにサービスを構成できます。
キューとテーブルのカスタマー マネージド キーがサポートされるストレージ アカウントを作成する方法について詳しくは、「テーブルとキューのカスタマー マネージド キーがサポートされるアカウントを作成する」を参照してください。
BLOB ストレージと Azure Files のデータは、カスタマー マネージド キーがストレージ アカウントに対して構成されている場合、カスタマー マネージド キーによって常に保護されます。
ストレージ アカウントのカスタマー マネージド キーを有効にする
ストレージ アカウントのカスタマー マネージド キーを構成すると、Azure Storage は、関連するキー コンテナーまたはマネージド HSM 内のカスタマー マネージド キーを使用して、アカウントのルート データ暗号化キーをラップします。 ルート暗号化キーの保護は変わりますが、Azure Storage アカウント内のデータは常に暗号化されたままです。 データの暗号化状態を保持するためにユーザー側で必要な追加アクションはありません。 カスタマー マネージド キーによる保護はすぐに有効になります。
カスタマー マネージド キーと Microsoft マネージド キーをいつでも切り替えることができます。 Microsoft マネージド キーの詳細については、「暗号化キーの管理について」を参照してください。
キー コンテナーの要件
キーを格納するキー コンテナーまたはマネージド HSM では、論理的な削除と消去保護の両方が有効になっている必要があります。 Azure Storage の暗号化では、2048、3072、および 4096 のサイズの RSA および RSA-HSM キーがサポートされています。 キーの詳細については、「キーについて」を参照してください。
キー コンテナーまたはマネージド HSM の使用には関連コストがあります。 詳細については、「Key Vault の価格」を参照してください。
同じテナント内のキー コンテナーを使用したカスタマー マネージド キー
カスタマー マネージド キーは、同じテナントまたは異なる Microsoft Entra テナントにあるキー コンテナーとストレージ アカウントを使用して構成できます。 キー コンテナーとストレージ アカウントが同じテナントにある場合に、カスタマー マネージド キーを使用して Azure Storage 暗号化を構成する方法については、次の記事のいずれかを参照してください。
- Azure Key Vault に新しいストレージ アカウントのカスタマー マネージド キーを構成する
- Azure Key Vault に既存のストレージ アカウントのカスタマー マネージド キーを構成する
同じテナント内のキー コンテナーを使用してカスタマー マネージド キーを有効にする場合、そのキーが格納されているキー コンテナーへのアクセスの承認に使用するマネージド ID を指定する必要があります。 このマネージド ID は、ユーザー割り当てマネージド 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 Storage の Azure Monitor ログに記録されません。
キー バージョンを自動的に更新する
新しいバージョンが利用可能になった場合にカスタマー マネージド キーを自動的に更新するには、ストレージ アカウントでカスタマー マネージド キーを使用した暗号化を有効にするときに、キーのバージョンを省略します。 キーのバージョンが省略されている場合、Azure Storage によってキー コンテナーまたはマネージド HSM が毎日チェックされ、新しいバージョンのカスタマー マネージド キーがないかどうかが確認されます。 新しいキー バージョンを使用できる場合は、最新バージョンのキーが自動的に使用されます。
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
パラメーターを指定して呼び出す場合) - Get Blob
- Get Blob Properties
- Get Blob Metadata
- Set Blob Metadata
- Snapshot Blob (
x-ms-meta-name
要求ヘッダーを使用して呼び出す場合) - Copy Blob
- Copy Blob From URL
- Set Blob Tier
- Put Block
- Put Block From URL
- Append Block
- Append Block From URL
- Put Blob
- Put Page
- Put Page From URL
- Incremental Copy Blob
キーが取り消された後に失敗する Azure Files 操作
- アクセス許可の作成
- アクセス許可の取得
- ディレクトリとファイルの一覧表示
- ディレクトリの作成
- ディレクトリ プロパティの取得
- ディレクトリ プロパティの設定
- ディレクトリ メタデータの設定
- ディレクトリのメタデータの設定
- ファイルを作成する
- Get File
- ファイル プロパティの取得
- ファイル プロパティの設定
- Put Range
- URL から範囲を配置
- ファイル メタデータの取得
- Set File Metadata
- ファイルのコピー
- ファイル名の変更
Azure マネージド ディスク用のカスタマー マネージド キー
カスタマー マネージド キーは、Azure マネージド ディスクの暗号化の管理にも使用できます。 マネージド ディスクに対するカスタマー マネージド キーの動作は、Azure Storage リソースに対する動作とは異なります。 詳細については、Windows の場合は「Azure Managed Disks のサーバー側暗号化」を参照してください。また、Linux の場合は「Azure Managed Disks のサーバー側暗号化」を参照してください。