Azure NetApp Files ボリューム暗号化用のテナント間カスタマー マネージド キー (CMK) を使用すると、Azure に基づくサービス プロバイダーは カスタマー マネージド キー暗号化を提供できます。 テナント間のシナリオでは、NetApp アカウントは独立系ソフトウェア ベンダーによって管理されるテナントに存在し、その NetApp アカウントのボリュームの暗号化に使用されるキーは、管理するテナントのキー コンテナーに存在します。
テナント間のカスタマー マネージド キーは、Azure NetApp Files でサポートされているすべてのリージョンで使用できます。
クロステナントのカスタマー マネージド キーについて
次の図は、テナント間 CMK 構成のサンプルを示しています。 この図には、サービス プロバイダーのテナント (テナント 1) とテナント (テナント 2) の 2 つの Azure テナントがあります。 テナント 1 は、NetApp アカウント (ソース Azure リソース) をホストします。 テナント 2 でキー コンテナーがホストされています。
マルチテナント アプリケーションの登録は、テナント 1 のサービス プロバイダーによって作成されます。 このアプリケーションでは、ユーザー割り当てマネージド ID とキー コンテナーへのプライベート エンドポイントを使って、フェデレーション ID 資格情報が作成されます。 その後、アプリの名前とアプリケーション ID が共有されます。
次の手順に従って、テナント (テナント 2) にサービス プロバイダーのアプリケーションをインストールし、インストールされているアプリケーションに関連付けられているサービス プリンシパルにキー コンテナーへのアクセス権を付与します。 また、暗号化キー (つまり、カスタマー マネージド キー) をキー コンテナーに格納します。 また、キーの場所 (キーの URI) をサービス プロバイダーと共有します。 次の構成では、サービス プロバイダーには次の機能があります。
- 顧客のテナント内にインストールされ、カスタマー マネージド キーへのアクセスが許可されている、マルチテナント アプリケーションのアプリケーション ID。
- マルチテナント アプリケーション上の資格情報として構成されたマネージド ID。 キー コンテナー内のキーの場所。
この 3 つのパラメーターを使用して、サービス プロバイダーはテナント 1 に Azure リソースをプロビジョニングします。テナント 2 のカスタマー マネージド キーを使用して暗号化できます。
機能を登録する
この機能は現在プレビュー段階です。 初めて使用する前に、機能を登録する必要があります。 登録が完了すると、機能が有効になり、バックグラウンドで動作します。 UI コントロールは必要ありません。
機能を登録します。
Register-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFCrossTenantCMK
機能の登録の状態を確認します。
注
RegistrationState は、
Registering
に変更する前に最大 60 分間、Registered
状態のままになります。 この状態が Registered になってから続行してください。Get-AzProviderFeature -ProviderNamespace Microsoft.NetApp -FeatureName ANFCrossTenantCMK
また、Azure CLI のコマンドaz feature register
と az feature show
を使用して、機能を登録し、登録状態を表示することもできます。
Azure NetApp Files のテナント間カスタマー マネージド キーを構成する
テナント間のカスタマー マネージド キーの構成プロセスには、REST API と Azure CLI を使用してのみ完了できる部分があります。
別のテナントのコンテナーのキーを使用するように NetApp アカウントを構成する
- アプリケーションの登録を作成します。
- Azure portal で Microsoft Entra ID に移動します
- 左ウィンドウで、[管理] > [アプリの登録] を選択します。
- [+ 新規登録] を選択します。
- アプリケーション登録の名前を指定し、任意の組織のディレクトリで [アカウント ] を選択します。
- 登録 を選択します。
- アプリケーションの ApplicationID/ClientID をメモしておきます。
- ユーザー割り当てマネージド ID を作成します。
- Azure portal で [マネージド ID] に移動します。
- [+ 作成] を選択します。
- マネージド ID のリソース グループ、リージョン、名前を指定します。
- [Review + create](レビュー + 作成) を選択します。
- デプロイが成功したら、ユーザー割り当てマネージド ID の Azure ResourceId をメモします。この ID は [プロパティ] にあります。 例:
/subscriptions/aaaaaaaa-0000-aaaa-0000-aaaa0000aaaa/resourcegroups/<resourceGroup>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identityTitle>
- アプリケーションのフェデレーション資格情報としてユーザー割り当てマネージド ID を構成する
- [Microsoft Entra ID] > [アプリの登録] > 自分のアプリに移動します。
- [証明書とシークレット] を選択します。
- [フェデレーション資格情報] を選択します。
- [資格情報の追加] を選択します。
- [フェデレーション資格情報のシナリオ] で、[ カスタマー マネージド キー] を選択します。
- [ マネージド ID の選択] を選択します。 ウィンドウからサブスクリプションを選択します。 [マネージド ID] で、[ユーザー割り当てマネージド ID] を選択します。 [選択] ボックスで、先ほど作成したマネージド ID を検索し、ウィンドウの下部にある [選択 ] を選択します。
- [資格情報の詳細] で、資格情報の名前と説明 (省略可能) を指定します。 [] を選択し、[] を追加します。
- キー コンテナーへのプライベート エンドポイントを作成します。
- Key Vault の完全な Azure ResourceId を共有します。
- プライベート エンドポイントに移動します。
- [+ 作成] を選択します。
- サブスクリプションとリソース グループを選択し、プライベート エンドポイントの名前を入力し、[ 次へ] > [リソース] を選択します。
- [リソース] タブで、次のように入力します。
- [接続方法] で、[ リソース ID またはエイリアスで Azure リソースに接続する] を選択します。
- [リソース ID またはエイリアス] で、お客様のキー コンテナーの ResourceID を入力します。
- ターゲット サブリソースの下に「vault」と入力します。 次に、[次へ] [仮想ネットワーク] を選択します。
- [Virtual Network] タブで、プライベート エンドポイントの仮想ネットワークとサブネットを選択します。 エンドポイントは、作成するボリュームと同じ仮想ネットワーク内にある必要があります。 サブネットは、
Microsoft.NetApp/volumes
に委任されたサブネットとは異なるサブネットである必要があります。 - 次のいくつかのタブで [次へ] を選択します。 最後に、最後のタブで [作成 ] を選択します。
キー ボールトへのアクセスを承認する
- 顧客テナントにサービス プロバイダー アプリケーションをインストールする
- クロステナント アプリケーションのプロバイダーから管理者の同意 URL を取得します。 この例では、URL は次のようになります:
https://login.microsoftonline.com/<tenant1-tenantId>/adminconsent/client_id=<client/application-ID-for-the-cross-tenant-application>
。 URL によって、資格情報の入力を求めるサインイン ページが開きます。 資格情報を入力すると、リダイレクト URL が構成されていないことを示すエラーが表示されることがあります。これは問題ありません。
- クロステナント アプリケーションのプロバイダーから管理者の同意 URL を取得します。 この例では、URL は次のようになります:
- サービス プロバイダー アプリケーションにキー コンテナーへのアクセスを許可します。
- お使いのキー コンテナーに移動します。 左側のウィンドウから [アクセス制御 (IAM)] を選択します。
- [このリソースへのアクセスを許可する] で、[ ロールの割り当ての追加] を選択します。
- 次に、 Key Vault Crypto User を検索して選択します。
- [メンバー] で、[ ユーザー、グループ、またはサービス プリンシパル] を選択します。
- [メンバー] を選択します。 サービス プロバイダーからインストールしたアプリケーションのアプリケーション名を検索します。
- レビュー + 割り当て を選択します。
- キー コンテナーへの受信プライベート エンドポイント接続を受け入れます。
- お使いのキー コンテナーに移動します。 左側 の ウィンドウから [ネットワーク] を選択します。
- [ プライベート エンドポイント接続] で、プロバイダーのテナントから受信プライベート エンドポイントを選択し、[承認] を選択 します。
- 省略可能な説明を設定するか、既定値をそのまま使用します。
キーを使用するように NetApp アカウントを構成する
注
別のテナントで CMK を使用するように NetApp アカウントを構成するには、 az rest
コマンドの使用のみがサポートされています。
az rest
コマンドを使用して、別のテナントで CMK を使用するように NetApp アカウントを構成します。az rest --method put --uri "/subscriptions/<subscription Id>/resourceGroups/<resourceGroupName>/providers/Microsoft.NetApp/netAppAccounts/<NetAppAccountName>?api-version=2024-01-01-preview" --body '{ \"properties\": { \"encryption\": { \"keySource\": \"Microsoft.KeyVault\", \"keyVaultProperties\": {\"keyVaultUri\": \"<URI to the key vault>\", \"keyVaultResourceId\": \"/<full resource ID of the key vault>\", \"keyName\": \"<customer’s key name>\" }, \"identity\": { \"userAssignedIdentity\": \"<full resource ID of the user-assigned identity>", \"federatedClientId\": \"<clientId of multi-tenant application>\" } } }, \"___location\": \"southcentralus\", \"identity\": {\"type\": \"userAssigned\", \"userAssignedIdentities\": { \"<full resource ID of the user-assigned identity>\": { } } } }' --verbose
az rest
コマンドを送信すると、テナント間 CMK で NetApp アカウントが正常に構成されました。
ボリュームを作成する
注
テナント間 CMK を使用してボリュームを作成するには、Azure CLI を使用する必要があります。
- CLI を使用してボリュームを作成します。
az netappfiles volume create -g <resource group name> --account-name <NetApp account name> --pool-name <pool name> --name <volume name> -l southcentralus --service-level premium --usage-threshold 100 --file-path "<file path>" --vnet <virtual network name> --subnet default --network-features Standard --encryption-key-source Microsoft.KeyVault --kv-private-endpoint-id <full resource ID to the private endpoint to the customer's vault> --debug