Azure Storage は、保存されているストレージ アカウント内のすべてのデータを暗号化します。 規定では、データは Microsoft のマネージド キーで暗号化されます。 暗号化キーをさらに制御するために、独自のキーを管理することができます。 カスタマー マネージド キーは、Azure Key Vault または Key Vault Managed Hardware Security Model (HSM) に格納する必要があります。
このアーティクルでは、ストレージ アカウントとキー コンテナーが同じテナントにある場合に、既存のストレージ アカウントのカスタマー マネージド キーを使用して暗号化を構成する方法について説明します。 カスタマー マネージド キーは、キー コンテナーに格納されます。
新しいストレージ アカウントのカスタマー マネージド キーを構成する方法については、Azure Key Vault に新しいストレージ アカウントのカスタマー マネージド キーを構成に関する記事を参照してください。
マネージド HSM に格納されているカスタマー マネージド キーを使用して暗号化を構成する方法については、「Azure Key Vault Managed HSM に格納されているカスタマー マネージド キーによる暗号化を構成する」を参照してください。
Note
Azure Key Vault と Azure Key Vault マネージド HSM では、カスタマー マネージド キーの構成用に同じ API と管理インターフェイスがサポートされています。 Azure Key Vault でサポートされているすべてのアクションが、Azure Key Vault マネージド HSM でもサポートされます。
新規または既存のキー コンテナーを使用して、カスタマー マネージド キーを格納することができます。 ストレージ アカウントとキーコンテナーは、同じテナント内の異なるリージョンまたはサブスクリプションに存在する場合があります。 Azure Key Vault の詳細については、Azure Key Vault の概要と Azure Key Vault とは何であるかに関する記事を参照してください。
Azure Storage 暗号化でカスタマー マネージド キーを使うには、キー コンテナーに対して論理的な削除と消去保護の両方を有効にする必要があります。 新しいキー コンテナーを作成すると、論理的な削除は既定で有効になり、無効にすることはできません。 消去保護は、キー コンテナーの作成時または作成後に有効にすることができます。
Azure Key Vault では、Azure RBAC アクセス許可モデルを使用した Azure RBAC による認可がサポートされています。 Microsoft では、キー コンテナー アクセス ポリシーに対して Azure RBAC アクセス許可モデルを使用することをお勧めします。 詳細については、「 Azure RBAC を使用して Azure キー コンテナーへのアクセス許可をアプリケーションに付与する」を参照してください。
Azure portal を使ってキー コンテナーを作成する方法を学習するには、「クイック スタート: Azure portal を使用してキー コンテナーを作成する」を参照してください。 キー コンテナーを作成するときに、次の図に示すように、 [消去保護を有効にします] を選択します。
既存のキー コンテナーで消去保護を有効にするには、次の手順を実行します。
- Azure portal で、ご自身のキー コンテナーに移動します。
- [設定] の [プロパティ] を選択します。
- [消去保護] セクションで、 [消去保護を有効にします] を選択します。
PowerShell を使用して新しいキー コンテナーを作成するには、バージョン 2.0.0 以降の Az.KeyVault PowerShell モジュールをインストールします。 次に、New-AzKeyVault を呼び出して新しいキー コンテナーを作成します。 バージョン 2.0.0 以降の Az.KeyVault モジュールでは、新しいキー コンテナーを作成するときには、既定で、論理的な削除が有効になります。
次の例では、論理的な削除と消去保護を有効にして新しいキー コンテナーを作成しています。 キー コンテナーのアクセス許可モデルは、Azure RBAC を使用するように設定されています。 角かっこ内のプレースホルダー値を独自の値で置き換えてください。
$rgName = "<resource_group>"
$___location = "<___location>"
$kvName = "<key-vault>"
$keyVault = New-AzKeyVault -Name $kvName `
-ResourceGroupName $rgName `
-Location $___location `
-EnablePurgeProtection `
-EnableRbacAuthorization
PowerShell を使用して既存のキー コンテナーで消去保護を有効にする方法については、Azure Key Vault の復旧の概要に関する記事を参照してください。
キー コンテナーを作成したら、Key Vault Crypto Officer ロールを自分自身に割り当てる必要があります。 このロールを使用すると、キー コンテナーにキーを作成できます。 次の例では、このロールをユーザーに割り当てて、スコープをキー コンテナーにします。
New-AzRoleAssignment -SignInName "<user-email>" `
-RoleDefinitionName "Key Vault Crypto Officer" `
-Scope $keyVault.ResourceId
PowerShell で RBAC ロールを割り当てる方法の詳細については、「Azure PowerShell を使用して Azure ロールを割り当てる」を参照してください。
Azure CLI を使用して新しいキー コンテナーを作成するには、az keyvault create を呼び出します。 次の例では、論理的な削除と消去保護を有効にして新しいキー コンテナーを作成しています。 キー コンテナーのアクセス許可モデルは、Azure RBAC を使用するように設定されています。 角かっこ内のプレースホルダー値を独自の値で置き換えてください。
rgName="<resource_group>"
___location="<___location>"
kvName="<key-vault>"
az keyvault create \
--name $kvName \
--resource-group $rgName \
--___location $___location \
--enable-purge-protection \
--enable-rbac-authorization
Azure CLI を使用して既存のキー コンテナーで消去保護を有効にする方法については、Azure Key Vault の復旧の概要に関する記事を参照してください。
キー コンテナーを作成したら、Key Vault Crypto Officer ロールを自分自身に割り当てる必要があります。 このロールを使用すると、キー コンテナーにキーを作成できます。 次の例では、このロールをユーザーに割り当てて、スコープをキー コンテナーにします。
kvResourceId=$(az keyvault show --resource-group $rgName \
--name $kvName \
--query id \
--output tsv)
az role assignment create --assignee "<user-email>" \
--role "Key Vault Crypto Officer" \
--scope $kvResourceId
Azure CLI で RBAC ロールを割り当てる方法の詳細については、「Azure CLI を使用して Azure ロールを割り当てる」を参照してください。
キーを追加する
次に、キー コンテナーにキーを追加します。 キーを追加する前に、Key Vault Crypto Officer ロールが自分に割り当てられていることを確認してください。
Azure Storage の暗号化では、2,048、3,072、および 4,096 のサイズの RSA キーと RSA-HSM キーがサポートされています。 サポートされているキーの種類の詳細については、「キーについて」を参照してください。
PowerShell を使用してキーを追加するには、Add-AzKeyVaultKey を呼び出します。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$keyName = "<key-name>"
$key = Add-AzKeyVaultKey -VaultName $keyVault.VaultName `
-Name $keyName `
-Destination 'Software'
Azure CLI を使用してキーを追加するには、az keyvault key create を呼び出します。 角かっこ内のプレースホルダー値を独自の値で置き換えてください。
keyName="<key-name>"
az keyvault key create \
--name $keyName \
--vault-name $kvName
キー コンテナーへのアクセスを承認するためのマネージド ID を選択する
既存のストレージ アカウントのカスタマー マネージド キーを有効にする場合、そのキーを含むキー コンテナーへのアクセスの承認に使用するマネージド ID を指定する必要があります。 マネージド ID には、キー コンテナー内のキーにアクセスするためのアクセス許可が必要です。
キー コンテナーへのアクセスを承認するマネージド ID は、ユーザー割り当てまたはシステム割り当てのいずれかのマネージド ID になります。 システム割り当てとユーザー割り当てのマネージド ID の詳細については、「マネージド ID の種類」を参照してください。
ユーザー割り当てマネージド ID を使用してアクセスを承認する
新しいストレージ アカウントのカスタマー マネージド キーを有効にする場合は、ユーザー割り当てマネージド ID を指定する必要があります。 既存のストレージ アカウントでは、ユーザー割り当てマネージド ID またはシステム割り当てマネージド ID のいずれかを使用してカスタマー マネージド キーを構成することがサポートされています。
ユーザー割り当てマネージド ID を使用してカスタマー マネージド キーを構成する場合、ユーザー割り当てマネージド ID を使用して、キーを含むキー コンテナーへのアクセスが認可されます。 ユーザー割り当て ID はカスタマー マネージド キーを構成する前に作成する必要があります。
ユーザー割り当てマネージド ID は、スタンドアロンの Azure リソースです。 ユーザー割り当てのマネージド ID の詳細については、「マネージド ID の種類」を参照してください。 ユーザー割り当てマネージド ID を作成して管理する方法については、「ユーザー割り当てマネージド ID の管理」を参照してください。
ユーザー割り当てマネージド ID には、キー コンテナー内のキーにアクセスするためのアクセス許可が必要です。 Key Vault Crypto Service Encryption User ロールを、キー コンテナー スコープを持つユーザー割り当てマネージド ID に割り当てて、これらのアクセス許可を付与します。
ユーザー割り当てマネージド ID でカスタマー マネージド キーを構成する前に、キー コンテナーにスコープ設定されたユーザー割り当てマネージド ID に Key Vault Crypto Service Encryption User ロールを割り当てる必要があります。 このロールは、ユーザー割り当てマネージド ID に、キー コンテナー内のキーにアクセスするためのアクセス許可を付与します。 Azure portal を使用して Azure RBAC ロールを割り当てる方法の詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
Azure portal を使用してカスタマー マネージド キーを構成する場合は、ポータルのユーザー インターフェイスから既存のユーザー割り当て ID を選択できます。
次の例は、ユーザー割り当てマネージド ID を取得し、キー コンテナーにスコープ設定された必要な RBAC ロールをその ID に割り当てる方法を示しています。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$userIdentity = Get-AzUserAssignedIdentity -Name <user-assigned-identity> `
-ResourceGroupName $rgName
$principalId = $userIdentity.PrincipalId
New-AzRoleAssignment -ObjectId $principalId `
-RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $keyVault.ResourceId
次の例は、ユーザー割り当てマネージド ID を取得し、キー コンテナーにスコープ設定された必要な RBAC ロールをその ID に割り当てる方法を示しています。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
identityResourceId=$(az identity show --name <user-assigned-identity> \
--resource-group $rgName \
--query id \
--output tsv)
principalId=$(az identity show --name <user-assigned-identity> \
--resource-group $rgName \
--query principalId \
--output tsv)
az role assignment create --assignee-object-id $principalId \
--role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId \
--assignee-principal-type ServicePrincipal
システム割り当てマネージド ID を使用してアクセスを承認する
システム割り当てマネージド ID は、Azure サービスのインスタンス (この場合は Azure Storage アカウント) に関連付けられます。 システム割り当てマネージド ID を使用してカスタマー マネージド キーを含むキー コンテナーへのアクセスを承認するには、まずシステム割り当てマネージド ID をストレージ アカウントに明示的に割り当てておく必要があります。
システム割り当て ID は、既存のストレージ アカウントでのみキー コンテナーへのアクセスの承認に使用できます。 新しいストレージ アカウントでは、アカウントの作成時にカスタマー マネージド キーが構成されている場合は、ユーザー割り当て ID を使用する必要があります。
システム割り当てマネージド ID には、キー コンテナー内のキーにアクセスするためのアクセス許可が必要です。 Key Vault Crypto Service Encryption User ロールを、キー コンテナー スコープを持つシステム割り当てマネージド ID に割り当てて、これらのアクセス許可を付与します。
システム割り当てマネージド ID でカスタマー マネージド キーを構成する前に、キー コンテナーにスコープ設定されたシステム割り当てマネージド ID に Key Vault Crypto Service Encryption User ロールを割り当てる必要があります。 このロールは、システム割り当てマネージド ID に、キー コンテナー内のキーにアクセスするためのアクセス許可を付与します。 Azure portal を使用して Azure RBAC ロールを割り当てる方法の詳細については、「Azure portal を使用して Azure ロールを割り当てる」を参照してください。
Azure portal でシステム割り当てマネージド ID を使用してカスタマー マネージド キーを構成すると、システム割り当てマネージド ID は内部でストレージ アカウントに割り当てられます。
ストレージ アカウントにシステム割り当てマネージド ID を割り当てるには、まず Set-AzStorageAccount を呼び出します。
$accountName = "<storage-account>"
$storageAccount = Set-AzStorageAccount -ResourceGroupName $rgName `
-Name $accountName `
-AssignIdentity
次に、必要な RBAC ロールをシステム割り当てマネージド ID に割り当てて、スコープをキー コンテナーにします。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$principalId = $storageAccount.Identity.PrincipalId
New-AzRoleAssignment -ObjectId $storageAccount.Identity.PrincipalId `
-RoleDefinitionName "Key Vault Crypto Service Encryption User" `
-Scope $keyVault.ResourceId
システム割り当てマネージド ID を使用してキー コンテナーへのアクセスを認証するには、まず、az storage account update を呼び出して、システム割り当てマネージド ID をストレージ アカウントに割り当てます。
accountName="<storage-account>"
az storage account update \
--name $accountName \
--resource-group $rgName \
--assign-identity
次に、必要な RBAC ロールをシステム割り当てマネージド ID に割り当てて、スコープをキー コンテナーにします。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
principalId=$(az storage account show --name $accountName \
--resource-group $rgName \
--query identity.principalId \
--output tsv)
az role assignment create --assignee-object-id $principalId \
--role "Key Vault Crypto Service Encryption User" \
--scope $kvResourceId
既存のストレージ アカウントでカスタマー マネージド キーを使用して暗号化を構成する場合は、関連付けられているキー コンテナーで新しいバージョンが使用可能になるたびに、Azure Storage 暗号化に使用するキー バージョンを自動更新することを選択できます。 または、キーのバージョンが手動で更新されるまで暗号化に使用するキーのバージョンを明示的に指定できます。
キーのバージョンが変更されると、自動か手動かに関係なく、ルート暗号化キーの保護が変わりますが、Azure Storage アカウント内のデータは常に暗号化されたままになります。 データの保護を確保するために、お客様が追加のアクションを実行する必要はありません。 キーのバージョンをローテーションしてもパフォーマンスには影響しません。 キー バージョンのローテーションに関連するダウンタイムはありません。
既存のストレージ アカウントでカスタマー マネージド キーを構成する場合は、キー コンテナーへのアクセスを承認するために、システム割り当ておよびユーザー割り当てのどちらのマネージド ID も使用できます。
Note
キーを交換するには、Azure Key Vault でキーの新しいバージョンを作成します。 Azure Storage はキー交換の処理を行わないため、キー コンテナー内のキーの交換を管理する必要があります。 Azure Key Vault でキーの自動交換を構成するか、またはキーを手動で交換することができます。
Azure Storage では、暗号化に使用されているカスタマー マネージド キーを、キー コンテナーの最新キー バージョンを使用するように自動更新できます。 Azure Storage では、新しいキー バージョンの確認のため、キー コンテナーが毎日チェックされます。 新しいバージョンが使用可能になると、Azure Storage は自動的に、暗号化に最新バージョンのキーの使用を開始します。
重要
Azure Storage では、新しいキー バージョンの確認のため、キー コンテナーが 1 日に 1 回だけチェックされます。 キーを交換するときは、必ず 24 時間待って、古いバージョンを無効化するようにしてください。
Azure portal でキー バージョンを自動更新するように既存のアカウントでカスタマー マネージド キーを構成するには、次の手順を実行します。
ストレージ アカウントに移動します。
[セキュリティとネットワーク] で、[暗号化] を選択します。 次の図に示すように、既定ではキー管理は [Microsoft マネージド キー] に設定されています。
[カスタマー マネージド キー] オプションを選びます。 以前にキー バージョンの手動更新を使ってカスタマー マネージド キーのアカウントを構成していた場合は、ページの下部にある [キーの変更] を選びます。
[Select from Key Vault](キー コンテナーから選択) オプションを選択します。
[Select a key vault and key] (キー コンテナーとキーを選択する) を選択します。
使用するキーを含むキー コンテナーを選択します。 新しいキー コンテナーを作成することもできます。
キー コンテナーからキーを選択します。 新しいキーを作成することもできます。
キー コンテナーへのアクセスを認証するために使用する ID の種類を選択します。 オプションには、[システム割り当て] (既定) または [ユーザー割り当て] があります。 マネージド ID の種類の詳細については、「マネージド ID の種類」を参照してください。
- [システム割り当て] を選択すると、ストレージ アカウントのシステム割り当てマネージド ID が内部で作成されます (まだ存在しない場合)。
- [ユーザー割り当て] を選択した場合は、キー コンテナーへのアクセス許可を持つ既存のユーザー割り当て ID を選択する必要があります。 ユーザー割り当てマネージド ID を作成する方法については、「ユーザー割り当てマネージド ID の管理」を参照してください。
変更を保存。
キーを指定した後は、Azure portal に、キーのバージョンの自動更新が有効になっていることが示されて、現在暗号化に使用されているキーのバージョンが表示されます。 ポータルには、キー コンテナーへのアクセスの承認に使用されるマネージド ID の種類と、マネージド ID に対するプリンシパル ID も表示されます。
PowerShell を使用してキー バージョンを自動更新するように既存のアカウントでカスタマー マネージド キーを構成するには、Az.Storage モジュールのバージョン 2.0.0 以降をインストールします。
次に Set-AzStorageAccount を呼び出し、ストレージ アカウントの暗号化設定を更新します。 KeyvaultEncryption
パラメーターを追加して、ストレージ アカウントのカスタマー マネージド キーを有効にします。また、KeyVersion
を空の文字列に設定してキー バージョンの自動更新を有効にします。 以前に特定のキー バージョンを使ってカスタマー マネージド キーのストレージ アカウントを構成していた場合は、キー バージョンを空の文字列に設定して、今後のキー バージョンの自動更新を有効にします。
$accountName = "<storage-account>"
# Use this form of the command with a user-assigned managed identity.
Set-AzStorageAccount -ResourceGroupName $rgName `
-AccountName $accountName `
-IdentityType SystemAssignedUserAssigned `
-UserAssignedIdentityId $userIdentity.Id `
-KeyvaultEncryption `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVersion "" `
-KeyVaultUserAssignedIdentityId $userIdentity.Id
# Use this form of the command with a system-assigned managed identity.
Set-AzStorageAccount -ResourceGroupName $rgName `
-AccountName $accountName `
-KeyvaultEncryption `
-KeyName $key.Name `
-KeyVersion "" `
-KeyVaultUri $keyVault.VaultUri
Azure CLI を使用してキー バージョンを自動更新するように既存のアカウントでカスタマー マネージド キーを構成するには、Azure CLI バージョン 2.4.0 以降をインストールします。 詳細については、「 Azure CLI のインストール」を参照してください。
次に az storage account update を呼び出してストレージ アカウントの暗号化設定を更新します。 --encryption-key-source
パラメーターを追加して Microsoft.Keyvault
に設定し、アカウントのカスタマー マネージド キーを有効にします。また、encryption-key-version
を空の文字列に設定してキー バージョンの自動更新を有効にします。 以前に特定のキー バージョンを使ってカスタマー マネージド キーのストレージ アカウントを構成していた場合は、キー バージョンを空の文字列に設定して、今後のキー バージョンの自動更新を有効にします。
accountName="<storage-account>"
keyVaultUri=$(az keyvault show \
--name $kvName \
--resource-group $rgName \
--query properties.vaultUri \
--output tsv)
# Use this form of the command with a user-assigned managed identity.
az storage account update \
--name $accountName \
--resource-group $rgName \
--identity-type SystemAssigned,UserAssigned \
--user-identity-id $identityResourceId \
--encryption-key-name $keyName \
--encryption-key-version "" \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $keyVaultUri \
--key-vault-user-identity-id $identityResourceId
# Use this form of the command with a system-assigned managed identity.
az storage account update \
--name $accountName \
--resource-group $rgName \
--encryption-key-name $keyName \
--encryption-key-version "" \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $keyVaultUri
キーのバージョンを手動で更新する場合は、カスタマー マネージド キーを使用して暗号化を構成するときに、そのバージョンを明示的に指定します。 この場合、キー コンテナーで新しいバージョンが作成されると、Azure Storage でキー バージョンが自動的に更新されません。 新しいキー バージョンを使用するには、Azure Storage の暗号化に使用されるバージョンを手動で更新する必要があります。
Azure portal でキーのバージョンを手動更新するようにカスタマー マネージド キーを構成するには、バージョンを含むキー URI を指定します。 URI としてキーを指定するには、次の手順のようにします。
Azure portal でキーの URI を調べるには、キー コンテナーに移動して、 [キー] 設定を選択します。 目的のキーを選択し、キーを選択してそのバージョンを表示します。 そのバージョンの設定を表示するには、キーのバージョンを選択します。
URI を示している [キー識別子] フィールドの値をコピーします。
ストレージ アカウントの [暗号化キー] の設定で、 [キー URI を入力] オプションを選択します。
コピーした URI を [キー URI] フィールドに貼り付けます。 URI からキーのバージョンを省略して、キーのバージョンの自動更新を有効にします。
キー コンテナーを含むサブスクリプションを指定します。
システム割り当てまたはユーザー割り当てのマネージド ID をいずれか指定します。
変更を保存します。
キーのバージョンを手動更新するようにカスタマー マネージド キーを構成するには、ストレージ アカウントの暗号化を設定するときに、キーのバージョンを明示的に指定します。 次の例に示すように、Set-AzStorageAccount を呼び出してストレージ アカウントの暗号化設定を更新し、 -KeyvaultEncryption オプションを含めてストレージ アカウントでカスタマー マネージド キーを有効にします。
角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
$accountName = "<storage-account>"
# Use this form of the command with a user-assigned managed identity.
Set-AzStorageAccount -ResourceGroupName $rgName `
-AccountName $accountName `
-IdentityType SystemAssignedUserAssigned `
-UserAssignedIdentityId $userIdentity.Id `
-KeyvaultEncryption `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVersion $key.Version `
-KeyVaultUserAssignedIdentityId $userIdentity.Id
# Use this form of the command with a system-assigned managed identity.
Set-AzStorageAccount -ResourceGroupName $rgName `
-AccountName $accountName `
-KeyvaultEncryption `
-KeyVaultUri $keyVault.VaultUri `
-KeyName $key.Name `
-KeyVersion $key.Version
キー バージョンを手動で更新する場合は、新しいバージョンを使用するようにストレージ アカウントの暗号化設定を更新する必要があります。 まず Get-AzKeyVaultKey を呼び出し、キーの最新バージョンを取得します。 次に、前の例で示したように、Set-AzStorageAccount を呼び出して、新しいバージョンのキーを使用するようにストレージ アカウントの暗号化設定を更新します。
キーのバージョンを手動更新するようにカスタマー マネージド キーを構成するには、ストレージ アカウントの暗号化を設定するときに、キーのバージョンを明示的に指定します。 ストレージ アカウントの暗号化設定を更新するには、次の例に示すように az storage account update を呼び出します。 --encryption-key-source
パラメーターを含め、それを Microsoft.Keyvault
に設定して、アカウントのカスタマー マネージド キーを有効にします。
角かっこ内のプレースホルダー値を独自の値で置き換えてください。
accountName="<storage-account>"
keyVaultUri=$(az keyvault show \
--name $kvName \
--resource-group $rgName \
--query properties.vaultUri \
--output tsv)
keyVersion=$(az keyvault key list-versions \
--name $keyName \
--vault-name $kvName \
--query [-1].kid \
--output tsv | cut -d '/' -f 6)
# Use this form of the command with a user-assigned managed identity
az storage account update \
--name $accountName \
--resource-group $rgName \
--identity-type SystemAssigned,UserAssigned \
--user-identity-id $identityResourceId \
--encryption-key-name $keyName \
--encryption-key-version $keyVersion \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $keyVaultUri \
--key-vault-user-identity-id $identityResourceId
# Use this form of the command with a system-assigned managed identity
az storage account update \
--name $accountName \
--resource-group $rgName \
--encryption-key-name $keyName \
--encryption-key-version $keyVersion \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $keyVaultUri
キー バージョンを手動で更新する場合は、新しいバージョンを使用するようにストレージ アカウントの暗号化設定を更新する必要があります。 まず、az keyvault show を呼び出すことでキー コンテナーの URI を照会し、az keyvault key list-versions を呼び出すことでキーのバージョンを照会します。 次に、az storage account update を呼び出して、キーの新しいバージョンを使用するようにストレージ アカウントの暗号化設定を更新します (前の例を参照)。
キーを変更する
Azure Storage 暗号化に使用しているキーは、いつでも変更できます。
注意
キーまたはキー バージョンを変更すると、ルート暗号化キーの保護は変わりますが、Azure Storage アカウント内のデータは常に暗号化されたままです。 データを確実に保護するための追加のアクションは必要ありません。 キーを変更するかキー バージョンをローテーションしても、パフォーマンスには影響しません。 キーの変更かキー バージョンのローテーションに関連するダウンタイムはありません。
Azure portal でキーを変更するには、次の手順を実行します。
- お使いのストレージ アカウントに移動し、 [暗号化] の設定を表示します。
- キー コンテナーを選択し、新しいキーを選択します。
- 変更を保存します。
PowerShell を使用してキーを変更するには、Set-AzStorageAccount を呼び出して、新しいキーの名前とバージョンを指定します。 新しいキーが別のキー コンテナーにある場合は、キー コンテナー URI も更新する必要があります。
Azure CLI を使用してキーを変更するには、az storage account update を呼び出して、新しいキーの名前とバージョンを指定します。 新しいキーが別のキー コンテナーにある場合は、キー コンテナー URI も更新する必要があります。
新しいキーが別のキー コンテナーにある場合は、新しいコンテナー内のキーへのアクセス権をマネージド ID に付与する必要があります。 キー バージョンの手動更新を選択する場合は、キー コンテナーの URI を更新する必要もあります。
カスタマー マネージド キーを使用するストレージ アカウントへのアクセスを取り消す
カスタマー マネージド キーを使用しているストレージ アカウントへのアクセスを一時的に取り消すには、キー コンテナーで現在使用されているキーを無効にします。 キーの無効化と再有効化に関連するパフォーマンスへの影響やダウンタイムはありません。
キーが無効化されると、クライアントは BLOB またはそのメタデータとの間で行われる読み取りまたは書き込み操作を呼び出すことができません。 失敗する操作の詳細については、 カスタマー マネージド キーを使用するストレージ アカウントへのアクセスを取り消すを参照してください。
注意事項
キー コンテナーでキーを無効にすると、Azure Storage アカウント内のデータは暗号化されたままになりますが、キーを再度有効にするまでアクセスできなくなります。
Azure portal でカスタマー マネージド キーを無効にするには、以下の手順に従います。
キーを含むキー コンテナーに移動します。
[オブジェクト] で [キー] を選択します。
キーを右クリックし、[無効] を選択します。
PowerShell を使用してカスタマー マネージド キーを取り消すには、次の例に示すように、Update-AzKeyVaultKey コマンドを呼び出します。 必ず、角かっこ内のプレースホルダー値を、変数を定義する独自の値に置き換えるか、前の例で定義した変数を使用してください。
$kvName = "<key-vault-name>"
$keyName = "<key-name>"
$enabled = $false
# $false to disable the key / $true to enable it
# Check the current state of the key (before and after enabling/disabling it)
Get-AzKeyVaultKey -Name $keyName -VaultName $kvName
# Disable (or enable) the key
Update-AzKeyVaultKey -VaultName $kvName -Name $keyName -Enable $enabled
Azure CLI を使用してカスタマー マネージド キーを取り消すには、次の例に示すように、az keyvault key set-attributes コマンドを呼び出します。 必ず、角かっこ内のプレースホルダー値を、変数を定義する独自の値に置き換えるか、前の例で定義した変数を使用してください。
kvName="<key-vault-name>"
keyName="<key-name>"
enabled="false"
# "false" to disable the key / "true" to enable it:
# Check the current state of the key (before and after enabling/disabling it)
az keyvault key show \
--vault-name $kvName \
--name $keyName
# Disable (or enable) the key
az keyvault key set-attributes \
--vault-name $kvName \
--name $keyName \
--enabled $enabled
Microsoft マネージド キーに切り替える
Azure portal、PowerShell、または Azure CLI を使用して、カスタマー マネージド キーから Microsoft マネージド キーにいつでも戻すことができます。
Azure portal でカスタマー マネージド キーから Microsoft マネージド キーに戻すには、以下の手順に従います。
ストレージ アカウントに移動します。
[セキュリティとネットワーク] で、[暗号化] を選択します。
[暗号化の種類] を [Microsoft マネージド キー] に変更します。
PowerShell を使用してカスタマー マネージド キーから Microsoft マネージド キーに戻すには、次の例に示すように、-StorageEncryption
オプションを使用して Set-AzStorageAccount を呼び出します。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
Set-AzStorageAccount -ResourceGroupName $storageAccount.ResourceGroupName `
-AccountName $storageAccount.StorageAccountName `
-StorageEncryption
Azure CLI を使用してカスタマー マネージド キーから Microsoft マネージド キーに戻すには、次の例に示すように、az storage account update を呼び出して、--encryption-key-source parameter
を Microsoft.Storage
に設定します。 角かっこ内のプレースホルダー値を独自の値に置き換え、前の例で定義した変数を使用してください。
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--encryption-key-source Microsoft.Storage
次のステップ