Azure NetApp Files ボリュームの暗号化でカスタマー マネージド キーを使うと、新しいボリュームを作成するときに プラットフォーム マネージド キーではなく、独自のキーを使用できます。 カスタマー マネージド キーを使用すると、キーのライフ サイクル、キーの使用アクセス許可、キーの監査操作の間の関係を完全に管理できます。
次の図は、カスタマー マネージド キーが Azure NetApp Files でどのように機能するかを示したものです。
Azure NetApp Files が、暗号化キーへのアクセス許可をマネージド ID に付与します。 マネージド ID は、ユーザーが作成して管理するユーザー割り当てマネージド ID、または NetApp アカウントに関連付けられているシステム割り当てマネージド ID のいずれかです。
NetApp アカウント用のカスタマー マネージド キーで暗号化を構成します。
ユーザーは、ステップ 1 で Azure Key Vault 管理者がアクセス許可を付与したマネージド ID を使い、Microsoft Entra ID で Azure Key Vault へのアクセスの認証を行います。
Azure NetApp Files は、Azure Key Vault のカスタマー マネージド キーを使ってアカウント暗号化キーをラップします。
カスタマー マネージド キーは、Azure NetApp Files のパフォーマンスには影響しません。 プラットフォーム マネージド キーとの違いは、キーの管理方法だけです。
読み取り/書き込み操作の場合、Azure NetApp Files は、暗号化と暗号化解除の操作を実行するため、アカウント暗号化キーのラップを解除する要求を Azure Key Vault に送信します。
テナント間のカスタマー マネージド キーは、Azure NetApp Files でサポートされているすべてのリージョンで使用できます。
考慮事項
- カスタマー マネージド キーを使ってボリュームを作成するには、Standard ネットワーク機能を選ぶ必要があります。 Basic ネットワーク機能を使って構成されたボリュームで、カスタマー マネージド キー ボリュームを使うことはできません。 ボリューム作成ページで手順に従って [Network Features] (ネットワーク機能) オプションを設定します。
- セキュリティを強化するには、キー コンテナーのネットワーク設定で [パブリック アクセスの無効化] オプションを選択できます。 このオプションを選ぶ場合は、[信頼された Microsoft サービスがこのファイアウォールをバイパスすることを許可する] もオンにして、Azure NetApp Files サービスに暗号化キーへのアクセスを許可する必要があります。
- カスタマー マネージド キーは、マネージド システム ID (MSI) 証明書の自動更新をサポートします。 証明書が有効な場合は、手動で更新する必要はありません。
- Azure NetApp Files でカスタマー マネージド キー ボリュームの作成が失敗した場合は、エラー メッセージが表示されます。 詳しくは、「エラー メッセージとトラブルシューティング」をご覧ください。
- カスタマー マネージド キー ボリュームを作成した後で、基になる Azure Key Vault または Azure プライベート エンドポイントを変更しないでください。 変更すると、ボリュームにアクセスできなくなる可能性があります。 変更する必要がある場合は、「 カスタマー マネージド キーのプライベート エンドポイント IP を更新する」を参照してください。
- Azure NetApp Files では、データ移行なしで既存のボリュームをプラットフォーム マネージド キー (PMK) からカスタマー マネージド キー (CMK) にに切り替える機能がサポートされています。 これにより、暗号化キーのライフサイクル (更新、ローテーション) に柔軟性を持たせ、規制産業の要件に対するセキュリティを強化することができます。
- Azure Key Vault にアクセスできなくなった場合、Azure NetApp Files は暗号化キーへのアクセスを失い、カスタマー マネージド キーで有効になっているボリュームのデータを読み書きできなくなります。 このような場合は、影響を受けているボリュームのアクセスを手動で復元するためのサポート チケットを作成します。
- Azure NetApp Files では、リージョン間レプリケーションまたはゾーン間レプリケーションのリレーションシップでの、ソースとデータのレプリケーション ボリュームで、カスタマー マネージド キーがサポートされます。
- プライベート リンク サブネット上の Azure ネットワーク セキュリティ グループ (NSG) を Azure Key Vault に適用することは、Azure NetApp Files カスタマー マネージド キーでサポートされています。 NSG は、サブネットでプライベート エンドポイント ネットワーク ポリシーが有効になっていない限り、プライベート リンクへの接続には影響しません。
- ラップ/ラップ解除はサポートされていません。 カスタマー マネージド キーでは、暗号化/暗号化解除が使用されます。 詳細については、 RSA アルゴリズムを参照してください。
要件
最初のカスタマー マネージド キー ボリュームを作成する前に、以下を設定する必要があります。
- 少なくとも 1 つのキーを含む Azure キー コンテナー。
- キー コンテナーでは、論理的な削除と消去保護を有効にする必要があります。
- キーは RSA 型である必要があります。
- キー コンテナーには、Azure プライベート エンドポイントが必要です。
- プライベート エンドポイントは、Azure NetApp Files に委任されたものとは異なるサブネットに存在する必要があります。 サブネットは、Azure NetApp に委任されたものと同じ仮想ネットワーク内にある必要があります。
Azure Key Vault と Azure プライベート エンドポイントについて詳しくは、以下をご覧ください。
- クイック スタート: キー コンテナーを作成する
- コンテナーにキーを作成またはインポートする
- プライベート エンドポイントを作成する
- キーとサポートされているキーの種類の詳細
- ネットワーク セキュリティ グループ
- プライベート エンドポイントのネットワーク ポリシーを管理する
カスタマー マネージド キーを使用するように NetApp アカウントを構成する
Azure portal の Azure NetApp Files で、[暗号化] を選びます。
[暗号化] ページでは、NetApp アカウントの暗号化の設定を管理できます。 これには、Azure Key Vault に格納されている独自の暗号化キーを使うように NetApp アカウントを設定できるオプションが含まれます。 この設定では、システム割り当て ID を NetApp アカウントに提供し、必要なキー アクセス許可を持つ ID のアクセス ポリシーを追加します。
カスタマー マネージド キーを使うように NetApp アカウントを設定するとき、キーの URI を指定するには 2 つの方法があります。
Azure Key Vault への認証に使う ID の種類を選びます。 Azure キー コンテナーがアクセス許可モデルとしてコンテナー アクセス ポリシーを使うように構成されている場合は、両方のオプションを使用できます。 それ以外の場合は、ユーザー割り当てオプションのみを使用できます。
- [システム割り当て] を選んだ場合は、[保存] ボタンを選びます。 システム割り当て ID を NetApp アカウントに追加することで、Azure portal により NetApp アカウントが自動的に構成されます。 キーのアクセス許可「取得」「暗号化」「復号化」を含むアクセス ポリシーがAzure Key Vaultに作成されます。
- [ユーザー割り当て] を選んだ場合は、ID を選ぶ必要があります。 [ID の選択] を選んでコンテキスト ウィンドウを開き、ユーザー割り当てマネージド ID を選びます。
コンテナー アクセス ポリシーを使うように Azure キー コンテナーを構成した場合、Azure portal によって、次のプロセスで NetApp アカウントが自動的に構成されます。ユーザーが選んだユーザー割り当て ID が、NetApp アカウントに追加されます。 取得、暗号化、暗号化解除のキー アクセス許可を使用して、アクセス ポリシーが Azure キー コンテナーに作成されます。
Azure ロールベースのアクセス制御を使うように Azure キー コンテナーを構成した場合は、選んだユーザー割り当て ID に、次のアクションのアクセス許可を持つロールがキー コンテナーで割り当てられていることを確認する必要があります。
Microsoft.KeyVault/vaults/keys/read
Microsoft.KeyVault/vaults/keys/encrypt/action
-
Microsoft.KeyVault/vaults/keys/decrypt/action
選んだユーザー割り当て ID が、NetApp アカウントに追加されます。 ロールベースのアクセス制御のカスタマイズ可能な性質のため、Azure portal ではキー コンテナーへのアクセスは構成されません。 Azure Key Vault の構成について詳しくは、「Azure のロールベースのアクセス制御を使用して Key Vault のキー、証明書、シークレットへのアクセス権を付与する」をご覧ください。
[保存] を選択し、操作の状態を伝える通知を確認します。 操作が成功しなかった場合は、エラー メッセージが表示されます。 エラーの解決については、エラー メッセージとトラブルシューティングに関する記事を参照してください。
ロールベースのアクセス制御を使用する
Azure ロールベースのアクセス制御を使うように構成された Azure キー コンテナーを使用できます。 Azure portal でカスタマー マネージド キーを構成するには、ユーザー割り当て ID を指定する必要があります。
お使いの Azure アカウントで、[キー コンテナー] に移動した後、[アクセス ポリシー] に移動します。
ユーザー割り当てロールを作成する場合、カスタマー マネージド キーに対する次の 3 つのアクセス許可が必要です。
Microsoft.KeyVault/vaults/keys/read
Microsoft.KeyVault/vaults/keys/encrypt/action
Microsoft.KeyVault/vaults/keys/decrypt/action
これらのアクセス許可を含む定義済みのロールがありますが、それらのロールでは必要以上の特権が付与されます。 必要最小限のアクセス許可のみを持つカスタム ロールを作成することをお勧めします。 詳細については、「Azure カスタム ロール」を参照してください。
{ "id": "/subscriptions/<subscription>/Microsoft.Authorization/roleDefinitions/<roleDefinitionsID>", "properties": { "roleName": "NetApp account", "description": "Has the necessary permissions for customer-managed key encryption: get key, encrypt and decrypt", "assignableScopes": [ "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>" ], "permissions": [ { "actions": [], "notActions": [], "dataActions": [ "Microsoft.KeyVault/vaults/keys/read", "Microsoft.KeyVault/vaults/keys/encrypt/action", "Microsoft.KeyVault/vaults/keys/decrypt/action" ], "notDataActions": [] } ] } }
カスタム ロールを作成し、キー コンテナーで使用できるようにしたら、ユーザー割り当て ID にそれを適用します。
カスタマー マネージド キーを使用して Azure NetApp Files ボリュームを作成する
Azure NetApp Files で [ボリューム] を選んでから、[+ ボリュームの追加] を選びます。
「Azure NetApp Files ボリュームのネットワーク機能を構成する」の手順に従います。
- ボリューム作成ページで [Network Features] (ネットワーク機能) オプションを設定します。
- ボリュームの委任されたサブネットのネットワーク セキュリティ グループでは、NetApp のストレージ VM からの着信トラフィックを許可する必要があります。
カスタマー マネージド キーを使うように構成された NetApp アカウントの場合、[ボリュームの作成] ページには [Encryption Key Source] (暗号化キー ソース) オプションが含まれます。
独自のキーでボリュームを暗号化するには、[Encryption Key Source] (暗号化キー ソース) ドロップダウン メニューで [カスタマー マネージド キー] を選びます。
カスタマー マネージド キーを使ってボリュームを作成するときは、[Network features] (ネットワーク機能) オプションで [Standard] も選ぶ必要があります。 基本的なネットワーク機能はサポートされていません。
キー コンテナーのプライベート エンドポイントも選ぶ必要があります。 ドロップダウン メニューには、選択した仮想ネットワーク内のプライベート エンドポイントが表示されます。 選んだ仮想ネットワークにキー コンテナー用のプライベート エンドポイントがない場合、ドロップダウンは空になり、続けることはできません。 このシナリオが発生した場合は、「 Azure プライベート エンドポイント」を参照してください。
ボリューム作成プロセスを最後まで続けます。 以下を参照してください:
Azure NetApp Files ボリュームをカスタマー マネージド キーに移行する
Azure NetApp Files は、プラットフォームマネージド キーを使用する既存のボリュームをカスタマーマネージド キーに移行する機能をサポートしています。 移行を完了すると、プラットフォームマネージド キーに戻すことはできません。
移行ボリューム
注
カスタマー マネージド キーを使用するようにボリュームを移行する場合は、Azure NetApp Files アカウントのボリュームがあるすべての仮想ネットワークに対して移行を実行する必要があります。
- カスタマー マネージド キーを使用するように Azure NetApp Files アカウントを構成したことを確認します。
- Azure portal で [暗号化] に移動します。
- [CMK の移行] タブを選択します。
- ドロップダウン メニューから、使用する仮想ネットワークとキー コンテナーのプライベート エンドポイントを選択します。
- カスタマー マネージド キーによって暗号化されるボリュームの一覧が Azure で生成されます。
- [確認] を選択して移行を開始します。
NetApp アカウントのすべてのボリュームを再キー設定する
既に NetApp アカウントをカスタマー マネージド キー用に構成し、1 つ以上のボリュームをカスタマー マネージド キーで暗号化してある場合は、NetApp アカウントのすべてのボリュームの暗号化に使われているキーを変更できます。 同じキー コンテナー内にある任意のキーを選択できます。 キー コンテナーの変更はサポートされていません。
お使いの NetApp アカウントで、[暗号化] メニューに移動します。 [現在のキー] 入力フィールドで、[キー更新] リンクを選びます。
[キー更新] メニューで、ドロップダウン メニューから使用できるキーのいずれかを選びます。 現在のキーとは異なるキーを選ぶ必要があります。
OK を選択して保存します。 キーの再作成操作には数分かかる場合があります。
システム割り当て ID からユーザー割り当て ID に切り替える
システム割り当て ID からユーザー割り当て ID に切り替えるには、ターゲットの ID に、使われているキー コンテナーへの、読み取り/取得、暗号化、暗号化解除のアクセス許可を付与する必要があります。
az rest
コマンドを使って PATCH 要求を送信することで、NetApp アカウントを更新します。az rest -m PATCH -u <netapp-account-resource-id>?api-versions=2022-09-01 -b @path/to/payload.json
次のペイロード構造を使う必要があります。
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "<identity-resource-id>": {} } }, "properties": { "encryption": { "identity": { "userAssignedIdentity": "<identity-resource-id>" } } } }
az netappfiles account show
コマンドを使って、操作が正常に完了したことを確認します。 出力には、次のフィールドが含まれます。"id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.NetApp/netAppAccounts/account", "identity": { "principalId": null, "tenantId": null, "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity>": { "clientId": "<client-id>", "principalId": "<principalId>", "tenantId": <tenantId>" } } },
次のことを確認してください。
-
encryption.identity.principalId
がidentity.userAssignedIdentities.principalId
の値と一致する -
encryption.identity.userAssignedIdentity
がidentity.userAssignedIdentities[]
の値と一致する
"encryption": { "identity": { "principalId": "<principal-id>", "userAssignedIdentity": "/subscriptions/<subscriptionId>/resourceGroups/<resource-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity>" }, "KeySource": "Microsoft.KeyVault", },
-
プライベート エンドポイントを更新する
カスタマー マネージド キー ボリュームを作成した後に Azure プライベート エンドポイントを変更すると、ボリュームにアクセスできなくなる可能性があります。 変更を加える必要がある場合は、新しいエンドポイントを作成し、新しいエンドポイントを指すボリュームを更新する必要があります。
- 仮想ネットワークと Azure Key Vault の間に新しいエンドポイントを作成します。
- 古いエンドポイントを使用してすべてのボリュームを更新し、新しいエンドポイントを使用します。
az netappfiles volume update --g $resource-group-name --account-name $netapp-account-name --pool-name $pool-name --name $volume-name --key-vault-private-endpoint-resource-id $newendpoint
- 古いプライベート エンドポイントを削除します。