Azure Files の Customer Managed keys で保存時の暗号化を構成する

✔️ 適用対象: Microsoft.Storage リソース プロバイダーで作成されたクラシック SMB および NFS ファイル共有

✖️ 次には適用されません: Microsoft.FileShares リソース プロバイダーで作成されたファイル共有

Azureは、Azure Filesデータを含むストレージアカウント内のすべてのデータをAES-256暗号化で暗号化します。 既定では、Microsoftはストレージ アカウントの暗号化キーを管理します。 暗号化鍵をより細かく制御したいなら、Microsoft管理鍵の代わりにカスタマーマネージドキー(CMK)を使って、データを暗号化する暗号化キーへのアクセスを保護・制御しましょう。 この記事では、Azure Files ワークロードのカスタマー マネージド キーを構成する方法について説明します。 保存時の暗号化とキー オプションの概要については、「Azure Files の保存時の暗号化」をご覧ください。

ストレージアカウントで顧客管理キーを設定すると、そのストレージアカウント内のAzure Filesデータは顧客キーを使って自動的に暗号化されます。 共有ごとのオプトインは必要ありません。

ストレージアカウントと同じMicrosoft Entraテナント内でAzure Key Vaultの鍵を使用するには、以下のセクションを順番に完了してください:

  1. キーボールトの作成または設定
  2. 暗号化鍵の作成またはインポート
  3. マネージドIDを作成し、権限を割り当てます
  4. ストレージアカウントで顧客管理キーを設定する
  5. 構成を確認してください

その他の重要な場所については、以下のセクションをご覧ください。

キーボールトの作成または設定

顧客管理キーを有効にするには、Azureストレージアカウントとパージ保護が有効化されたAzure Key Vaultが必要です。 既存のキー コンテナーを使用するか、新しく作成することができます。 ストレージ アカウントとキー コンテナーは、同じMicrosoft Entra テナント内のさまざまなリージョンまたはサブスクリプションに存在できます。 クロステナントシナリオについては、「 クロステナント顧客管理キーについて」を参照してください。

Azure ポータルを使用して新しいキー コンテナーを作成するには、次の手順に従います。

  1. Azure ポータルで、キーボールトを検索し、作成 を選択します。
  2. 必須フィールド (サブスクリプション、リソース グループ、名前、リージョン) を入力します。
  3. [ 回復オプション] で、[ 消去保護を有効にする] を選択します。
  4. [確認と作成] を選択し、次に [作成] を選択します。

既存のキー コンテナーを使用する場合は、次の手順に従います。

  1. Azureポータルでキーボールトに移動します。
  2. サービス メニューの [設定] で [プロパティ] を選択 します。
  3. [ 消去保護 ] セクションで、[ 消去保護を有効にする] を選択し、[ 保存] を選択します。
  4. キー ボールトでソフト削除が有効になっていることを確認します。 これは、新しいキーボールトに対して既定で有効になっています。

Key Vault Crypto Officer ロールを割り当てる

key vault においてキーを作成および管理するには、key vault に対する Key Vault Crypto Officer ロールが必要です。 この役割はAzureポータル、PowerShell、またはAzure CLIを使って自分に割り当ててください。 もしすでにキー コンテナーでこの役割を持っているなら、このセクションを飛ばして「暗号化鍵を作成またはインポートする」へ行ってください。

Owner または User Access Administrator の RBAC ロールを持っている必要があり、そのスコープ内で Key Vault Crypto Officer ロールを割り当てることができます。 必要に応じて管理者に問い合わせてください。

Azure ポータルを使用して Key Vault Crypto Officer ロールを自分に割り当てるには、次の手順に従います。

  1. キー コンテナーに移動します。
  2. サービス メニューから、 アクセス制御 (IAM) を選択します。
  3. [このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
  4. Key Vault Crypto Officer を検索して選択し、Next を選択します。
  5. [ アクセスの割り当て] で、[ ユーザー、グループ、またはサービス プリンシパル] を選択します。
  6. [ メンバー] で 、[ +メンバーの選択] を選択します。
  7. アカウントを検索し、自分のアカウントを選択してから、[選択]をクリックします。
  8. [確認と割り当て] を選択し、もう一度 [確認と割り当て] を選択します。

暗号化鍵の作成またはインポート

サイズ 2048、3072、または 4096 の RSA キーまたは RSA-HSM キーが必要です。 キー コンテナーに RSA キーを生成またはインポートします。 キーを生成する前に、key vaultに Key Vault Crypto Officer ロールがあることを確認します。

Azureポータルを使って新しいRSA暗号鍵を生成するには、以下の手順に従ってください:

  1. Azureポータルでキーボールトに移動します。
  2. サービス メニューの [ オブジェクト] で [キー] を選択 します。
  3. 生成/インポート を選択します。 オプションで生成を選択します。
  4. キーの名前を入力します。 キー名には、英数字とダッシュのみを含めることができます。
  5. キータイプをRSAに設定し、RSAキーサイズを2048、3072、または4096に設定してください。
  6. を選択してを作成します。

Azureポータルを使って既存のRSA暗号化鍵をインポートするには、以下の手順に従ってください:

  1. Azureポータルでキーボールトに移動します。
  2. サービス メニューの [ オブジェクト] で [キー] を選択 します。
  3. 生成/インポート を選択します。 オプション で インポート を選択します。
  4. アップロードするキーを選択します。
  5. キーの名前を入力します。 キー名には、英数字とダッシュのみを含めることができます。
  6. [キーの種類] を [RSA] に設定します。
  7. を選択してを作成します。

マネージド ID を作成し、アクセス許可を割り当てる

ストレージ アカウントには、キー コンテナーに対する認証に マネージド ID が 必要です。 マネージド ID を使用することで、ストレージ アカウントは資格情報を格納することなく、キー コンテナー内の暗号化キーに安全にアクセスできます。

ユーザー割り当てマネージド ID を作成し、その ID に key vault の Key Vault Crypto Service Encryption User ロールを付与します。

ユーザー割り当てマネージド ID を作成する

Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、ユーザー割り当てマネージド ID を作成します。

Azureポータルを使ってユーザー割り当て管理IDを作成するには、以下の手順に従ってください:

  1. マネージド ID を検索し、[作成] を選択します。
  2. サブスクリプション、リソース グループ、リージョン、および名前を選択します。
  3. [確認と作成] を選択し、次に [作成] を選択します。

Key Vault Crypto Service Encryption ユーザー ロールをマネージド ID に割り当てる

Key Vault Crypto Service Encryption User ロールを、Azure ポータル、PowerShell、またはAzure CLIを使用して作成したマネージド ID に割り当てます。

Key Vault Crypto Service Encryption User ロールをマネージド ID に割り当てるには、Azure ポータルを使用して、次の手順に従います。

  1. Azureポータルでキーボールトに移動します。
  2. サービス メニューから、 アクセス制御 (IAM) を選択します。
  3. [このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
  4. Key Vault Crypto Service Encryption User を検索して選択し、 Next を選択します。
  5. [アクセスの割り当て先] で [マネージド ID] を選択します。
  6. [ メンバー] で 、[ +メンバーの選択] を選択します。
  7. [ マネージド ID の選択] ウィンドウが開きます。 [マネージド ID] で、[ユーザー割り当てマネージド ID] を選択します。
  8. 作成したマネージド ID を選び、[選択] をクリックします。
  9. [確認と割り当て] を選択し、もう一度 [確認と割り当て] を選択します。

ストレージアカウントで顧客管理キーを設定する

キー コンテナー、キー、およびマネージド ID を配置すると、ストレージ アカウントでカスタマー マネージド キーを有効にすることができます。

キーバージョンを指定していない場合、ストレージアカウントは自動キーバージョン更新(推奨)を使用します。 手動で鍵バージョン更新を使うには、鍵のバージョンを指定してください。

Important

ネットワーク セキュリティ境界に関連付けられているストレージ アカウントの場合、キー コンテナーは、理想的には同じネットワーク セキュリティ境界内に存在する必要があります。 そうでない場合は、ストレージ アカウントがキー ボールトと通信できるように、キー ボールトのネットワーク セキュリティ境界プロファイルを構成する必要があります。

既存のストレージ アカウントのカスタマー マネージド キーを構成する

Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成できます。

Azure ポータルを使用して既存のストレージ アカウントでカスタマー マネージド キーを構成するには、次の手順に従います。 これらのステップは自動キーバージョン更新を用いています。 手動の鍵バージョン更新を使うには、ステップ4で「Enter key URI」を選択し、キーバージョンを含むキー URI を入力してください。

  1. ストレージ アカウントに移動します。
  2. サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
  3. 暗号化タイプについては、顧客管理キーを選択します。 ストレージ アカウントが CMK 用に既に構成されている場合は、[ キーの変更] を選択します。
  4. [暗号化キー] で、[キー コンテナーから選択] を選択します。
  5. キー コンテナーとキーを選択します。 キー ストアの種類には、キー コンテナーを選択してください。 鍵の保管庫と鍵を選んでから、「選択」を選びます。
  6. [ID の種類] で、[ユーザー割り当て] を選択して、以前に作成したユーザー割り当てマネージド ID を使用します。
  7. アイデンティティを選択します。 ユーザー割り当てのマネージド ID を検索して選択し、その後 「追加」を選択します。
  8. 保存を選びます。

顧客管理キーの設定のための暗号化選択と鍵選択のスクリーンショットです。

新しいストレージ アカウントのカスタマー マネージド キーを構成する

Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、新しいストレージ アカウントを作成するときにカスタマー マネージド キーを構成できます。

ストレージ アカウントが作成されるまで ID が存在しないため、ストレージ アカウントの作成時にシステム割り当て ID を使用することはできません。 ユーザー割り当てマネージド ID を使用する必要があります。

Azure ポータルを使用して新しいストレージ アカウントのカスタマー マネージド キーを構成するには、次の手順に従います。 これらのステップは自動キーバージョン更新を用いています。 手動の鍵バージョン更新を使用するには、ステップ2で URIからキーを入力 を選択し、キーバージョンを含むキーURIを入力してください。

  1. ストレージ アカウントの作成時に [暗号化] タブで、[暗号化の種類] に [カスタマー マネージド キー (CMK)] を選択します。

  2. 暗号化鍵については、「鍵の保管庫と鍵を選択する」を選択してください。

  3. サブスクリプションでは、Key Vault を含むサブスクリプションを選択してください。 ポータルは既定で別のサブスクリプションになるかもしれません。

  4. キーストアの種類には、Key vault を選択します。

  5. キー コンテナーとキーを選択します。

  6. [ ユーザー割り当て ID] で、[ ID の選択] を選択します。 「ユーザー割り当てマネージド ID を選択する」ウィンドウが開きます。

  7. 作成したユーザー割り当てマネージド ID を検索して選択してください。 新しいストレージ アカウントでは、システム割り当てマネージド ID を使用できません。

  8. [] を選択し、[] を追加します。

    「ストレージアカウント作成」ページの暗号化タブのスクリーンショットで、顧客管理の鍵、鍵保管庫、鍵、ユーザー割り当てのIDが選択されています。

  9. 残りのタブを完成させ、「 レビューして作成」を選択し、その後 「作成」を選択します。

構成を確認する

カスタマー マネージド キーを有効にしたら、ストレージ アカウントで暗号化が正しく構成されていることを確認します。 これを行うには、Azure ポータル、Azure PowerShell、またはAzure CLIを使用します。

Azure ポータルを使用してストレージ アカウントの構成を確認するには、次の手順に従います。

  1. Azure portal で、ストレージ アカウントに移動します。
  2. サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
  3. 暗号化タイプが顧客管理鍵であることを確認しましょう。
  4. [キーの選択] の情報が正しいことを確認します。

Azure Key Vault Managed HSM でキーを使用する

顧客管理キーは Azure Key Vault ではなく、Azure Key Vault Managed HSM に保存できます。 ステップはKey Vaultのセクションとは以下の点で異なります。

  • マネージドHSMは独自のローカルロールベースアクセス制御(RBAC)を使用します。 ロールは、キー コンテナー上の Azure RBAC ではなく、マネージド HSM 上で割り当てます。 ストレージ アカウントのロール割り当てをキーにスコープし、マネージド ID がそのキーのみを使用できるようにします。
  • マネージド HSM の鍵は RSA-HSM キーです。 サイズ2048、3072、または4096の鍵を使用してください。
  • ストレージアカウントは、キーボールトのURIの代わりに管理されているHSMのURIを使用しています。

始める前に、以下のアイテムを必ず用意してください:

  • プロビジョニングされて有効化されたマネージドHSMです。 手順については、「Quickstart: Azure CLI を使ったマネージドHSMのプロビジョニングと有効化」をご覧ください。
  • 管理されたHSMでパージ保護が有効になっています。 パージ保護が有効になっていない場合、ストレージ アカウントの構成はエラー Keyvault policy recoverable is not set で失敗します。 パージ保護を有効にした後は無効にできません。 削除された管理されたHSMは、保持期間終了まで請求が蓄積され続けます。 詳細については、 Managed HSM の論理的な削除と消去の保護に関する記事を参照してください。
  • マネージド HSM 上のローカル RBAC ロールで、Managed HSM Crypto User など、キーを作成できます。
  • ユーザーによって割り当てられた管理済みID。 手順については、「ユーザー割り当てマネージド ID を作成する」をご覧ください。

管理型 HSM でキーを作成し、マネージド ID に Managed HSM Crypto Service Encryption User ロールを割り当て、ストレージ アカウントがそのキーを使用するように構成します。 役割の割り当ては反映されるまで数分かかる場合があります。 ストレージアカウントの設定が認証エラーで失敗した場合は、数分待ってから再度試してください。

キーを作成し役割を割り当てるには、PowerShellまたはAzure CLIのステップを使ってください。 次に、Azureポータルでストレージアカウントを設定してください:

  1. ストレージ アカウントに移動します。
  2. サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
  3. 暗号化タイプについては、顧客管理のキーを選択します。 ストレージアカウントがすでに顧客管理キーに設定されている場合は、「 キーの変更」を選択してください。
  4. 暗号化キーでは、「鍵の保管庫から選択」を選択し、次に「鍵の保管庫と鍵を選択する」を選択してください。
  5. 「キーストアタイプ」には「マネージド HSM」を選択してください。
  6. 管理されているHSMとキーを選択し、次に「選択」を選びます。
  7. アイデンティティ タイプではユーザー割り当てを選択し、次にユーザー割り当てマネージド ID を選択します。
  8. 保存を選びます。

マネージドHSMでキーを使用する新しいストレージアカウントを作成するには、「 新しいストレージアカウントのために顧客管理キーを設定する」の手順に従ってください。 管理されているHSMのURIをキーボールトのURIとして使用してください。

テナント間のカスタマー マネージド キーについて

サービスとしてのソフトウェア(SaaS)をAzure上で構築する多くのサービスプロバイダーは、顧客が独自の暗号化キーを管理するオプションを提供したいとしています。 カスタマー マネージド キーを使用すると、サービス プロバイダーは、サービス プロバイダーの顧客によって管理され、サービス プロバイダーからアクセスできない暗号化キーを使用して、顧客のデータを暗号化できます。 Azure では、サービス プロバイダーの顧客は Azure Key Vault を使って、独自の Microsoft Entra テナントとサブスクリプションで暗号化キーを管理できます。

サービス プロバイダーが所有し、サービス プロバイダーのテナントに存在する Azure プラットフォーム サービスとリソースでは、暗号化/暗号化解除操作を実行するために、顧客のテナントからキーにアクセスする必要があります。

次の図は、サービス プロバイダーとその顧客にまたがるテナント間のカスタマー マネージド キー ワークフローにおけるフェデレーション ID を使用した保存データ暗号化を示しています。

フェデレーション ID を持つテナント間のカスタマー マネージド キーを示すスクリーンショット。

上の例では、独立したサービス プロバイダーのテナント ("テナント 1") と顧客のテナント ("テナント 2") の、2 つの Microsoft Entra テナントがあります。 Tenant 1 はAzureのプラットフォームサービスをホストし、Tenant 2 は顧客のキーボールトをホストします。

サービス プロバイダーによって、"テナント 1" 内にマルチテナント アプリケーションの登録が作成されます。 ユーザーが割り当てたマネージドアイデンティティを使用して、このアプリケーションにフェデレーテッドアイデンティティ資格情報が作成されます。 次に、アプリの名前とアプリケーション ID が顧客と共有されます。

適切なアクセス許可を持つユーザーは、顧客テナント "テナント 2" にサービス プロバイダーのアプリケーションをインストールします。 次にユーザーは、インストールされているアプリケーションに関連付けられているサービス プリンシパルに、顧客のキー コンテナーへのアクセス権を付与します。 顧客はまた、暗号化キー (カスタマー マネージド キー) をキー コンテナーに格納します。 顧客は、キーの場所 (キーの URL) をサービス プロバイダーと共有します。

これでサービス プロバイダーには次の情報があります。

  • 顧客のテナント内にインストールされ、カスタマー マネージド キーへのアクセスが許可されている、マルチテナント アプリケーションのアプリケーション ID。
  • マルチテナント アプリケーション上の資格情報として構成されたマネージド ID。
  • 顧客のキー コンテナー内のキーの場所。

この 3 つのパラメーターを使用すると、サービス プロバイダーは Tenant 1 内Azureリソースをプロビジョニングします。このリソースは、Tenant 2 のカスタマー マネージド キーを使用して暗号化できます。

上記のエンド ツー エンド ソリューションを 3 つのフェーズに分割しましょう。

  1. サービス プロバイダーは ID を構成します。
  2. 顧客は、サービス プロバイダーのマルチテナント アプリに対し、Azure Key Vault 内の暗号化キーへのアクセス権を付与します。
  3. サービス プロバイダーは、カスタマー マネージド キーを使用して、Azure リソース内のデータを暗号化します。

フェーズ 1 の操作は、ほとんどのサービス プロバイダー アプリケーションに対して 1 回限りの設定となります。 フェーズ 2 とフェーズ 3 の操作は、顧客ごとに繰り返されます。

フェーズ 1 - サービス プロバイダーがMicrosoft Entra アプリケーションを構成する

Step Description Azure RBAC における最小限のロール Microsoft Entra RBAC での最小ロール
1. 新しいマルチテナント Microsoft Entra アプリケーション登録を作成するか、既存のアプリケーション登録から開始します。 Azure portal、Microsoft Graph API、Azure PowerShell、または Azure CLI を使用して、アプリケーション登録のアプリケーション ID (クライアント ID) をメモします None アプリケーション開発者
2. ユーザー割り当てマネージド ID を作成します (フェデレーション ID 資格情報として使用されます)。
Azure portal / Azure CLI / Azure PowerShell/ Azure Resource Manager テンプレート
マネージド ID コントリビューター None
3. ユーザー割り当てマネージド ID を、アプリケーション上のフェデレーション ID 資格情報として構成し、アプリケーションの ID として動作できるようにします。
Graph API リファレンス/ Azure portal/ Azure CLI/ Azure PowerShell
None アプリケーションの所有者
4. アプリケーション名とアプリケーション ID を顧客と共有し、顧客がアプリケーションをインストールして承認できるようにします。 None None

サービス プロバイダーに関する考慮事項

  • Azure Resource Manager (ARM) テンプレートは、Microsoft Entra アプリケーションの作成には推奨されません。
  • 同じマルチテナント アプリケーションを使用して、"テナント 2"、"テナント 3"、"テナント 4" など、複数のテナント内のキーにアクセスすることができます。 各テナントでは、アプリケーション ID は同じだがオブジェクト ID は異なるアプリケーションの独立したインスタンスが作成されます。 したがって、このアプリケーションの各インスタンスは個別に承認されます。 この機能に使用されるアプリケーション オブジェクトを使用して、すべての顧客間でアプリケーションをパーティション分割する方法を検討します。
    • 1 つのアプリケーションで使用できるフェデレーション ID 資格情報は最大 20 個なので、サービス プロバイダーはフェデレーション ID を顧客間で共有する必要があります。 フェデレーション ID の設計に関する考慮事項と制限について詳しくは、「外部 ID プロバイダーを信頼するようにアプリを構成する」をご覧ください。
  • サービス プロバイダーが顧客ごとに 1 つのアプリケーション オブジェクトを使用するシナリオもまれにありますが、この場合は、すべての顧客で大規模にアプリケーションを管理するための多額のメンテナンス コストが必要になります。
  • サービス プロバイダー テナント内では、発行者の確認を自動化することはできません。

フェーズ 2 - 顧客がキー ボールトへのアクセスを承認する

Step Description 最小特権のAzure RBACロール 最小権限の Microsoft Entra ロール
1.
  • 推奨: アプリにサインインするようにユーザーを送信します。 ユーザーがサインインできる場合は、アプリのサービス プリンシパルがテナントに存在します。
  • Microsoft Graph、Microsoft Graph PowerShell、Azure PowerShell、または Azure CLI を使用して、サービス プリンシパルを作成します。
  • 管理者の同意 URL を作成し、アプリケーション ID を使用してサービス プリンシパルを作成するためのテナント全体にわたる同意を付与します。
  • None アプリケーションをインストールするアクセス許可を持つユーザー
    2. Azure Key Vault と、カスタマー マネージド キーとして使用するキーを作成します。 キー コンテナーを作成するには、ユーザーに Key Vault Contributor ロールを割り当てる必要があります

    キー コンテナーにキーを追加するには、ユーザーに Key Vault Crypto Officer ロールを割り当てる必要があります
    None
    3. Key Vault Crypto Service Encryption ユーザーロールを割り当てることで、同意されたアプリケーション ID に Azure key vault へのアクセス権を付与します。 Key Vault Crypto Service Encryption User ロールをアプリケーションに割り当てるには、User Access Administrator ロールが割り当てられている必要があります。 None
    4. キー コンテナーの URL とキー名を、SaaS オファリングのカスタマー マネージド キー構成にコピーします。 None None

    Note

    カスタマー マネージド キーを使用した暗号化のために Managed HSM へのアクセスを承認するには、ストレージ アカウントの例を 参照してください。 マネージド HSM を使用したキーの管理の詳細については、「Azure CLI を使用してマネージド HSM を管理する」を参照してください

    サービス プロバイダーの顧客に関する考慮事項

    • 顧客テナント "テナント 2" で、管理者は、管理者以外のユーザーがアプリケーションをインストールできないようにポリシーを設定できます。 これらのポリシーによって、管理者以外のユーザーがサービス プリンシパルを作成できないようにすることができます。 そのようなポリシーを構成した場合は、サービス プリンシパルを作成するアクセス許可を持ったユーザーの関与が必要になります。
    • Azure Key Vault へのアクセスは、Azure RBAC またはアクセス ポリシーを使用して承認できます。 キー ボールトへのアクセスを許可する場合は、必ずキー ボールトのアクティブなメカニズムを使用してください。
    • Microsoft Entra アプリケーションの登録には、アプリケーション ID (クライアント ID) が使用されます。 アプリケーションがテナントにインストールされると、サービス プリンシパルが作成されます。 サービス プリンシパルでは、アプリ登録と同じアプリケーション ID が共有されますが、独自のオブジェクト ID が生成されます。 アプリケーションにリソースへのアクセスを承認するには、サービス プリンシパル Name または ObjectID プロパティの使用が必要になる場合があります。

    フェーズ 3 - サービス プロバイダーは、カスタマー マネージド キーを使用してAzure リソース内のデータを暗号化する

    フェーズ 1 と 2 が完了すると、サービス プロバイダーは、顧客のテナント内のキーとキー コンテナーと ISV のテナント内の Azure リソースを使用して、Azure リソース上の暗号化を構成できます。 サービス プロバイダーは、そのAzure リソースでサポートされているクライアント ツール、ARM テンプレート、または REST API を使用して、テナント間のカスタマー マネージド キーを構成できます。

    テナント間で顧客管理キーを設定する

    このセクションでは、テナント間のカスタマー マネージド キーを構成し、顧客データを暗号化する方法について説明します。 Tenant2 のキー コンテナーに格納されているカスタマー マネージド キーを使用して、Tenant1 のリソース内の顧客データを暗号化する方法について説明します。 Azure portal、Azure PowerShell、または Azure CLI を使用できます。

    Azure portal にサインインして、次の手順を実行します。

    サービス プロバイダーが ID を構成します

    次の手順は、サービス プロバイダーのテナント Tenant1 のサービス プロバイダーによって実行されます。

    サービス プロバイダーが新しいマルチテナント アプリ登録を作成します

    新しいマルチテナント Microsoft Entra アプリケーション登録を作成することも、既存のマルチテナント アプリケーション登録から開始することもできます。 既存のアプリケーション登録から始める場合は、アプリケーションのアプリケーション ID (クライアント ID) をメモします。

    新しい登録を作成するには、次の手順に従います。

    1. 検索ボックスで Microsoft Entra ID を検索します。 Microsoft Entra ID 拡張機能を見つけて選択します。

    2. 左側のウィンドウから Manage > アプリの登録 を選択します。

    3. [+ 新規登録] を選択します。

    4. アプリケーションの登録の名前を指定して、[任意の組織ディレクトリ内のアカウント (任意の Microsoft Entra ディレクトリ - マルチテナント)] を選びます。

    5. 登録を選択します。

    6. アプリケーションの ApplicationId/ClientId を メモします。

      新しいマルチテナント アプリケーション登録を作成する方法を示すスクリーンショット。

    サービス プロバイダーは、ユーザー割り当てマネージド ID を作成します

    フェデレーション ID 用資格情報として使用されるユーザー割り当てマネージド ID を作成します。

    1. 検索ボックスで「マネージド ID」を検索します。 マネージド ID 拡張機能を見つけて選択します。

    2. [+ 作成] を選択します。

    3. マネージド ID のリソース グループ、リージョン、名前を指定します。

    4. [Review + create](レビュー + 作成) を選択します。

    5. デプロイが成功したら、ユーザー割り当てマネージド ID の Azure ResourceId をメモします。この ID は [プロパティ] にあります。 例:

      /subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA

      リソース グループとユーザー割り当てマネージド ID を作成する方法を示すスクリーンショット。

    サービス プロバイダーは、ユーザー割り当てマネージド ID をアプリケーションのフェデレーション資格情報として構成します

    アプリケーションの ID を偽装できるように、ユーザー割り当てマネージド ID をアプリケーション上のフェデレーション ID 資格情報として構成します。

    1. [Microsoft Entra ID] > [アプリの登録] > 自分のアプリに移動します。

    2. [証明書とシークレット] を選択します。

    3. [フェデレーション資格情報] を選択します。

      証明書とシークレットをナビゲートする方法を示すスクリーンショット。

    4. [資格情報の追加] を選択します。

    5. [フェデレーション資格情報のシナリオ] で、[マネージド ID] を選択します。

    6. [マネージド ID の選択] をクリックします。 ウィンドウからサブスクリプションを選択します。 [マネージド ID] で、[ユーザー割り当てマネージド ID] を選択します。 [選択] ボックスで、先ほど作成したマネージド ID を検索し、ウィンドウの下部にある [選択] をクリックします。

      マネージド ID を選択する方法を示すスクリーンショット。

    7. [資格情報の詳細] で、資格情報の名前と説明 (省略可能) を指定し、[追加] を選択します。

      資格情報を追加する方法を示すスクリーンショット。

    サービス プロバイダーがアプリケーション ID を顧客と共有する

    マルチテナント アプリケーションのアプリケーション ID (クライアント ID) を見つけて、顧客と共有します。

    顧客がサービス プロバイダーのアプリにキー コンテナー内のキーへのアクセスを許可する

    次の手順は、顧客のテナント Tenant2 の顧客によって実行されます。 顧客は、Azure ポータル、Azure PowerShell、またはAzure CLIを使用できます。

    手順を実行するユーザーは、アプリケーション管理者、クラウド アプリケーション管理者、グローバル管理者などの特権ロールを持つ管理者である必要があります。

    Azure portal にサインインして、次の手順を実行します。

    顧客が顧客テナントにサービス プロバイダー アプリケーションをインストールする

    サービス プロバイダーの登録済みアプリケーションを顧客のテナントにインストールするには、登録済みアプリからのアプリケーション ID で、サービス プリンシパルを作成します。 サービス プリンシパルは、次のいずれかの方法で作成できます。

    顧客がキー保管庫を作成する

    キー コンテナーを作成するには、ユーザーのアカウントに Key Vault Contributor ロール、またはキー コンテナーの作成を許可する別のロールを割り当てる必要があります。

    1. Azure ポータル メニューまたはホーム ページから、+ リソースの作成を選択します。 検索ボックスに「Key Vaults」と入力します。 結果の一覧から [Key Vaults] を選択します。 [キーボルト] ページで、[作成] を選択します。

    2. [基本] タブで、サブスクリプションを選択します。 [リソース グループ] で、[新規作成] を選択し、リソース グループ名を入力します。

    3. キー ボールトの一意の名前を入力してください。

    4. リージョンと価格レベルを選択します。

    5. 新しいキー コンテナーの消去保護を有効にします。

    6. [アクセス ポリシー] タブで、[アクセス許可モデル] に [Azure ロールベースのアクセス制御] を選びます。

    7. [確認および作成] 、 [作成] の順に選択します。

      キーボルトの作成方法を示すスクリーンショット。

    キー コンテナーの名前と URI を記録しておきます。キー コンテナーにアクセスするアプリケーションは。この URI を使う必要があります。

    詳細については、「クイックスタート - Azure portal を使用して Azure キー コンテナーを作成する」を参照してください。

    顧客は、Key Vault Crypto Officer ロールをユーザー アカウントに割り当てます

    この手順により、暗号化キーを作成できるようになります。

    1. キー コンテナーに移動し、左側のウィンドウから Access Control (IAM) を選択します。
    2. [このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
    3. Key Vault Crypto Officer を検索して選択します。
    4. [メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
    5. [メンバー] を選択し、ユーザー アカウントを検索します。
    6. Review + Assign を選択します。

    顧客が暗号化キーを作成する

    暗号化キーを作成するには、ユーザーのアカウントに Key Vault Crypto Officer ロール、またはキーの作成を許可する別のロールを割り当てる必要があります。

    1. Key Vault のプロパティ ページで、[キー] を選択します。
    2. 生成/インポート を選択します。
    3. [キーの作成] 画面で、キーの名前を指定します。 他の値は既定値のままにしておきます。
    4. を選択してを作成します。
    5. キー URI をコピーします。

    顧客がサービス プロバイダー アプリケーションにキー コンテナーへのアクセスを許可する

    Azure RBAC ロール Key Vault Crypto Service Encryption User をサービス プロバイダーの登録済みアプリケーションに割り当てて、key vaultにアクセスできるようにします。

    1. キー コンテナーに移動し、左側のウィンドウから Access Control (IAM) を選択します。
    2. [このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
    3. Key Vault Crypto Service Encryption User を検索して選択します。
    4. [メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
    5. [メンバー] を選択し、サービス プロバイダーからインストールしたアプリケーションのアプリケーション名を検索します。
    6. Review + Assign を選択します。

    これで、キー コンテナーの URI とキーを使用して、カスタマー マネージド キーを構成できます。

    サービスプロバイダーは既存のストレージアカウントのために顧客管理キーを設定します

    ここまでは、ISVのテナント上でマルチテナントアプリケーションを設定し、顧客のテナントにアプリケーションをインストールし、キーボールトとキーを顧客のテナント上で設定しました。 次に、既存のストレージ アカウントに、顧客のテナントのキーを使用して顧客管理キーを設定できます。

    以下の例は、ユーザー割り当てのマネージド ID を使ってキー ボールトへのアクセスを承認することで、既存のストレージ アカウント上で顧客管理キーを設定する方法を示しています。 システム割り当てマネージド ID を使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成することもできます。 どちらの場合も、マネージド ID には、キー コンテナーにアクセスするための適切なアクセス許可が必要です。 詳細については、Azure Key Vault に対する認証に関する記事を参照してください。

    既存のストレージ アカウントで顧客管理キーによる暗号化を構成する場合、関連付けられたキー コンテナーで新しいバージョンが使用可能になるたびに、暗号化に使用されるキーのバージョンを自動的に更新することができます。 この機能を有効にするには、キーURIからキーバージョンを省略してください。 あるいは、手動で更新するまで暗号化に使う鍵のバージョンを明示的に指定することもできます。 キー URI にキーのバージョンを含めると、キーのバージョンを手動で更新するようにカスタマー マネージド キーが構成されます。

    Azure portal で既存のストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成するには、次の手順を実行します。

    1. ストレージ アカウントに移動します。

    2. [セキュリティとネットワーク] で、[暗号化] を選択します。 デフォルトでは、鍵管理はMicrosoft管理キーに設定されています。

    3. [カスタマー マネージド キー] オプションを選択します。

    4. Key Vault から選択 オプションを選択します。

    5. [キー URI を入力] を選択し、キー URI を指定します。 Azure Filesで新しいキーのバージョンを自動的にチェックして更新するには、URIからキーのバージョンを省略してください。

    6. キー コンテナーとキーを含むサブスクリプションを選択します。

    7. [ID タイプ] フィールドで、[ユーザー割り当て] を選択し、前に作成したフェデレーション ID 資格情報を使用してマネージド ID を指定します。

    8. 詳細セクションを展開し、以前ISVのテナントで作成したマルチテナント登録アプリケーションを選択します。

      Azure portal で既存のストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成する方法を示すスクリーンショット。

    9. 変更を保存。

    顧客のテナント内のキーボールトからキーを指定すると、Azureポータルは顧客管理キーがそのキーで設定されていることを示します。 また、キーのバージョンの自動更新が有効になっていることが示されて、現在暗号化に使用されているキーのバージョンが表示されます。 ポータルはまた、キーボールトへのアクセスを認可するために使用される管理 ID の種類、管理 ID のプリンシパル ID、マルチテナント アプリケーションのアプリケーション ID も表示します。

    クロステナントのカスタマー マネージド キー構成を示すスクリーンショット。

    サービスプロバイダーは顧客の鍵で暗号化された新しいストレージアカウントを作成します

    また、ISVのテナントで新しいストレージアカウントを作成し、顧客のテナントのキーで顧客管理キーを設定することもできます。

    ストレージ アカウントの作成時にカスタマー マネージド キーを構成する場合は、キー コンテナーへのアクセスの承認に既存のユーザー割り当てマネージド ID を使用する必要があります。 ユーザー割り当てマネージド ID には、キー ボールトにアクセスするための適切なアクセス許可が必要です。 詳細については、Azure Key Vault に対する認証に関する記事を参照してください。

    新しいストレージアカウントで顧客管理キーで暗号化を設定する場合、関連するキーボールトに新しいバージョンが存在するたびに、暗号化に使われるキーのバージョンを自動的に更新することができます。 これを行うには、キー URI からキーのバージョンを省略します。 または、キーのバージョンが手動で更新されるまで暗号化に使用するキーのバージョンを明示的に指定できます。 キー URI にキーのバージョンを含めると、キーのバージョンを手動で更新するようにカスタマー マネージド キーが構成されます。

    Azure portal で新しいストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成するには、次の手順を実行します。

    1. Azureポータルで、ISVのテナント内のストレージアカウントページに行き、「作成」ボタンを選択して新しいアカウントを作成します。

    2. 「 クラシックファイル共有の作成 」で示された手順に従い、「 基本」「 上級」「 ネットワーク 」「 データ保護 」タブのフィールドを埋めてください。

    3. [暗号化] タブの [カスタマー マネージド キーのサポートを有効にする] フィールドで、カスタマー マネージド キーのサポートを有効にするサービスを指定します。

    4. [Encryption type] (暗号化の種類) フィールドで、[Customer-managed keys (CMK)] (カスタマー マネージド キー (CMK)) を選択します。

    5. [暗号化キー] フィールドで、[Enter key from key vault] (キー コンテナーからキーを入力する) を選択し、キー URI を指定します。 Azure Filesで新しいキーのバージョンを自動的にチェックして更新する場合は、URIからキーのバージョンを省略してください。

    6. [ユーザー割り当て ID] フィールドで、ISV のテナントで以前に作成したユーザー割り当てマネージド ID を検索します。

    7. 詳細セクションを展開し、以前ISVのテナントで作成したマルチテナント登録アプリケーションを選択します。

      Azure portal で新しいストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成する方法を示すスクリーンショット。

    8. [確認] ボタンを選択して検証し、アカウントを作成します。

    新しいストレージ アカウントの作成時にキー バージョンを手動で更新して、カスタマー マネージド キーを構成することもできます。 これを行うには、キー URI を指定するときにキーのバージョンを含めます。

    キーをローテーションまたは変更、アクセスを取り消す、またはMicrosoft管理キーに戻すには、以下のセクションの手順をご利用ください。 これらのステップは、テナント間の顧客管理キーでも同じです。

    キーのローテーション

    暗号化キーを定期的にローテーションすると、キーが侵害された場合の公開が制限されます。 カスタマー マネージド キーを使用するストレージ アカウントの暗号化をローテーションするには、次の 2 つの方法があります。

    • キー のバージョンをローテーションする - キー保管庫で同じキーの新しいバージョンを作成します。 キー名は変わりませんが、バージョンは変更されます。
    • キーを変更する - ストレージ アカウントを切り替えて、同じキー コンテナーまたは別のキー コンテナー内のまったく異なるキー (別の名前) を使用します。

    Important

    Azureはキー ボールトにおいて新しいキー バージョンを日に一度だけチェックします。 キーをローテーションした後、以前のキー バージョンを無効にする前に 24 時間待ちます。

    キー バージョンをローテーションする

    セキュリティのベスト プラクティスについては、キー バージョンを少なくとも 2 年に 1 回ローテーションします。

    キー バージョンを指定せずに顧客管理キーを設定する場合 (既定)、Azure は毎日自動的に新しいキー バージョンを確認します。 キー コンテナーに新しいバージョンのキーを作成すると、Azure は 24 時間以内にそれを検出します。 Azure Key Vault自動キー ローテーションを構成して>スケジュールに基づいて新しいキー バージョンを生成することもできます。

    キー バージョンの手動ローテーション

    顧客管理キーを設定する際にキーバージョンを指定すると、Azureはその特定のバージョンを使用し、新しいバージョンを自動的にチェックしません。 新しいキー バージョンをポイントするように、ストレージ アカウントの構成を手動で更新する必要があります。

    Azure portal を使用してキー バージョンを手動でローテーションするには、次の手順に従います。

    1. キー コンテナーに移動します。 サービス メニューの [ オブジェクト] で [キー] を選択 します。
    2. キーを選択し、新しいキーバージョンを選択します。 キー識別子の値をコピーしてください。 この値にはキーバージョンも含まれます。
    3. ストレージ アカウントに移動します。 サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
    4. [キーの変更] を選びます。
    5. 暗号化キーでは、キー URI を入力 を選択し、キー識別子を キー URI に貼り付けます。
    6. 保存を選びます。

    キーを変更する

    まったく異なるキーを使用するようにストレージ アカウントを切り替えるには、キー コンテナーに新しいキーを作成またはインポートし ( 暗号化キーの作成またはインポートを参照)、新しいキーを使用するようにストレージ アカウントの暗号化構成を更新します。

    Azure ポータルを使用してキーを変更するには、次の手順に従います。

    1. ストレージ アカウントに移動します。
    2. サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
    3. [キーの変更] を選びます。
    4. キー コンテナーとキーを選択します。 キーストアの種類 には キー コンテナー を選択してください。 鍵の保管庫と新しい鍵を選んでから、「選択」 を選びます。
    5. 保存を選びます。

    キーを無効にしてファイル共有データへのアクセスを取り消す

    顧客管理キーを無効化または削除することで、暗号化されたファイル共有データへのアクセスをブロックできます。 アクセスはすぐにブロックされません。 キーを無効にしてから、データプレーン操作でエラーが発生し始めるまでに数分かかることがあります。 キーが無効になっている間、次のようなすべてのAzure Filesデータ プレーン操作が HTTP 403 (禁止) で失敗します。

    • ディレクトリとファイルを一覧表示する
    • ディレクトリやファイルの作成、取得、指定
    • ファイルのメタデータを取得または設定する
    • 範囲の配置、ファイルのコピー、ファイル名の変更

    ファイル共有データへのアクセスを取り消すには、Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、キー コンテナー内のキーを無効にします。 キーを再度有効にして、アクセスを復元します。

    Azure ポータルを使用してキーを無効にするには、次の手順に従います。

    1. Azureポータルでキーボールトに移動します。
    2. サービス メニューの [ オブジェクト] で [キー] を選択 します。
    3. キーを右クリックし、[無効] を選択します。

    Microsoft マネージド キーに切り替える

    カスタマー マネージド キーが不要になった場合は、Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、ストレージ アカウントを暗号化にMicrosoftマネージド キーを使用するように切り替えることができます。

    Azure ポータルを使用してMicrosoftマネージド キーに戻すには、次の手順に従います。

    1. Azure portal で、ストレージ アカウントに移動します。
    2. サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
    3. [暗号化の種類] を [Microsoft マネージド キー] に変更します。
    4. 保存を選びます。