✔️ 適用対象: 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の鍵を使用するには、以下のセクションを順番に完了してください:
-
キーボールトの作成または設定
-
暗号化鍵の作成またはインポート
-
マネージドIDを作成し、権限を割り当てます
-
ストレージアカウントで顧客管理キーを設定する
-
構成を確認してください
その他の重要な場所については、以下のセクションをご覧ください。
顧客管理キーを有効にするには、Azureストレージアカウントとパージ保護が有効化されたAzure Key Vaultが必要です。 既存のキー コンテナーを使用するか、新しく作成することができます。 ストレージ アカウントとキー コンテナーは、同じMicrosoft Entra テナント内のさまざまなリージョンまたはサブスクリプションに存在できます。 クロステナントシナリオについては、「 クロステナント顧客管理キーについて」を参照してください。
Azure ポータルを使用して新しいキー コンテナーを作成するには、次の手順に従います。
- Azure ポータルで、キーボールトを検索し、作成 を選択します。
- 必須フィールド (サブスクリプション、リソース グループ、名前、リージョン) を入力します。
- [ 回復オプション] で、[ 消去保護を有効にする] を選択します。
-
[確認と作成] を選択し、次に [作成] を選択します。
既存のキー コンテナーを使用する場合は、次の手順に従います。
- Azureポータルでキーボールトに移動します。
- サービス メニューの [設定] で [プロパティ] を選択 します。
- [ 消去保護 ] セクションで、[ 消去保護を有効にする] を選択し、[ 保存] を選択します。
- キー ボールトでソフト削除が有効になっていることを確認します。 これは、新しいキーボールトに対して既定で有効になっています。
消去保護を有効にして新しいキー コンテナーを作成するには、次のコマンドレットを実行します。
<key-vault-name>、<resource-group>、および <region> を独自の値に置き換えます。
$vaultParams = @{
Name = "<key-vault-name>"
ResourceGroupName = "<resource-group>"
Location = "<region>"
EnablePurgeProtection = $true
}
New-AzKeyVault @vaultParams
既存のキー コンテナーで消去保護を有効にするには、次のコマンドレットを実行します。
<key-vault-name> と <resource-group> を独自の値に置き換えます。
$vaultParams = @{
VaultName = "<key-vault-name>"
ResourceGroupName = "<resource-group>"
EnablePurgeProtection = $true
}
Update-AzKeyVault @vaultParams
消去保護を有効にして新しいキー コンテナーを作成するには、次のコマンドを実行します。
<key-vault-name>、<resource-group>、および <region> を独自の値に置き換えます。
az keyvault create \
--name <key-vault-name> \
--resource-group <resource-group> \
--location <region> \
--enable-purge-protection true
既存のキー コンテナーで消去保護を有効にするには、次のコマンドを実行します。
<key-vault-name> と <resource-group> を独自の値に置き換えます。
az keyvault update \
--name <key-vault-name> \
--resource-group <resource-group> \
--enable-purge-protection true
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 ロールを自分に割り当てるには、次の手順に従います。
- キー コンテナーに移動します。
- サービス メニューから、 アクセス制御 (IAM) を選択します。
-
[このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
-
Key Vault Crypto Officer を検索して選択し、Next を選択します。
- [ アクセスの割り当て] で、[ ユーザー、グループ、またはサービス プリンシパル] を選択します。
- [ メンバー] で 、[ +メンバーの選択] を選択します。
- アカウントを検索し、自分のアカウントを選択してから、[選択]をクリックします。
- [確認と割り当て] を選択し、もう一度 [確認と割り当て] を選択します。
Azure PowerShellを使用して Key Vault Crypto Officer ロールを自分自身に割り当てるには、次のコマンドレットを実行します。
<key-vault-name> は、実際の値に置き換えてください。
$keyVault = Get-AzKeyVault -VaultName "<key-vault-name>"
$currentUser = (Get-AzADUser -SignedIn).Id
$roleParams = @{
ObjectId = $currentUser
RoleDefinitionName = "Key Vault Crypto Officer"
Scope = $keyVault.ResourceId
}
New-AzRoleAssignment @roleParams
Azure CLIを使用して Key Vault Crypto Officer ロールを自分自身に割り当てるには、次のコマンドを実行します。
<key-vault-name> は、実際の値に置き換えてください。
KV_RESOURCE_ID=$(az keyvault show --name <key-vault-name> --query id -o tsv)
CURRENT_USER=$(az ad signed-in-user show --query id -o tsv)
az role assignment create \
--assignee-object-id $CURRENT_USER \
--assignee-principal-type User \
--role "Key Vault Crypto Officer" \
--scope $KV_RESOURCE_ID
暗号化鍵の作成またはインポート
サイズ 2048、3072、または 4096 の RSA キーまたは RSA-HSM キーが必要です。 キー コンテナーに RSA キーを生成またはインポートします。 キーを生成する前に、key vaultに Key Vault Crypto Officer ロールがあることを確認します。
Azureポータルを使って新しいRSA暗号鍵を生成するには、以下の手順に従ってください:
- Azureポータルでキーボールトに移動します。
- サービス メニューの [ オブジェクト] で [キー] を選択 します。
-
生成/インポート を選択します。
オプションで生成を選択します。
- キーの名前を入力します。 キー名には、英数字とダッシュのみを含めることができます。
-
キータイプをRSAに設定し、RSAキーサイズを2048、3072、または4096に設定してください。
-
を選択してを作成します。
Azureポータルを使って既存のRSA暗号化鍵をインポートするには、以下の手順に従ってください:
- Azureポータルでキーボールトに移動します。
- サービス メニューの [ オブジェクト] で [キー] を選択 します。
-
生成/インポート を選択します。
オプション で インポート を選択します。
- アップロードするキーを選択します。
- キーの名前を入力します。 キー名には、英数字とダッシュのみを含めることができます。
-
[キーの種類] を [RSA] に設定します。
-
を選択してを作成します。
Azure PowerShellを使用して RSA キーを作成するには、次のコマンドレットを実行します。
<key-vault-name> と <key-name> を独自の値に置き換えます。
Sizeの場合は、2048、3072、または4096を指定してください。
$keyParams = @{
VaultName = "<key-vault-name>"
Name = "<key-name>"
Destination = "Software"
KeyType = "RSA"
Size = 2048
}
Add-AzKeyVaultKey @keyParams
Azure PowerShellを使用して既存の RSA 暗号化キーをインポートするには、次のコマンドレットを実行します。
<key-vault-name>、<key-name>、および <key-path> を独自の値に置き換えます。 最初の行はキーファイルのパスワードを入力するプロンプトです。 キーファイルにパスワードがなければ、Read-Host 行と KeyFilePassword 以降を省略してください。
$password = Read-Host -Prompt "Key file password" -AsSecureString
$keyParams = @{
VaultName = "<key-vault-name>"
Name = "<key-name>"
KeyFilePath = "<key-path>"
KeyFilePassword = $password
}
Add-AzKeyVaultKey @keyParams
Azure CLIを使用して RSA キーを作成するには、次のコマンドを実行します。
<key-vault-name> と <key-name> を独自の値に置き換えます。
--sizeの場合は、2048、3072、または4096を指定してください。
az keyvault key create \
--vault-name <key-vault-name> \
--name <key-name> \
--kty RSA \
--size 2048
Azure CLIを使用して既存の RSA 暗号化キーをインポートするには、次のコマンドを実行します。
<key-vault-name>、<key-name>、<key-path>、および <key-password> を独自の値に置き換えます。 キー ファイルにパスワードがない場合は、 --pem-password パラメーターを省略します。
az keyvault key import \
--vault-name <key-vault-name> \
--name <key-name> \
--pem-file <key-path> \
--pem-password <key-password>
マネージド ID を作成し、アクセス許可を割り当てる
ストレージ アカウントには、キー コンテナーに対する認証に マネージド ID が 必要です。 マネージド ID を使用することで、ストレージ アカウントは資格情報を格納することなく、キー コンテナー内の暗号化キーに安全にアクセスできます。
ユーザー割り当てマネージド ID を作成し、その ID に key vault の Key Vault Crypto Service Encryption User ロールを付与します。
ユーザー割り当てマネージド ID を作成する
Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、ユーザー割り当てマネージド ID を作成します。
Azureポータルを使ってユーザー割り当て管理IDを作成するには、以下の手順に従ってください:
-
マネージド ID を検索し、[作成] を選択します。
- サブスクリプション、リソース グループ、リージョン、および名前を選択します。
-
[確認と作成] を選択し、次に [作成] を選択します。
Azure PowerShellを使用してユーザー割り当てマネージド ID を作成するには、次のコマンドレットを実行します。
<resource-group>、<identity-name>、および <region> を独自の値に置き換えます。
$identityParams = @{
ResourceGroupName = "<resource-group>"
Name = "<identity-name>"
Location = "<region>"
}
New-AzUserAssignedIdentity @identityParams
Azure CLIを使用してユーザー割り当てマネージド ID を作成するには、次のコマンドを実行します。
<resource-group>、<identity-name>、および <region> を独自の値に置き換えます。
az identity create \
--name <identity-name> \
--resource-group <resource-group> \
--location <region>
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 ポータルを使用して、次の手順に従います。
- Azureポータルでキーボールトに移動します。
- サービス メニューから、 アクセス制御 (IAM) を選択します。
-
[このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
-
Key Vault Crypto Service Encryption User を検索して選択し、 Next を選択します。
-
[アクセスの割り当て先] で [マネージド ID] を選択します。
- [ メンバー] で 、[ +メンバーの選択] を選択します。
- [ マネージド ID の選択] ウィンドウが開きます。
[マネージド ID] で、[ユーザー割り当てマネージド ID] を選択します。
- 作成したマネージド ID を選び、[選択] をクリックします。
- [確認と割り当て] を選択し、もう一度 [確認と割り当て] を選択します。
Azure PowerShellを使用して、Key Vault Crypto Service Encryption User ロールをユーザー割り当てマネージド ID に割り当てるには、次のコマンドレットを実行します。
<resource-group>、<identity-name>、および <key-vault-name> を独自の値に置き換えます。
$identityParams = @{
ResourceGroupName = "<resource-group>"
Name = "<identity-name>"
}
$identity = Get-AzUserAssignedIdentity @identityParams
$keyVault = Get-AzKeyVault -VaultName "<key-vault-name>"
$roleParams = @{
ObjectId = $identity.PrincipalId
RoleDefinitionName = "Key Vault Crypto Service Encryption User"
Scope = $keyVault.ResourceId
}
New-AzRoleAssignment @roleParams
Azure CLIを使用して、Key Vault Crypto Service Encryption User ロールをユーザー割り当てマネージド ID に割り当てるには、次のコマンドを実行します。
<resource-group>、<identity-name>、および <key-vault-name> を独自の値に置き換えます。
# Get the principal ID of the user-assigned managed identity
IDENTITY_PRINCIPAL_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query principalId -o tsv)
# Get the key vault resource ID
KV_RESOURCE_ID=$(az keyvault show \
--name <key-vault-name> \
--query id -o tsv)
# Assign the Key Vault Crypto Service Encryption User role to the user-assigned managed identity
az role assignment create \
--assignee-object-id $IDENTITY_PRINCIPAL_ID \
--assignee-principal-type ServicePrincipal \
--role "Key Vault Crypto Service Encryption User" \
--scope $KV_RESOURCE_ID
キー コンテナー、キー、およびマネージド ID を配置すると、ストレージ アカウントでカスタマー マネージド キーを有効にすることができます。
キーバージョンを指定していない場合、ストレージアカウントは自動キーバージョン更新(推奨)を使用します。 手動で鍵バージョン更新を使うには、鍵のバージョンを指定してください。
Important
ネットワーク セキュリティ境界に関連付けられているストレージ アカウントの場合、キー コンテナーは、理想的には同じネットワーク セキュリティ境界内に存在する必要があります。 そうでない場合は、ストレージ アカウントがキー ボールトと通信できるように、キー ボールトのネットワーク セキュリティ境界プロファイルを構成する必要があります。
Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成できます。
Azure ポータルを使用して既存のストレージ アカウントでカスタマー マネージド キーを構成するには、次の手順に従います。 これらのステップは自動キーバージョン更新を用いています。 手動の鍵バージョン更新を使うには、ステップ4で「Enter key URI」を選択し、キーバージョンを含むキー URI を入力してください。
- ストレージ アカウントに移動します。
- サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
暗号化タイプについては、顧客管理キーを選択します。 ストレージ アカウントが CMK 用に既に構成されている場合は、[ キーの変更] を選択します。
-
[暗号化キー] で、[キー コンテナーから選択] を選択します。
-
キー コンテナーとキーを選択します。
キー ストアの種類には、キー コンテナーを選択してください。 鍵の保管庫と鍵を選んでから、「選択」を選びます。
-
[ID の種類] で、[ユーザー割り当て] を選択して、以前に作成したユーザー割り当てマネージド ID を使用します。
-
アイデンティティを選択します。 ユーザー割り当てのマネージド ID を検索して選択し、その後 「追加」を選択します。
-
保存を選びます。
キーの自動バージョン更新 (推奨) でAzure PowerShellを使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成するには、次のコマンドレットを実行します。
<resource-group>、<identity-name>、<storage-account-name>、<key-vault-name>、<key-name>を独自の値に置き換えます。
次のコマンドレットでは、以前に作成したユーザー割り当てマネージド ID を使用します。 代わりにストレージアカウントのシステムIDを使いたい場合は、IdentityTypeをSystemAssignedに設定し、Get-AzUserAssignedIdentity行、UserAssignedIdentityId、KeyVaultUserAssignedIdentityIdを削除してください。
$resourceGroupName = "<resource-group>"
$keyVaultName = "<key-vault-name>"
$identityParams = @{
ResourceGroupName = $resourceGroupName
Name = "<identity-name>"
}
$identity = Get-AzUserAssignedIdentity @identityParams
$keyVault = Get-AzKeyVault -VaultName $keyVaultName
$key = Get-AzKeyVaultKey -VaultName $keyVaultName -Name "<key-name>"
$accountParams = @{
ResourceGroupName = $resourceGroupName
Name = "<storage-account-name>"
IdentityType = "UserAssigned"
UserAssignedIdentityId = $identity.Id
KeyVaultUri = $keyVault.VaultUri
KeyName = $key.Name
KeyVaultEncryption = $true
KeyVaultUserAssignedIdentityId = $identity.Id
}
Set-AzStorageAccount @accountParams
自動更新の代わりに手動でキーバージョンを更新するには、KeyVersion = $key.Versionに$accountParamsを追加してください。
キーのバージョンの自動更新 (推奨) でAzure CLIを使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成するには、次のコマンドを実行します。
<resource-group>、<identity-name>、<storage-account-name>、<key-vault-name>、<key-name>を独自の値に置き換えます。
次のコマンドでは、以前に作成したユーザー割り当てマネージド ID を使用します。 代わりにストレージ アカウントのシステム ID を使用する場合は、 --identity-type を SystemAssigned に設定し、 IDENTITY_RESOURCE_ID 変数、 --user-identity-id、および --key-vault-user-identity-idを省略します。
# Using user-assigned managed identity. Omit for system assigned.
IDENTITY_RESOURCE_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query id -o tsv)
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $IDENTITY_RESOURCE_ID \
--identity-type UserAssigned \
--user-identity-id $IDENTITY_RESOURCE_ID
自動更新の代わりに手動のキー バージョン更新を使用するには、--encryption-key-version <key-version> コマンドにaz storage account updateを追加します。
Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、新しいストレージ アカウントを作成するときにカスタマー マネージド キーを構成できます。
ストレージ アカウントが作成されるまで ID が存在しないため、ストレージ アカウントの作成時にシステム割り当て ID を使用することはできません。 ユーザー割り当てマネージド ID を使用する必要があります。
Azure ポータルを使用して新しいストレージ アカウントのカスタマー マネージド キーを構成するには、次の手順に従います。 これらのステップは自動キーバージョン更新を用いています。 手動の鍵バージョン更新を使用するには、ステップ2で URIからキーを入力 を選択し、キーバージョンを含むキーURIを入力してください。
ストレージ アカウントの作成時に [暗号化] タブで、[暗号化の種類] に [カスタマー マネージド キー (CMK)] を選択します。
暗号化鍵については、「鍵の保管庫と鍵を選択する」を選択してください。
サブスクリプションでは、Key Vault を含むサブスクリプションを選択してください。 ポータルは既定で別のサブスクリプションになるかもしれません。
キーストアの種類には、Key vault を選択します。
キー コンテナーとキーを選択します。
[ ユーザー割り当て ID] で、[ ID の選択] を選択します。 「ユーザー割り当てマネージド ID を選択する」ウィンドウが開きます。
作成したユーザー割り当てマネージド ID を検索して選択してください。 新しいストレージ アカウントでは、システム割り当てマネージド ID を使用できません。
[] を選択し、[] を追加します。
残りのタブを完成させ、「 レビューして作成」を選択し、その後 「作成」を選択します。
Azure PowerShellを使用してカスタマー マネージド キーを使用して新しいストレージ アカウントを作成するには、次のコマンドレットを実行します。
<resource-group>、<identity-name>、<storage-account-name>、<key-vault-name>、<key-name>、<region>を独自の値に置き換えます。
Kind と SkuName に異なる値を指定できます。
$resourceGroupName = "<resource-group>"
$keyVaultName = "<key-vault-name>"
$identityParams = @{
ResourceGroupName = $resourceGroupName
Name = "<identity-name>"
}
$identity = Get-AzUserAssignedIdentity @identityParams
$keyVault = Get-AzKeyVault -VaultName $keyVaultName
$key = Get-AzKeyVaultKey -VaultName $keyVaultName -Name "<key-name>"
$accountParams = @{
ResourceGroupName = $resourceGroupName
Name = "<storage-account-name>"
Location = "<region>"
SkuName = "Standard_LRS"
Kind = "StorageV2"
IdentityType = "UserAssigned"
UserAssignedIdentityId = $identity.Id
KeyVaultUri = $keyVault.VaultUri
KeyName = $key.Name
KeyVaultUserAssignedIdentityId = $identity.Id
}
New-AzStorageAccount @accountParams
手動キーのバージョン更新を自動ではなく使うには、KeyVersion = $key.Versionに$accountParamsを追加してください。
Azure CLIを使用してカスタマー マネージド キーを使用して新しいストレージ アカウントを作成するには、次のコマンドを実行します。
<resource-group>、<identity-name>、<storage-account-name>、<key-vault-name>、<key-name>、<region>を独自の値に置き換えます。
--kindと--skuには異なる値を指定できます。
IDENTITY_RESOURCE_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query id -o tsv)
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account create \
--name <storage-account-name> \
--resource-group <resource-group> \
--location <region> \
--sku Standard_LRS \
--kind StorageV2 \
--identity-type UserAssigned \
--user-identity-id $IDENTITY_RESOURCE_ID \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $IDENTITY_RESOURCE_ID
自動ではなく手動のキー バージョン更新を使用するには、--encryption-key-version <key-version> コマンドにaz storage account createを追加します。
構成を確認する
カスタマー マネージド キーを有効にしたら、ストレージ アカウントで暗号化が正しく構成されていることを確認します。 これを行うには、Azure ポータル、Azure PowerShell、またはAzure CLIを使用します。
Azure ポータルを使用してストレージ アカウントの構成を確認するには、次の手順に従います。
- Azure portal で、ストレージ アカウントに移動します。
- サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
暗号化タイプが顧客管理鍵であることを確認しましょう。
-
[キーの選択] の情報が正しいことを確認します。
Azure PowerShellを使用してストレージ アカウントの構成を確認するには、次のコマンドレットを実行します。
<resource-group> と <storage-account-name> を独自の値に置き換えます。
$accountParams = @{
ResourceGroupName = "<resource-group>"
Name = "<storage-account-name>"
}
$account = Get-AzStorageAccount @accountParams
$account.Encryption.KeySource
$account.Encryption.KeyVaultProperties
KeySource が Microsoft.Keyvault であり、KeyVaultProperties にキー コンテナーの URI とキー名が表示されていることを確認します。
Azure CLIを使用して構成を確認するには、次のコマンドを実行します。
<resource-group> と <storage-account-name> を独自の値に置き換えます。
az storage account show \
--name <storage-account-name> \
--resource-group <resource-group> \
--query encryption
keySource が Microsoft.Keyvault であり、keyVaultProperties セクションにキー コンテナーの URI とキー名が表示されていることを確認します。
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 でキーを作成し、マネージド ID に Managed HSM Crypto Service Encryption User ロールを割り当て、ストレージ アカウントがそのキーを使用するように構成します。 役割の割り当ては反映されるまで数分かかる場合があります。 ストレージアカウントの設定が認証エラーで失敗した場合は、数分待ってから再度試してください。
キーを作成し役割を割り当てるには、PowerShellまたはAzure CLIのステップを使ってください。 次に、Azureポータルでストレージアカウントを設定してください:
- ストレージ アカウントに移動します。
- サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
暗号化タイプについては、顧客管理のキーを選択します。 ストレージアカウントがすでに顧客管理キーに設定されている場合は、「 キーの変更」を選択してください。
-
暗号化キーでは、「鍵の保管庫から選択」を選択し、次に「鍵の保管庫と鍵を選択する」を選択してください。
- 「キーストアタイプ」には「マネージド HSM」を選択してください。
- 管理されているHSMとキーを選択し、次に「選択」を選びます。
-
アイデンティティ タイプではユーザー割り当てを選択し、次にユーザー割り当てマネージド ID を選択します。
-
保存を選びます。
次のコマンドを実行します。
<hsm-name>、<key-name>、<resource-group>、<identity-name>、<storage-account-name>を独自の値に置き換えます。
$resourceGroupName = "<resource-group>"
$hsmName = "<hsm-name>"
$keyName = "<key-name>"
# Create an RSA-HSM key in the managed HSM
$keyParams = @{
HsmName = $hsmName
Name = $keyName
KeyType = "RSA"
Size = 2048
}
Add-AzKeyVaultKey @keyParams
# Assign the Managed HSM Crypto Service Encryption User role to the managed identity, scoped to the key
$identityParams = @{
ResourceGroupName = $resourceGroupName
Name = "<identity-name>"
}
$identity = Get-AzUserAssignedIdentity @identityParams
$roleParams = @{
HsmName = $hsmName
RoleDefinitionName = "Managed HSM Crypto Service Encryption User"
ObjectId = $identity.PrincipalId
Scope = "/keys/$keyName"
}
New-AzKeyVaultRoleAssignment @roleParams
# Configure customer-managed keys on the storage account
$hsm = Get-AzKeyVaultManagedHsm -Name $hsmName
$accountParams = @{
ResourceGroupName = $resourceGroupName
Name = "<storage-account-name>"
IdentityType = "UserAssigned"
UserAssignedIdentityId = $identity.Id
KeyVaultUri = $hsm.HsmUri
KeyName = $keyName
KeyVaultEncryption = $true
KeyVaultUserAssignedIdentityId = $identity.Id
}
Set-AzStorageAccount @accountParams
マネージド HSM では、RSA はキー タイプ Add-AzKeyVaultKey で RSA-HSM キーを作成します。
次のコマンドを実行します。
<hsm-name>、<key-name>、<identity-name>、<resource-group>、<storage-account-name>を独自の値に置き換えます。
HSM_NAME="<hsm-name>"
KEY_NAME="<key-name>"
# Create an RSA-HSM key in the managed HSM
az keyvault key create \
--hsm-name $HSM_NAME \
--name $KEY_NAME \
--kty RSA-HSM \
--size 2048
# Get the resource ID and principal ID of the user-assigned managed identity
IDENTITY_RESOURCE_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query id -o tsv)
IDENTITY_PRINCIPAL_ID=$(az identity show \
--name <identity-name> \
--resource-group <resource-group> \
--query principalId -o tsv)
# Assign the Managed HSM Crypto Service Encryption User role to the managed identity, scoped to the key
az keyvault role assignment create \
--hsm-name $HSM_NAME \
--role "Managed HSM Crypto Service Encryption User" \
--assignee-object-id $IDENTITY_PRINCIPAL_ID \
--assignee-principal-type ServicePrincipal \
--scope /keys/$KEY_NAME
# Get the managed HSM URI
HSM_URI=$(az keyvault show \
--hsm-name $HSM_NAME \
--query properties.hsmUri -o tsv)
# Configure customer-managed keys on the storage account
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--identity-type UserAssigned \
--user-identity-id $IDENTITY_RESOURCE_ID \
--encryption-key-vault $HSM_URI \
--encryption-key-name $KEY_NAME \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $IDENTITY_RESOURCE_ID
マネージドHSMでキーを使用する新しいストレージアカウントを作成するには、「 新しいストレージアカウントのために顧客管理キーを設定する」の手順に従ってください。 管理されているHSMのURIをキーボールトのURIとして使用してください。
テナント間のカスタマー マネージド キーについて
サービスとしてのソフトウェア(SaaS)をAzure上で構築する多くのサービスプロバイダーは、顧客が独自の暗号化キーを管理するオプションを提供したいとしています。 カスタマー マネージド キーを使用すると、サービス プロバイダーは、サービス プロバイダーの顧客によって管理され、サービス プロバイダーからアクセスできない暗号化キーを使用して、顧客のデータを暗号化できます。 Azure では、サービス プロバイダーの顧客は Azure Key Vault を使って、独自の Microsoft Entra テナントとサブスクリプションで暗号化キーを管理できます。
サービス プロバイダーが所有し、サービス プロバイダーのテナントに存在する Azure プラットフォーム サービスとリソースでは、暗号化/暗号化解除操作を実行するために、顧客のテナントからキーにアクセスする必要があります。
次の図は、サービス プロバイダーとその顧客にまたがるテナント間のカスタマー マネージド キー ワークフローにおけるフェデレーション ID を使用した保存データ暗号化を示しています。
上の例では、独立したサービス プロバイダーのテナント ("テナント 1") と顧客のテナント ("テナント 2") の、2 つの Microsoft Entra テナントがあります。
Tenant 1 はAzureのプラットフォームサービスをホストし、Tenant 2 は顧客のキーボールトをホストします。
サービス プロバイダーによって、"テナント 1" 内にマルチテナント アプリケーションの登録が作成されます。 ユーザーが割り当てたマネージドアイデンティティを使用して、このアプリケーションにフェデレーテッドアイデンティティ資格情報が作成されます。 次に、アプリの名前とアプリケーション ID が顧客と共有されます。
適切なアクセス許可を持つユーザーは、顧客テナント "テナント 2" にサービス プロバイダーのアプリケーションをインストールします。 次にユーザーは、インストールされているアプリケーションに関連付けられているサービス プリンシパルに、顧客のキー コンテナーへのアクセス権を付与します。 顧客はまた、暗号化キー (カスタマー マネージド キー) をキー コンテナーに格納します。 顧客は、キーの場所 (キーの URL) をサービス プロバイダーと共有します。
これでサービス プロバイダーには次の情報があります。
- 顧客のテナント内にインストールされ、カスタマー マネージド キーへのアクセスが許可されている、マルチテナント アプリケーションのアプリケーション ID。
- マルチテナント アプリケーション上の資格情報として構成されたマネージド ID。
- 顧客のキー コンテナー内のキーの場所。
この 3 つのパラメーターを使用すると、サービス プロバイダーは Tenant 1 内Azureリソースをプロビジョニングします。このリソースは、Tenant 2 のカスタマー マネージド キーを使用して暗号化できます。
上記のエンド ツー エンド ソリューションを 3 つのフェーズに分割しましょう。
- サービス プロバイダーは ID を構成します。
- 顧客は、サービス プロバイダーのマルチテナント アプリに対し、Azure Key Vault 内の暗号化キーへのアクセス権を付与します。
- サービス プロバイダーは、カスタマー マネージド キーを使用して、Azure リソース内のデータを暗号化します。
フェーズ 1 の操作は、ほとんどのサービス プロバイダー アプリケーションに対して 1 回限りの設定となります。 フェーズ 2 とフェーズ 3 の操作は、顧客ごとに繰り返されます。
サービス プロバイダーに関する考慮事項
- Azure Resource Manager (ARM) テンプレートは、Microsoft Entra アプリケーションの作成には推奨されません。
- 同じマルチテナント アプリケーションを使用して、"テナント 2"、"テナント 3"、"テナント 4" など、複数のテナント内のキーにアクセスすることができます。 各テナントでは、アプリケーション ID は同じだがオブジェクト ID は異なるアプリケーションの独立したインスタンスが作成されます。 したがって、このアプリケーションの各インスタンスは個別に承認されます。 この機能に使用されるアプリケーション オブジェクトを使用して、すべての顧客間でアプリケーションをパーティション分割する方法を検討します。
- 1 つのアプリケーションで使用できるフェデレーション ID 資格情報は最大 20 個なので、サービス プロバイダーはフェデレーション ID を顧客間で共有する必要があります。 フェデレーション ID の設計に関する考慮事項と制限について詳しくは、「外部 ID プロバイダーを信頼するようにアプリを構成する」をご覧ください。
- サービス プロバイダーが顧客ごとに 1 つのアプリケーション オブジェクトを使用するシナリオもまれにありますが、この場合は、すべての顧客で大規模にアプリケーションを管理するための多額のメンテナンス コストが必要になります。
- サービス プロバイダー テナント内では、発行者の確認を自動化することはできません。
フェーズ 2 - 顧客がキー ボールトへのアクセスを承認する
サービス プロバイダーの顧客に関する考慮事項
- 顧客テナント "テナント 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 にサインインして、次の手順を実行します。
次の手順は、サービス プロバイダーのテナント Tenant1 のサービス プロバイダーによって実行されます。
サービス プロバイダーが新しいマルチテナント アプリ登録を作成します
新しいマルチテナント Microsoft Entra アプリケーション登録を作成することも、既存のマルチテナント アプリケーション登録から開始することもできます。 既存のアプリケーション登録から始める場合は、アプリケーションのアプリケーション ID (クライアント ID) をメモします。
新しい登録を作成するには、次の手順に従います。
検索ボックスで Microsoft Entra ID を検索します。
Microsoft Entra ID 拡張機能を見つけて選択します。
左側のウィンドウから Manage > アプリの登録 を選択します。
[+ 新規登録] を選択します。
アプリケーションの登録の名前を指定して、[任意の組織ディレクトリ内のアカウント (任意の Microsoft Entra ディレクトリ - マルチテナント)] を選びます。
登録を選択します。
アプリケーションの ApplicationId/ClientId を メモします。
サービス プロバイダーは、ユーザー割り当てマネージド ID を作成します
フェデレーション ID 用資格情報として使用されるユーザー割り当てマネージド ID を作成します。
検索ボックスで「マネージド ID」を検索します。
マネージド ID 拡張機能を見つけて選択します。
[+ 作成] を選択します。
マネージド ID のリソース グループ、リージョン、名前を指定します。
[Review + create](レビュー + 作成) を選択します。
デプロイが成功したら、ユーザー割り当てマネージド ID の Azure ResourceId をメモします。この ID は [プロパティ] にあります。 例:
/subscriptions/tttttttt-0000-tttt-0000-tttt0000tttt/resourcegroups/XTCMKDemo/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ConsotoCMKDemoUA
アプリケーションの ID を偽装できるように、ユーザー割り当てマネージド ID をアプリケーション上のフェデレーション ID 資格情報として構成します。
[Microsoft Entra ID] > [アプリの登録] > 自分のアプリに移動します。
[証明書とシークレット] を選択します。
[フェデレーション資格情報] を選択します。
[資格情報の追加] を選択します。
[フェデレーション資格情報のシナリオ] で、[マネージド ID] を選択します。
[マネージド ID の選択] をクリックします。 ウィンドウからサブスクリプションを選択します。
[マネージド ID] で、[ユーザー割り当てマネージド ID] を選択します。
[選択] ボックスで、先ほど作成したマネージド ID を検索し、ウィンドウの下部にある [選択] をクリックします。
[資格情報の詳細] で、資格情報の名前と説明 (省略可能) を指定し、[追加] を選択します。
Azure PowerShell を使用して ISV のテナントを構成するには、最新の Az モジュールをインストールします。 PowerShell のインストールの詳細については、PowerShellGet を使用した Windows への Azure PowerShell のインストールに関する記事を参照してください。
- Azure PowerShell をローカルで使用する場合は、次のようにします。
- Azure Cloud Shell を使用する場合は、次のようにします。
次の手順は、サービス プロバイダーのテナント Tenant1 のサービス プロバイダー (ISV) によって実行されます。
サービス プロバイダーが Azure にサインインします
Azure PowerShell で、ISV のテナントにサインインし、アクティブなサブスクリプションを ISV のサブスクリプションに設定します。
$isvTenantId="<isv-tenant-id>"
$isvSubscriptionId="<isv-subscription-id>"
# Sign in to Azure in the ISV's tenant.
Connect-AzAccount -Tenant $isvTenantId
# Set the context to the ISV's subscription.
Set-AzContext -Subscription $isvSubscriptionId
サービス プロバイダーが新しいマルチテナント アプリ登録を作成します
Tenant1 でマルチテナント登録済みアプリケーションの名前を選択し、Azure ポータルでマルチテナント アプリケーションを作成します。
マルチテナント アプリケーションに対して指定した名前が、Tenant2 でアプリケーションを識別するために顧客によって使われます。 アプリのオブジェクト ID とアプリケーション ID をメモします。 これらの値は、後続のステップで必要になります。
$multiTenantAppName="<multi-tenant-app>"
$multiTenantApp = New-AzADApplication -DisplayName $multiTenantAppName `
-SignInAudience AzureADMultipleOrgs
# Object ID for the new multi-tenant app
$objectId = $multiTenantApp.Id
# Application (client) ID for the multi-tenant app
$multiTenantAppObjectId = $multiTenantApp.AppId
サービス プロバイダーは、ユーザー割り当てマネージド ID を作成します
ISV のテナントにサインインしてから、フェデレーション ID の資格情報として使われるユーザー割り当てマネージド ID を作成します。 新しいユーザー割り当てマネージドIDを作成するには、Microsoft.ManagedIdentity/userAssignedIdentities/write アクションを含むロールが割り当てられている必要があります。
$isvRgName="<isv-resource-group>"
$isvLocation="<location>"
$userIdentityName="<user-assigned-managed-identity>"
# Create a new resource group in the ISV's subscription.
New-AzResourceGroup -Location $isvLocation -ResourceGroupName $isvRgName
# Create the new user-assigned managed identity.
$userIdentity = New-AzUserAssignedIdentity -Name $userIdentityName `
-ResourceGroupName $isvRgName `
-Location $isvLocation `
-SubscriptionId $isvSubscriptionId
アプリケーションの ID を偽装できるように、ユーザー割り当てマネージド ID をアプリケーション上のフェデレーション ID 資格情報として構成します。
PowerShell からフェデレーション ID 資格情報を構成するには、まず Az.Resources モジュールのバージョン 6.3.0 以降をインストールします。
New-AzADAppFederatedCredential -ApplicationObjectId $multiTenantApp.Id `
-Name "MyFederatedIdentityCredential" `
-Audience "api://AzureADTokenExchange" `
-Issuer "https://login.microsoftonline.com/<tenant-id>/v2.0" `
-Subject $userIdentity.PrincipalId `
-Description "Federated Identity Credential for a customer-managed key"
次の手順は、サービス プロバイダーのテナント Tenant1 のサービス プロバイダーによって実行されます。
サービス プロバイダーが Azure にサインインします
Azure CLIを使用するには、Azureにサインインします。
az login
サービス プロバイダーが新しいマルチテナント アプリ登録を作成します
Tenant1 でマルチテナント アプリケーションの名前を選び、Azure portal でマルチテナント アプリケーションを作成します。
マルチテナント アプリケーションに対して指定した名前が、Tenant2 でアプリケーションを識別するために顧客によって使われます。 アプリのアプリケーション ID (またはクライアント ID)、アプリのオブジェクト ID、アプリのテナント ID をコピーします。 これらの値は、次の手順で使用します。
multiTenantAppName="<multi-tenant-app>"
multiTenantAppObjectId=$(az ad app create --display-name $multiTenantAppName \
--sign-in-audience AzureADMultipleOrgs \
--query id \
--output tsv)
multiTenantAppId=$(az ad app show --id $multiTenantAppObjectId --query appId --output tsv)
サービス プロバイダーは、ユーザー割り当てマネージド ID を作成します
ISV のテナントにサインインしてから、フェデレーション ID の資格情報として使われるユーザー割り当てマネージド ID を作成します。 新しいユーザー割り当てマネージドIDを作成するには、Microsoft.ManagedIdentity/userAssignedIdentities/write アクションを含むロールが割り当てられている必要があります。
isvSubscriptionId="<isv-subscription-id>"
isvRgName="<isv-resource-group>"
isvLocation="<location>"
userIdentityName="<user-assigned-managed-identity>"
az group create --location $isvLocation \
--resource-group $isvRgName \
--subscription $isvSubscriptionId
principalId=$(az identity create --name $userIdentityName \
--resource-group $isvRgName \
--location $isvLocation \
--subscription $isvSubscriptionId \
--query principalId \
--out tsv)
az ad app federated-credential create メソッドを実行して、アプリにフェデレーション ID 資格情報を構成し、外部 ID プロバイダーとの信頼関係を作成します。
フェデレーション ID 資格情報の api://AzureADTokenExchange 値として audience を使用します。 詳細については、API リファレンスを参照してください。
# Create a file named "credential.json" with the following content.
# Replace placeholders in angle brackets with your own values.
{
"name": "MyFederatedIdentityCredential",
"issuer": "https://login.microsoftonline.com/<tenantID>/v2.0",
"subject": "<user-assigned-identity-principal-id>",
"description": "Federated Identity Credential for a customer-managed key",
"audiences": [
"api://AzureADTokenExchange"
]
}
az ad app federated-credential create --id $multiTenantAppObjectId --parameters credential.json
サービス プロバイダーがアプリケーション ID を顧客と共有する
マルチテナント アプリケーションのアプリケーション ID (クライアント ID) を見つけて、顧客と共有します。
顧客がサービス プロバイダーのアプリにキー コンテナー内のキーへのアクセスを許可する
次の手順は、顧客のテナント Tenant2 の顧客によって実行されます。 顧客は、Azure ポータル、Azure PowerShell、またはAzure CLIを使用できます。
手順を実行するユーザーは、アプリケーション管理者、クラウド アプリケーション管理者、グローバル管理者などの特権ロールを持つ管理者である必要があります。
Azure portal にサインインして、次の手順を実行します。
顧客が顧客テナントにサービス プロバイダー アプリケーションをインストールする
サービス プロバイダーの登録済みアプリケーションを顧客のテナントにインストールするには、登録済みアプリからのアプリケーション ID で、サービス プリンシパルを作成します。 サービス プリンシパルは、次のいずれかの方法で作成できます。
顧客がキー保管庫を作成する
キー コンテナーを作成するには、ユーザーのアカウントに Key Vault Contributor ロール、またはキー コンテナーの作成を許可する別のロールを割り当てる必要があります。
Azure ポータル メニューまたはホーム ページから、+ リソースの作成を選択します。 検索ボックスに「Key Vaults」と入力します。 結果の一覧から [Key Vaults] を選択します。
[キーボルト] ページで、[作成] を選択します。
[基本] タブで、サブスクリプションを選択します。
[リソース グループ] で、[新規作成] を選択し、リソース グループ名を入力します。
キー ボールトの一意の名前を入力してください。
リージョンと価格レベルを選択します。
新しいキー コンテナーの消去保護を有効にします。
[アクセス ポリシー] タブで、[アクセス許可モデル] に [Azure ロールベースのアクセス制御] を選びます。
[確認および作成] 、 [作成] の順に選択します。
キー コンテナーの名前と URI を記録しておきます。キー コンテナーにアクセスするアプリケーションは。この URI を使う必要があります。
詳細については、「クイックスタート - Azure portal を使用して Azure キー コンテナーを作成する」を参照してください。
顧客は、Key Vault Crypto Officer ロールをユーザー アカウントに割り当てます
この手順により、暗号化キーを作成できるようになります。
- キー コンテナーに移動し、左側のウィンドウから Access Control (IAM) を選択します。
-
[このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
-
Key Vault Crypto Officer を検索して選択します。
-
[メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
-
[メンバー] を選択し、ユーザー アカウントを検索します。
-
Review + Assign を選択します。
顧客が暗号化キーを作成する
暗号化キーを作成するには、ユーザーのアカウントに Key Vault Crypto Officer ロール、またはキーの作成を許可する別のロールを割り当てる必要があります。
- Key Vault のプロパティ ページで、[キー] を選択します。
-
生成/インポート を選択します。
-
[キーの作成] 画面で、キーの名前を指定します。 他の値は既定値のままにしておきます。
-
を選択してを作成します。
- キー URI をコピーします。
顧客がサービス プロバイダー アプリケーションにキー コンテナーへのアクセスを許可する
Azure RBAC ロール Key Vault Crypto Service Encryption User をサービス プロバイダーの登録済みアプリケーションに割り当てて、key vaultにアクセスできるようにします。
- キー コンテナーに移動し、左側のウィンドウから Access Control (IAM) を選択します。
-
[このリソースへのアクセス権の付与] で [ロールの割り当ての追加] を選択します。
-
Key Vault Crypto Service Encryption User を検索して選択します。
-
[メンバー] タブで、[ユーザー、グループ、またはサービス プリンシパル] を選択します。
-
[メンバー] を選択し、サービス プロバイダーからインストールしたアプリケーションのアプリケーション名を検索します。
-
Review + Assign を選択します。
これで、キー コンテナーの URI とキーを使用して、カスタマー マネージド キーを構成できます。
Azure PowerShell を使用してクライアントのテナントを構成するには、最新の Az モジュールをインストールします。 PowerShell のインストールの詳細については、PowerShellGet を使用した Windows への Azure PowerShell のインストールに関する記事を参照してください。
- Azure PowerShell をローカルで使用する場合は、次のようにします。
- Azure Cloud Shell を使用する場合は、次のようにします。
顧客がAzureにサインインする
Azure PowerShell で、顧客のテナントにサインインし、アクティブなサブスクリプションを顧客のサブスクリプションに設定します。
$customerTenantId="<customer-tenant-id>"
$customerSubscriptionId="<customer-subscription-id>"
# Sign in to Azure in the customer's tenant.
Connect-AzAccount -Tenant $customerTenantId
# Set the context to the customer's subscription.
Set-AzContext -Subscription $customerSubscriptionId
顧客が顧客テナントにサービス プロバイダー アプリケーションをインストールする
サービス プロバイダーのマルチテナント アプリケーションのアプリケーション ID を受け取ったら、サービス プリンシパルを作成して、テナント Tenant2 にアプリケーションをインストールします。
キー ボールトを作成する予定のテナントで、次のコマンドを実行してください。
$customerRgName="<customer-resource-group>"
$customerLocation="<location>"
$multiTenantAppId="<multi-tenant-app-id>" # appId value from Tenant1
# Create a resource group in the customer's subscription.
New-AzResourceGroup -Location $customerLocation -ResourceGroupName $customerRgName
# Create the service principal with the registered app's application ID (client ID).
$servicePrincipal = New-AzADServicePrincipal -ApplicationId $multiTenantAppId
顧客がキー保管庫を作成する
キー コンテナーを作成するには、顧客のアカウントに Key Vault Contributor ロール、またはキー コンテナーの作成を許可する別のロールを割り当てる必要があります。
$kvName="<key-vault>"
$kv = New-AzKeyVault -Location $customerLocation `
-Name $kvName `
-ResourceGroupName $customerRgName `
-SubscriptionId $customerSubscriptionId `
-EnablePurgeProtection `
-EnableRbacAuthorization
顧客は、Key Vault Crypto Officer ロールをユーザー アカウントに割り当てます
Key Vault Crypto Officer ロールをユーザー アカウントに割り当てます。 この手順により、ユーザーはキー コンテナーと暗号化キーを作成できるようになります。 次の例では、現在サインインしているユーザーにロールを割り当てます。
$currentUserObjectId = (Get-AzADUser -SignedIn).Id
New-AzRoleAssignment -RoleDefinitionName "Key Vault Crypto Officer" `
-Scope $kv.ResourceId `
-ObjectId $currentUserObjectId
顧客が暗号化キーを作成する
暗号化キーを作成するには、ユーザーのアカウントに Key Vault Crypto Officer ロール、またはキーの作成を許可する別のロールを割り当てる必要があります。
$keyName="<key-name>"
Add-AzKeyVaultKey -Name $keyName `
-VaultName $kvName `
-Destination software
顧客がサービス プロバイダー アプリケーションにキー コンテナーへのアクセスを許可する
Azure RBAC ロール Key Vault Crypto Service Encryption User を、上記で作成したサービス プリンシパル経由でサービス プロバイダーの登録済みアプリケーションに割り当てて、キー コンテナーにアクセスできるようにします。
New-AzRoleAssignment -RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $kv.ResourceId `
-ObjectId $servicePrincipal.Id
これで、キー コンテナーの URI とキーを使用して、カスタマー マネージド キーを構成できます。
顧客が Azure にサインインする
Azure CLIを使用するには、Azureにサインインします。
az login
顧客が顧客テナントにサービス プロバイダー アプリケーションをインストールする
サービス プロバイダーのマルチテナント アプリケーションのアプリケーション ID を受け取ったら、次のコマンドを使用して、テナント Tenant2 にアプリケーションをインストールします。 アプリケーションをインストールすると、テナントにサービス プリンシパルが作成されます。
キー ボールトを作成する予定のテナントで、次のコマンドを実行してください。
# Create the service principal with the registered app's application ID (client ID)
multiTenantAppId="<multi-tenant-app-id>"
az ad sp create --id $multiTenantAppId --query id --out tsv
顧客がキー保管庫を作成する
キー コンテナーを作成するには、顧客のアカウントに Key Vault Contributor ロール、またはキー コンテナーの作成を許可する別のロールを割り当てる必要があります。
customerSubscriptionId="<customer-subscription-id>"
customerRgName="<customer-resource-group>"
customerLocation="<location>"
kvName="<key-vault>"
az group create --location $customerLocation \
--name $customerRgName
az keyvault create --name $kvName \
--location $customerLocation \
--resource-group $customerRgName \
--subscription $customerSubscriptionId \
--enable-purge-protection true \
--enable-rbac-authorization true
顧客は、Key Vault Crypto Officer ロールをユーザー アカウントに割り当てます
この手順により、キー コンテナーと暗号化キーを作成できるようになります。
currentUserObjectId=$(az ad signed-in-user show --query id --output tsv)
kvResourceId=$(az keyvault show --resource-group $customerRgName \
--name $kvName \
--query id \
--output tsv)
az role assignment create --role "Key Vault Crypto Officer" \
--scope $kvResourceId \
--assignee-object-id $currentUserObjectId
顧客が暗号化キーを作成する
暗号化キーを作成するには、ユーザーのアカウントに Key Vault Crypto Officer ロール、またはキーの作成を許可する別のロールを割り当てる必要があります。
keyName="<key-name>"
az keyvault key create --name $keyName --vault-name $kvName
顧客がサービス プロバイダー アプリケーションにキー コンテナーへのアクセスを許可する
Azure RBAC ロール Key Vault Crypto Service Encryption User を、上記で作成したサービス プリンシパル経由でサービス プロバイダーの登録済みアプリケーションに割り当てて、登録済みアプリケーションからキー コンテナーにアクセスできるようにします。
servicePrincipalId=$(az ad sp show --id $multiTenantAppId --query id --output tsv)
az role assignment create --role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId \
--assignee-object-id $servicePrincipalId
これで、キー コンテナーの URI とキーを使用して、カスタマー マネージド キーを構成できます。
ここまでは、ISVのテナント上でマルチテナントアプリケーションを設定し、顧客のテナントにアプリケーションをインストールし、キーボールトとキーを顧客のテナント上で設定しました。 次に、既存のストレージ アカウントに、顧客のテナントのキーを使用して顧客管理キーを設定できます。
以下の例は、ユーザー割り当てのマネージド ID を使ってキー ボールトへのアクセスを承認することで、既存のストレージ アカウント上で顧客管理キーを設定する方法を示しています。 システム割り当てマネージド ID を使用して、既存のストレージ アカウントでカスタマー マネージド キーを構成することもできます。 どちらの場合も、マネージド ID には、キー コンテナーにアクセスするための適切なアクセス許可が必要です。 詳細については、Azure Key Vault に対する認証に関する記事を参照してください。
既存のストレージ アカウントで顧客管理キーによる暗号化を構成する場合、関連付けられたキー コンテナーで新しいバージョンが使用可能になるたびに、暗号化に使用されるキーのバージョンを自動的に更新することができます。 この機能を有効にするには、キーURIからキーバージョンを省略してください。 あるいは、手動で更新するまで暗号化に使う鍵のバージョンを明示的に指定することもできます。 キー URI にキーのバージョンを含めると、キーのバージョンを手動で更新するようにカスタマー マネージド キーが構成されます。
Azure portal で既存のストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成するには、次の手順を実行します。
ストレージ アカウントに移動します。
[セキュリティとネットワーク] で、[暗号化] を選択します。 デフォルトでは、鍵管理はMicrosoft管理キーに設定されています。
[カスタマー マネージド キー] オプションを選択します。
Key Vault から選択 オプションを選択します。
[キー URI を入力] を選択し、キー URI を指定します。 Azure Filesで新しいキーのバージョンを自動的にチェックして更新するには、URIからキーのバージョンを省略してください。
キー コンテナーとキーを含むサブスクリプションを選択します。
[ID タイプ] フィールドで、[ユーザー割り当て] を選択し、前に作成したフェデレーション ID 資格情報を使用してマネージド ID を指定します。
詳細セクションを展開し、以前ISVのテナントで作成したマルチテナント登録アプリケーションを選択します。
変更を保存。
顧客のテナント内のキーボールトからキーを指定すると、Azureポータルは顧客管理キーがそのキーで設定されていることを示します。 また、キーのバージョンの自動更新が有効になっていることが示されて、現在暗号化に使用されているキーのバージョンが表示されます。 ポータルはまた、キーボールトへのアクセスを認可するために使用される管理 ID の種類、管理 ID のプリンシパル ID、マルチテナント アプリケーションのアプリケーション ID も表示します。
PowerShellで既存ストレージアカウントのクロステナント顧客管理キーを設定するには、まず Az.Storage PowerShellモジュール(バージョン5.1.0以降)をインストールしてください。 このモジュールは、Az PowerShell モジュール バージョン 9.1.0 以降と共にインストールされます。
次に、Set-AzStorageAccountを呼び出し、ISVのサブスクリプションで以前に構成したユーザー割り当てマネージド ID のリソース ID と、ISVのサブスクリプションで以前に構成したマルチテナント アプリケーションのアプリケーション (クライアント) ID を指定します。 お客様のキー コンテナーのキー コンテナー URI とキー名を指定します。
角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$accountName = "<storage-account>"
$kvUri = "<key-vault-uri>"
$keyName = "<key-name>"
$multiTenantAppId = "<multi-tenant-app-id>"
$accountParams = @{
ResourceGroupName = $isvRgName
Name = $accountName
KeyVaultEncryption = $true
UserAssignedIdentityId = $userIdentity.Id
IdentityType = "SystemAssignedUserAssigned"
KeyName = $keyName
KeyVaultUri = $kvUri
KeyVaultUserAssignedIdentityId = $userIdentity.Id
KeyVaultFederatedClientId = $multiTenantAppId
}
Set-AzStorageAccount @accountParams
Azure CLI を使用して既存のストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成するには、まず Azure CLI バージョン 2.42.0 以降をインストールします。 Azure CLI のインストールに関する詳細については、「Azure CLI をインストールする方法」を参照してください。
次に、az storage account updateを呼び出し、ISV のサブスクリプションで以前に構成したユーザー割り当てマネージド ID のリソース ID と、ISV のサブスクリプションで以前に構成したマルチテナント アプリケーションのアプリケーション (クライアント) ID を指定します。 お客様のキー コンテナーのキー コンテナー URI とキー名を指定します。
角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
accountName="<storage-account>"
kvUri="<key-vault-uri>"
keyName="<key-name>"
multiTenantAppId="<multi-tenant-app-id>" # appId value from multi-tenant app
# Get the resource ID for the user-assigned managed identity.
identityResourceId=$(az identity show --name $userIdentityName \
--resource-group $isvRgName \
--query id \
--output tsv)
az storage account update --name $accountName \
--resource-group $isvRgName \
--identity-type SystemAssigned,UserAssigned \
--user-identity-id $identityResourceId \
--encryption-key-vault $kvUri \
--encryption-key-name $keyName \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $identityResourceId \
--key-vault-federated-client-id $multiTenantAppId
サービスプロバイダーは顧客の鍵で暗号化された新しいストレージアカウントを作成します
また、ISVのテナントで新しいストレージアカウントを作成し、顧客のテナントのキーで顧客管理キーを設定することもできます。
ストレージ アカウントの作成時にカスタマー マネージド キーを構成する場合は、キー コンテナーへのアクセスの承認に既存のユーザー割り当てマネージド ID を使用する必要があります。 ユーザー割り当てマネージド ID には、キー ボールトにアクセスするための適切なアクセス許可が必要です。 詳細については、Azure Key Vault に対する認証に関する記事を参照してください。
新しいストレージアカウントで顧客管理キーで暗号化を設定する場合、関連するキーボールトに新しいバージョンが存在するたびに、暗号化に使われるキーのバージョンを自動的に更新することができます。 これを行うには、キー URI からキーのバージョンを省略します。 または、キーのバージョンが手動で更新されるまで暗号化に使用するキーのバージョンを明示的に指定できます。 キー URI にキーのバージョンを含めると、キーのバージョンを手動で更新するようにカスタマー マネージド キーが構成されます。
Azure portal で新しいストレージ アカウント用のクロステナントのカスタマー マネージド キーを構成するには、次の手順を実行します。
Azureポータルで、ISVのテナント内のストレージアカウントページに行き、「作成」ボタンを選択して新しいアカウントを作成します。
「 クラシックファイル共有の作成 」で示された手順に従い、「 基本」「 上級」「 ネットワーク 」「 データ保護 」タブのフィールドを埋めてください。
[暗号化] タブの [カスタマー マネージド キーのサポートを有効にする] フィールドで、カスタマー マネージド キーのサポートを有効にするサービスを指定します。
[Encryption type] (暗号化の種類) フィールドで、[Customer-managed keys (CMK)] (カスタマー マネージド キー (CMK)) を選択します。
[暗号化キー] フィールドで、[Enter key from key vault] (キー コンテナーからキーを入力する) を選択し、キー URI を指定します。 Azure Filesで新しいキーのバージョンを自動的にチェックして更新する場合は、URIからキーのバージョンを省略してください。
[ユーザー割り当て ID] フィールドで、ISV のテナントで以前に作成したユーザー割り当てマネージド ID を検索します。
詳細セクションを展開し、以前ISVのテナントで作成したマルチテナント登録アプリケーションを選択します。
[確認] ボタンを選択して検証し、アカウントを作成します。
PowerShell で新しいストレージ アカウントのテナント間のカスタマー マネージド キーを構成するには、まず Az.Storage PowerShell モジュール のバージョン 5.1.0以降 をインストールします。 このモジュールは、Az PowerShell モジュール バージョン 9.1.0 以降と共にインストールされます。
次に、New-AzStorageAccountを呼び出し、以前 ISV のサブスクリプションで設定したユーザー割り当てマネージド ID のリソース ID と、以前 ISV のサブスクリプションで設定したマルチテナント アプリケーションのアプリケーション (クライアント) ID を指定します。 お客様のキー コンテナーのキー コンテナー URI とキー名を指定します。
角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$accountName = "<account-name>"
$kvUri = "<key-vault-uri>"
$keyName = "<key-name>"
$location = "<location>"
$multiTenantAppId = "<application-id>" # appId value from multi-tenant app
$userIdentity = Get-AzUserAssignedIdentity -Name "<user-assigned-identity>" -ResourceGroupName $isvRgName
$accountParams = @{
ResourceGroupName = $isvRgName
Name = $accountName
Kind = "StorageV2"
SkuName = "Standard_LRS"
Location = $location
UserAssignedIdentityId = $userIdentity.Id
IdentityType = "SystemAssignedUserAssigned"
KeyName = $keyName
KeyVaultUri = $kvUri
KeyVaultUserAssignedIdentityId = $userIdentity.Id
KeyVaultFederatedClientId = $multiTenantAppId
}
New-AzStorageAccount @accountParams
Azure CLI を使用して新しいストレージ アカウントのクロステナントのカスタマー マネージド キーを構成するには、まず Azure CLI バージョン2.42.0 以降をインストールします。 Azure CLI のインストールに関する詳細については、「Azure CLI をインストールする方法」を参照してください。
次に、az storage account createを呼び出し、ISVのサブスクリプションで以前に構成したユーザー割り当てマネージド ID のリソース ID と、ISVのサブスクリプションで以前に構成したマルチテナント アプリケーションのアプリケーション (クライアント) ID を指定します。 お客様のキー コンテナーのキー コンテナー URI とキー名を指定します。
角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
accountName="<storage-account>"
kvUri="<key-vault-uri>"
keyName="<key-name>"
multiTenantAppId="<multi-tenant-app-id>" # appId value from multi-tenant app
# Get the resource ID for the user-assigned managed identity.
identityResourceId=$(az identity show --name $userIdentityName \
--resource-group $isvRgName \
--query id \
--output tsv)
az storage account create \
--name $accountName \
--resource-group $isvRgName \
--location $isvLocation \
--sku Standard_LRS \
--kind StorageV2 \
--identity-type SystemAssigned,UserAssigned \
--user-identity-id $identityResourceId \
--encryption-key-vault $kvUri \
--encryption-key-name $keyName \
--encryption-key-source Microsoft.Keyvault \
--key-vault-user-identity-id $identityResourceId \
--key-vault-federated-client-id $multiTenantAppId
新しいストレージ アカウントの作成時にキー バージョンを手動で更新して、カスタマー マネージド キーを構成することもできます。 これを行うには、キー URI を指定するときにキーのバージョンを含めます。
キーをローテーションまたは変更、アクセスを取り消す、またはMicrosoft管理キーに戻すには、以下のセクションの手順をご利用ください。 これらのステップは、テナント間の顧客管理キーでも同じです。
キーのローテーション
暗号化キーを定期的にローテーションすると、キーが侵害された場合の公開が制限されます。 カスタマー マネージド キーを使用するストレージ アカウントの暗号化をローテーションするには、次の 2 つの方法があります。
-
キー のバージョンをローテーションする - キー保管庫で同じキーの新しいバージョンを作成します。 キー名は変わりませんが、バージョンは変更されます。
-
キーを変更する - ストレージ アカウントを切り替えて、同じキー コンテナーまたは別のキー コンテナー内のまったく異なるキー (別の名前) を使用します。
Important
Azureはキー ボールトにおいて新しいキー バージョンを日に一度だけチェックします。 キーをローテーションした後、以前のキー バージョンを無効にする前に 24 時間待ちます。
キー バージョンをローテーションする
セキュリティのベスト プラクティスについては、キー バージョンを少なくとも 2 年に 1 回ローテーションします。
キー バージョンの自動ローテーション (推奨)
キー バージョンを指定せずに顧客管理キーを設定する場合 (既定)、Azure は毎日自動的に新しいキー バージョンを確認します。 キー コンテナーに新しいバージョンのキーを作成すると、Azure は 24 時間以内にそれを検出します。 Azure Key Vault自動キー ローテーションを構成して>スケジュールに基づいて新しいキー バージョンを生成することもできます。
キー バージョンの手動ローテーション
顧客管理キーを設定する際にキーバージョンを指定すると、Azureはその特定のバージョンを使用し、新しいバージョンを自動的にチェックしません。 新しいキー バージョンをポイントするように、ストレージ アカウントの構成を手動で更新する必要があります。
Azure portal を使用してキー バージョンを手動でローテーションするには、次の手順に従います。
- キー コンテナーに移動します。 サービス メニューの [ オブジェクト] で [キー] を選択 します。
- キーを選択し、新しいキーバージョンを選択します。
キー識別子の値をコピーしてください。 この値にはキーバージョンも含まれます。
- ストレージ アカウントに移動します。 サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
[キーの変更] を選びます。
-
暗号化キーでは、キー URI を入力 を選択し、キー識別子を キー URI に貼り付けます。
-
保存を選びます。
Azure PowerShellを使用してキーのバージョンを手動でローテーションするには、次のコマンドレットを実行します。
<resource-group>、<storage-account-name>、<key-vault-name>、および <key-name> を独自の値に置き換えます。
$keyVaultName = "<key-vault-name>"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName
$key = Get-AzKeyVaultKey -VaultName $keyVaultName -Name "<key-name>"
$accountParams = @{
ResourceGroupName = "<resource-group>"
Name = "<storage-account-name>"
KeyVaultUri = $keyVault.VaultUri
KeyName = $key.Name
KeyVersion = $key.Version
KeyVaultEncryption = $true
}
Set-AzStorageAccount @accountParams
Azure CLIを使用してキーのバージョンを手動でローテーションするには、次のコマンドを実行します。
<storage-account-name>、<resource-group>、<key-vault-name>、および <key-name> を独自の値に置き換えます。
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
# Get the latest key version
KEY_VERSION=$(az keyvault key show \
--vault-name <key-vault-name> \
--name <key-name> \
--query key.kid -o tsv | sed -e 's|.*/||')
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <key-name> \
--encryption-key-version $KEY_VERSION \
--encryption-key-source Microsoft.Keyvault
キーを変更する
まったく異なるキーを使用するようにストレージ アカウントを切り替えるには、キー コンテナーに新しいキーを作成またはインポートし ( 暗号化キーの作成またはインポートを参照)、新しいキーを使用するようにストレージ アカウントの暗号化構成を更新します。
Azure ポータルを使用してキーを変更するには、次の手順に従います。
- ストレージ アカウントに移動します。
- サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
[キーの変更] を選びます。
-
キー コンテナーとキーを選択します。
キーストアの種類 には キー コンテナー を選択してください。 鍵の保管庫と新しい鍵を選んでから、「選択」 を選びます。
-
保存を選びます。
Azure PowerShellを使用してキーを変更するには、次のコマンドレットを実行します。
<resource-group>、<storage-account-name>、<key-vault-name>、および <new-key-name> を独自の値に置き換えます。
コマンドレットは KeyVersion を空の値に設定し、自動キーバージョン更新が有効になります (推奨)。
KeyVersionを省略してストレージアカウントが以前に指定したキーバージョンを使用している場合、コマンドレットはそのバージョンを保持し、失敗します。なぜなら、新しいキーにはそのバージョンが存在しないためです。 代わりに手動でキー バージョン更新を使用するには、KeyVersion を $key.Version に設定してください。
$keyVaultName = "<key-vault-name>"
$keyVault = Get-AzKeyVault -VaultName $keyVaultName
$key = Get-AzKeyVaultKey -VaultName $keyVaultName -Name "<new-key-name>"
$accountParams = @{
ResourceGroupName = "<resource-group>"
Name = "<storage-account-name>"
KeyVaultUri = $keyVault.VaultUri
KeyName = $key.Name
KeyVersion = ""
KeyVaultEncryption = $true
}
Set-AzStorageAccount @accountParams
Azure CLIを使用してキーを変更するには、次のコマンドを実行します。
<storage-account-name>、<resource-group>、<key-vault-name>、および <new-key-name> を独自の値に置き換えます。
このコマンドは --encryption-key-version を空の値に設定し、自動キーバージョン更新(推奨)が有効になります。
--encryption-key-versionを省略してストレージアカウントで以前指定したキーバージョンが使用されている場合、コマンドはそのバージョンを保持したまま失敗します。なぜなら、新しいキーにはそのバージョンが存在しないためです。 手動キーバージョン更新を使う場合は、 --encryption-key-version を新しいキーのバージョンに設定してください。
# Get the key vault URI
KEY_VAULT_URI=$(az keyvault show \
--name <key-vault-name> \
--query properties.vaultUri -o tsv)
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-vault $KEY_VAULT_URI \
--encryption-key-name <new-key-name> \
--encryption-key-version "" \
--encryption-key-source Microsoft.Keyvault
キーを無効にしてファイル共有データへのアクセスを取り消す
顧客管理キーを無効化または削除することで、暗号化されたファイル共有データへのアクセスをブロックできます。 アクセスはすぐにブロックされません。 キーを無効にしてから、データプレーン操作でエラーが発生し始めるまでに数分かかることがあります。 キーが無効になっている間、次のようなすべてのAzure Filesデータ プレーン操作が HTTP 403 (禁止) で失敗します。
- ディレクトリとファイルを一覧表示する
- ディレクトリやファイルの作成、取得、指定
- ファイルのメタデータを取得または設定する
- 範囲の配置、ファイルのコピー、ファイル名の変更
ファイル共有データへのアクセスを取り消すには、Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、キー コンテナー内のキーを無効にします。 キーを再度有効にして、アクセスを復元します。
Azure ポータルを使用してキーを無効にするには、次の手順に従います。
- Azureポータルでキーボールトに移動します。
- サービス メニューの [ オブジェクト] で [キー] を選択 します。
- キーを右クリックし、[無効] を選択します。
Azure PowerShellを使用してキーを無効にするには、次のコマンドレットを実行します。
<key-vault-name> と <key-name> を独自の値に置き換えます。
$keyParams = @{
VaultName = "<key-vault-name>"
Name = "<key-name>"
Enable = $false
}
Update-AzKeyVaultKey @keyParams
Azure CLIを使用してキーを無効にするには、次のコマンドを実行します。
<key-vault-name> と <key-name> を独自の値に置き換えます。
az keyvault key set-attributes \
--vault-name <key-vault-name> \
--name <key-name> \
--enabled false
Microsoft マネージド キーに切り替える
カスタマー マネージド キーが不要になった場合は、Azure ポータル、Azure PowerShell、またはAzure CLIを使用して、ストレージ アカウントを暗号化にMicrosoftマネージド キーを使用するように切り替えることができます。
Azure ポータルを使用してMicrosoftマネージド キーに戻すには、次の手順に従います。
- Azure portal で、ストレージ アカウントに移動します。
- サービス メニューの [ セキュリティとネットワーク] で、[ 暗号化] を選択します。
-
[暗号化の種類] を [Microsoft マネージド キー] に変更します。
-
保存を選びます。
Azure PowerShellを使用してMicrosoftマネージド キーに戻すには、次のコマンドレットを実行します。
<resource-group> と <storage-account-name> を独自の値に置き換えます。
$accountParams = @{
ResourceGroupName = "<resource-group>"
Name = "<storage-account-name>"
StorageEncryption = $true
}
Set-AzStorageAccount @accountParams
Azure CLIを使用してMicrosoftマネージド キーに戻すには、次のコマンドを実行します。
<resource-group> と <storage-account-name> を独自の値に置き換えます。
az storage account update \
--name <storage-account-name> \
--resource-group <resource-group> \
--encryption-key-source Microsoft.Storage
関連するコンテンツ