データの二重暗号化のためのインフラストラクチャ暗号化を有効にする
- [アーティクル]
-
-
Azure Storage は、利用できる最強のブロック暗号の 1 つである 256 ビット AES と GCM モードの暗号化を使って、サービス レベルでストレージ アカウント内のすべてのデータを自動的に暗号化し、FIPS 140-2 に準拠しています。 さらに高いレベルでのデータのセキュリティ保護が必要なお客様は、二重暗号化のために Azure Storage インフラストラクチャ レベルで 256 ビット AES と CBC の暗号化を有効にすることもできます。 Azure Storage のデータを二重に暗号化することで、暗号化アルゴリズムやキーの 1 つが漏洩した場合に備えます。 このシナリオでは、追加の暗号化レイヤーによって引き続きデータが保護されます。
インフラストラクチャ暗号化は、ストレージ アカウント全体、またはアカウント内の暗号化スコープに対して有効にできます。 ストレージ アカウントまたは暗号化スコープに対してインフラストラクチャ暗号化が有効になっている場合、データは、2 つの異なる暗号化アルゴリズムと 2 つの異なるキーを使用して、2 回 (サービス レベルで 1 回、インフラストラクチャ レベルで 1 回) 暗号化されます。
サービスレベルの暗号化は、Azure Key Vault または Key Vault Managed Hardware Security Model (HSM) での Microsoft マネージド キーまたはカスタマーマネージド キーの使用をサポートしています。 インフラストラクチャレベルの暗号化は Microsoft マネージド キーに依存し、常に別のキーが使用されます。 Azure Storage 暗号化によるキー管理の詳細については、「暗号化キーの管理について」を参照してください。
データを二重に暗号化するには、インフラストラクチャ暗号化用に構成されたストレージ アカウントまたは暗号化スコープを最初に作成する必要があります。 この記事では、インフラストラクチャ暗号化を有効にする方法について説明します。
重要
インフラストラクチャの暗号化は、コンプライアンス要件のためにデータを二重に暗号化する必要があるシナリオの場合にお勧めします。 その他のほとんどのシナリオでは、Azure Storage の暗号化に十分に強力な暗号化アルゴリズムが用意されているので、インフラストラクチャの暗号化を使う利点はほとんどありません。
インフラストラクチャ暗号化を有効にしてアカウントを作成する
ストレージ アカウントに対してインフラストラクチャ暗号化を有効にするには、アカウントの作成時にインフラストラクチャ暗号化を使用するようにストレージ アカウントを構成する必要があります。 アカウントの作成後にインフラストラクチャ暗号化を有効または無効にすることはできません。 ストレージ アカウントは、汎用 v2、Premium ブロック BLOB、Premium ページ BLOB、または Premium ファイル共有の種類である必要があります。
Azure portal を使用してインフラストラクチャ暗号化が有効なストレージ アカウントを作成するには、これらの手順を実行します。
Azure portal で、 [ストレージ アカウント] ページに移動します。
[追加] ボタンを選択して、新しい汎用 v2、Premium ブロック BLOB、Premium ページ BLOB、または Premium ファイル共有アカウントを追加します。
[暗号化] タブで、[インフラストラクチャ暗号化の有効化] を見つけて、[有効] を選びます。
[確認と作成] を選択し、ストレージ アカウントの作成を完了します。
Azure portal でストレージ アカウントのインフラストラクチャ暗号化が有効なことを確認するには、次の手順を実行します。
Azure Portal のストレージ アカウントに移動します。
[セキュリティとネットワーク]で、[暗号化]を選択してください。
PowerShell を使用してインフラストラクチャ暗号化を有効にしたストレージ アカウントを作成するには、Az.Storage PowerShell モジュール バージョン 2.2.0 以降がインストールされていることを確認します。 詳しくは、Azure PowerShell のインストールに関する記事をご覧ください。
次に、New-AzStorageAccount コマンドを呼び出して、汎用 v2、Premium ブロック BLOB、Premium ページ BLOB、または Premium ファイル共有ストレージ アカウントを作成します。 インフラストラクチャ暗号化を有効にするには、-RequireInfrastructureEncryption
オプションを含めます。
次の例は、読み取りアクセス geo 冗長ストレージ (RA-GRS) 用に構成され、データの二重暗号化のためにインフラストラクチャ暗号化が有効な汎用 v2 ストレージ アカウントを作成する方法を示しています。 かっこ内のプレースホルダー値を独自の値に置き換えることを忘れないでください。
New-AzStorageAccount -ResourceGroupName <resource_group> `
-AccountName <storage-account> `
-Location <location> `
-SkuName "Standard_RAGRS" `
-Kind StorageV2 `
-AllowBlobPublicAccess $false `
-RequireInfrastructureEncryption
ストレージ アカウントでインフラストラクチャ暗号化が有効なことを確認するには、Get-AzStorageAccount コマンドを呼び出します。 このコマンドによって、ストレージ アカウントのプロパティとその値のセットが返されます。 Encryption
プロパティ内の RequireInfrastructureEncryption
フィールドを取得し、それが True
に設定されていることを確認します。
次の例では、RequireInfrastructureEncryption
プロパティの値を取得します。 山かっこ内のプレースホルダー値は、実際の値に置き換えてください。
$account = Get-AzStorageAccount -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account>
$account.Encryption.RequireInfrastructureEncryption
Azure CLI を使用して、インフラストラクチャ暗号化が有効なストレージ アカウントを作成するには、Azure CLI バージョン 2.8.0 以降がインストールされていることを確認します。 詳細については、「 Azure CLI のインストール」を参照してください。
次に、az storage account create コマンドを呼び出して、汎用 v2、Premium ブロック BLOB、Premium ページ BLOB、または Premium ファイル共有アカウントを作成し、インフラストラクチャの暗号化を有効にする --require-infrastructure-encryption option
を含めます。
次の例は、読み取りアクセス geo 冗長ストレージ (RA-GRS) 用に構成され、データの二重暗号化のためにインフラストラクチャ暗号化が有効な汎用 v2 ストレージ アカウントを作成する方法を示しています。 かっこ内のプレースホルダー値を独自の値に置き換えることを忘れないでください。
az storage account create \
--name <storage-account> \
--resource-group <resource-group> \
--location <location> \
--sku Standard_RAGRS \
--kind StorageV2 \
--allow-blob-public-access false \
--require-infrastructure-encryption
ストレージ アカウントでインフラストラクチャ暗号化が有効なことを確認するには、az storage account show コマンドを呼び出します。 このコマンドによって、ストレージ アカウントのプロパティとその値のセットが返されます。 encryption
プロパティ内の requireInfrastructureEncryption
フィールドを探し、それが true
に設定されていることを確認します。
次の例では、requireInfrastructureEncryption
プロパティの値を取得します。 山かっこ内のプレースホルダー値は、実際の値に置き換えてください。
az storage account show /
--name <storage-account> /
--resource-group <resource-group>
次の JSON の例では、読み取りアクセス geo 冗長ストレージ (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": {
"keySource": "Microsoft.Storage",
"requireInfrastructureEncryption": true,
"services": {
"blob": { "enabled": true },
"file": { "enabled": true }
}
}
}
}
],
Azure Policy には、ストレージ アカウントに対してインフラストラクチャの暗号化を有効にすることを要求する組み込みポリシーが用意されています。 詳細については、「Azure Policy の組み込みポリシー定義」の「ストレージ」セクションを参照してください。
インフラストラクチャ暗号化を有効にして暗号化スコープを作成する
アカウントに対してインフラストラクチャ暗号化が有効になっている場合、そのアカウントで作成された暗号化スコープでは、インフラストラクチャ暗号化が自動的に使用されます。 アカウント レベルでインフラストラクチャ暗号化が有効になっていない場合、暗号化スコープ作成時にそのスコープに対してそれを有効にするオプションがあります。 暗号化スコープに対するインフラストラクチャ暗号化の設定は、スコープ作成後には変更できません。 詳細については、「暗号化スコープの作成」を参照してください。
次のステップ