Azure Storage は、保存されているストレージ アカウント内のすべてのデータを暗号化します。 デフォルトでは、キューストレージとテーブルストレージはサービスにスコープが割り当てられMicrosoftが管理するキーを使用します。 また、顧客管理キーを使ってキューやテーブルデータを暗号化することも可能です。 キューやテーブルを持つ顧客管理鍵を使用するには、まずサービスではなくアカウント自身にスコープを持つ暗号化鍵を使用するストレージアカウントを作成する必要があります。 キューやテーブルデータにアカウント暗号化鍵を使うアカウントを作成したら、そのストレージアカウントに対して顧客管理キーを設定することができます。
この記事では、そのアカウントにスコープが割り当てられたキーに依存するストレージアカウントの作成方法について説明します。 アカウント作成時、Microsoftはアカウントキーを使ってデータを暗号化し、Microsoftがキーを管理します。 その後、アカウントに顧客管理キーを設定し、自分の鍵を提供したり、鍵のバージョンを更新したり、鍵をローテーションしたり、アクセス制御を取り消したりできる利点を活用できます。
アカウントの暗号キーを使うアカウントを作成します
新しいストレージアカウントは、ストレージアカウントを作成する時点でキューやテーブルの暗号化キーを使用するように設定しなければなりません。 アカウント作成後は暗号化鍵の範囲を変更することはできません。
ストレージアカウントは汎用v2型でなければなりません。 ストレージアカウントを作成し、Azureポータル、PowerShell、Azure CLI、またはAzure Resource Managerテンプレートを使ってアカウントの暗号キーに依存するように設定できます。
ストレージアカウントの作成について詳しく知りたい方は、「 ストレージアカウントを作成する」をご覧ください。
注
ストレージアカウント作成時にアカウントの暗号化鍵でデータを暗号化するよう、オプションで設定できるのはキューおよびテーブルストレージのみです。 BlobストレージやAzure Filesは常にアカウントの暗号化キーを使ってデータを暗号化します。
Azureポータルでアカウントの暗号化キーに依存するストレージアカウントを作成するには、以下の手順に従ってください:
Azureポータルの上部にある検索ボックスで「ストレージアカウント」を検索して選択します。
[ ストレージ アカウント ] ページで、[ 新規] を選択します。
「基本」タブの欄を埋めてください。
「Advanced」タブで「 Tables and Queues 」セクションを見つけ、「 顧客管理キーのサポートを有効にする」を選択してください。
PowerShellを使ってアカウントの暗号化キーに依存するストレージアカウントを作成するには、Azure PowerShellモジュール(バージョン3.4.0以降)をインストールしていることを確認してください。 詳細については、「 Azure PowerShell モジュールのインストール」を参照してください。
次に、適切なパラメータで New-AzStorageAccount コマンドを呼び出して汎用v2ストレージアカウントを作成します。
-
-EncryptionKeyTypeForQueueオプションを含め、その値をAccountに設定して、Queueストレージ内のデータを暗号化するためにアカウントの暗号キーを使用します。
-
-EncryptionKeyTypeForTableオプションを含め、その値をAccountに設定して、テーブルストレージ内のデータを暗号化するためにアカウントの暗号キーを使用します。
以下の例は、読み取りアクセスの地理的冗長ストレージ(RA-GRS)を設定し、アカウントの暗号鍵を使ってキューとテーブルの両方のデータを暗号化する汎用v2ストレージアカウントの作成方法を示しています。 かっこ内のプレースホルダー値を独自の値に置き換えることを忘れないでください。
New-AzStorageAccount -ResourceGroupName <resource_group> `
-AccountName <storage-account> `
-Location <location> `
-SkuName "Standard_RAGRS" `
-Kind StorageV2 `
-EncryptionKeyTypeForTable Account `
-EncryptionKeyTypeForQueue Account
Azure CLIを使ってアカウントの暗号キーに依存するストレージアカウントを作成するには、Azure CLI バージョン2.0.80以降をインストールしていることを確認してください。 詳細については、「 Azure CLI のインストール」を参照してください。
次に、適切なパラメータで az storage account create コマンドを呼び出して汎用v2ストレージアカウントを作成します:
-
--encryption-key-type-for-queueオプションを含め、その値をAccountに設定して、Queueストレージ内のデータを暗号化するためにアカウントの暗号キーを使用します。
-
--encryption-key-type-for-tableオプションを含め、その値をAccountに設定して、テーブルストレージ内のデータを暗号化するためにアカウントの暗号キーを使用します。
以下の例は、読み取りアクセスの地理的冗長ストレージ(RA-GRS)を設定し、アカウントの暗号鍵を使ってキューとテーブルの両方のデータを暗号化する汎用v2ストレージアカウントの作成方法を示しています。 かっこ内のプレースホルダー値を独自の値に置き換えることを忘れないでください。
az storage account create \
--name <storage-account> \
--resource-group <resource-group> \
--location <location> \
--sku Standard_RAGRS \
--kind StorageV2 \
--encryption-key-type-for-table Account \
--encryption-key-type-for-queue Account
以下のJSON例は、読み取りアクセスの地理冗長ストレージ(RA-GRS)を設定し、アカウントの暗号化キーを使ってキューとテーブルの両方のデータを暗号化する汎用v2ストレージアカウントを作成します。 角括弧内のプレースホルダー値は自分の値に置き換えるのを忘れないでください:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('<storage-account>')]",
"location": "[parameters('<location>')]",
"dependsOn": [],
"tags": {},
"sku": {
"name": "[parameters('Standard_RAGRS')]"
},
"kind": "[parameters('StorageV2')]",
"properties": {
"accessTier": "[parameters('<accessTier>')]",
"supportsHttpsTrafficOnly": "[parameters('supportsHttpsTrafficOnly')]",
"largeFileSharesState": "[parameters('<largeFileSharesState>')]",
"encryption": {
"services": {
"queue": {
"keyType": "Account"
},
"table": {
"keyType": "Account"
}
},
"keySource": "Microsoft.Storage"
}
}
}
],
アカウントの暗号化キーに依存するアカウントを作成したら、顧客管理キーを設定し、Azure Key VaultやKey Vault管理ハードウェアセキュリティモデル(HSM)に保存できます。 顧客管理鍵をキーボールトに保存する方法を学びたい方は、「Azure Key Vaultに保存された顧客管理鍵で暗号化を設定する」をご覧ください。 管理型HSMに顧客管理鍵を保存する方法については、「Azure Key Vault Managed HSMに保存された顧客管理鍵で暗号化を設定する」をご覧ください。
アカウントの暗号化キーを検証してください
アカウントを作成した後、Azureポータル、PowerShell、またはAzure CLIを使って、ストレージアカウントがそのアカウントにスコープを持つ暗号化鍵を使用しているかを確認できます。
ストレージアカウント内のサービスがAzureポータルのアカウントにスコープされた暗号化鍵を使用していることを確認するには、以下の手順に従ってください。
Azure portal で新しいストレージ アカウントに移動します。
セキュリティ+ネットワークのセクションで「暗号化」を選択してください。
ストレージアカウントがアカウントの暗号化キーに依存するように作成されている場合、暗号化タブで顧客管理キーを4つのAzure Storageサービス(ブロブ、ファイル、テーブル、キュー)すべてで有効化できることがわかります。
ストレージアカウント内のサービスがPowerShellで暗号化キーを使用していることを確認するには、 Get-AzStorageAccount コマンドを呼び出してください。 このコマンドはストレージアカウントのプロパティとその値を返します。
Encryptionプロパティ内の各サービスのKeyTypeフィールドを探し、Accountに設定されているか確認してください。
$account = Get-AzStorageAccount -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account>
$account.Encryption.Services.Queue
$account.Encryption.Services.Table
ストレージアカウント内のサービスがAzure CLIでアカウント暗号化キーを使用しているか確認するには、az storage account showコマンドを呼び出してください。 このコマンドはストレージアカウントのプロパティとその値を返します。 暗号化プロパティ内の各サービスの keyType フィールドを探し、 Accountに設定されているか確認してください。
az storage account show \
--name <storage-account> \
--resource-group <resource-group>
ストレージアカウントがそのアカウントにスコープされた暗号化キーを使用していることを確認した後、そのアカウントに対して顧客管理キーを有効にすることができます。 Azure Storageの4つのサービス—ブロブ、ファイル、テーブル、キュー—は、顧客管理の鍵を使って暗号化を行います。
価格と請求
そのアカウントに限定された暗号鍵を使用するために作成されたストレージアカウントは、デフォルトのサービススコープキーを使用するアカウントとは異なる料金でテーブルストレージ容量やトランザクションの料金が請求されます。 詳細については、Azure Table Storage の価格設定をご覧ください。
次のステップ