保存データに対する Azure Storage 暗号化Azure Storage encryption for data at rest

Azure Storage では、データはクラウドに永続化されるときに自動的に暗号化されます。Azure Storage automatically encrypts your data when it is persisted it to the cloud. Azure Storage 暗号化によってデータは保護され、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。Azure Storage encryption protects your data and to help you to meet your organizational security and compliance commitments.

Azure Storage 暗号化についてAbout Azure Storage encryption

Azure Storage 内のデータは、利用可能な最強のブロック暗号の 1 つである 256 ビット AES 暗号化を使って透過的に暗号化および暗号化解除され、FIPS 140-2 に準拠しています。Data in Azure Storage is encrypted and decrypted transparently using 256-bit AES encryption, one of the strongest block ciphers available, and is FIPS 140-2 compliant. Azure Storage 暗号化は、Windows での BitLocker 暗号化に似ています。Azure Storage encryption is similar to BitLocker encryption on Windows.

Azure Storage 暗号化は、Resource Manager と従来のストレージ アカウントの両方を含む、すべての新しいストレージ アカウントで有効になります。Azure Storage encryption is enabled for all new storage accounts, including both Resource Manager and classic storage accounts. Azure Storage 暗号化を無効にすることはできません。Azure Storage encryption cannot be disabled. データは既定で保護されるので、Azure Storage 暗号化を利用するために、コードまたはアプリケーションを変更する必要はありません。Because your data is secured by default, you don't need to modify your code or applications to take advantage of Azure Storage encryption.

ストレージ アカウントは、そのパフォーマンス レベル (Standard または Premium) またはデプロイ モデル (Azure Resource Manager またはクラシック) に関係なく、暗号化されます。Storage accounts are encrypted regardless of their performance tier (standard or premium) or deployment model (Azure Resource Manager or classic). Azure Storage のすべての冗長性オプションで暗号化がサポートされており、ストレージ アカウントのすべてのコピーが暗号化されます。All Azure Storage redundancy options support encryption, and all copies of a storage account are encrypted. BLOB、ディスク、ファイル、キュー、テーブルなど、すべての Azure Storage リソースが暗号化されます。All Azure Storage resources are encrypted, including blobs, disks, files, queues, and tables. すべてのオブジェクト メタデータも暗号化されます。All object metadata is also encrypted.

暗号化により、Azure Storage のパフォーマンスが影響を受けることはありません。Encryption does not affect Azure Storage performance. Azure Storage 暗号化に対する追加コストはありません。There is no additional cost for Azure Storage encryption.

2017 年 10 月 20 日より後に Azure Storage に書き込まれたすべてのブロック BLOB、追加 BLOB、またはページ BLOB は暗号化されます。Every block blob, append blob, or page blob that was written to Azure Storage after October 20, 2017 is encrypted. この日付より前に作成された BLOB は、引き続きバックグラウンド プロセスによって暗号化されます。Blobs created prior to this date continue to be encrypted by a background process. 2017 年 10 月 20 日より前に作成された BLOB を強制的に暗号化するには、BLOB を書き換えることができます。To force the encryption of a blob that was created before October 20, 2017, you can rewrite the blob. BLOB の暗号化状態を確認する方法については、「BLOB の暗号化状態を確認する」を参照してください。To learn how to check the encryption status of a blob, see Check the encryption status of a blob.

Azure Storage 暗号化の基になっている暗号化モジュールについて詳しくは、「Cryptography API: Next Generation (暗号化 API: 次世代)」を参照してください。For more information about the cryptographic modules underlying Azure Storage encryption, see Cryptography API: Next Generation.

暗号化キーの管理についてAbout encryption key management

Microsoft のマネージド キーを利用してストレージ アカウントを暗号化することも、独自のキーで暗号化を管理することもできます。You can rely on Microsoft-managed keys for the encryption of your storage account, or you can manage encryption with your own keys. 独自のキーで暗号化を管理する場合は、次の 2 つのオプションがあります。If you choose to manage encryption with your own keys, you have two options:

  • Azure Key Vault では、BLOB ストレージや Azure Files 内のデータの暗号化とその解除のために使用する、"カスタマー マネージド キー" を指定できます。1、2You can specify a customer-managed key with Azure Key Vault to use for encrypting and decrypting data in Blob storage and in Azure Files.1,2
  • BLOB ストレージの操作では、"カスタマー指定のキー" を指定できます。You can specify a customer-provided key on Blob storage operations. BLOB ストレージ に対して読み取りまたは書き込み要求を行うクライアントは、BLOB データの暗号化と暗号化解除の方法を細かく制御するために、要求に暗号化キーを含めることができます。A client making a read or write request against Blob storage can include an encryption key on the request for granular control over how blob data is encrypted and decrypted.

次の表では、Azure Storage 暗号化のキー管理オプションを比較しています。The following table compares key management options for Azure Storage encryption.

Microsoft のマネージド キーMicrosoft-managed keys カスタマー マネージド キーCustomer-managed keys カスタマー指定のキーCustomer-provided keys
暗号化/暗号化解除の操作Encryption/decryption operations AzureAzure AzureAzure AzureAzure
サポートされている Azure Storage サービスAzure Storage services supported AllAll BLOB ストレージ、Azure Files1、2Blob storage, Azure Files1,2 BLOB ストレージBlob storage
キー記憶域Key storage Microsoft キー ストアMicrosoft key store Azure Key VaultAzure Key Vault Azure Key Vault またはその他のキー ストアAzure Key Vault or any other key store
キーのローテーションの責任Key rotation responsibility MicrosoftMicrosoft CustomerCustomer CustomerCustomer
キー使用法Key usage MicrosoftMicrosoft Azure portal、Storage Resource Provider REST API、Azure Storage 管理ライブラリ、PowerShell、CLIAzure portal, Storage Resource Provider REST API, Azure Storage management libraries, PowerShell, CLI Azure Storage REST API (BLOB ストレージ)、Azure Storage クライアント ライブラリAzure Storage REST API (Blob storage), Azure Storage client libraries
キーへのアクセスKey access Microsoft のみMicrosoft only Microsoft、顧客Microsoft, Customer 顧客のみCustomer only

1 Queue storage でのカスタマー マネージド キーの使用をサポートするアカウントの作成については、キューのカスタマー マネージド キーをサポートするアカウントの作成に関するページを参照してください。1 For information about creating an account that supports using customer-managed keys with Queue storage, see Create an account that supports customer-managed keys for queues.
2 Table Storage でのカスタマー マネージド キーの使用をサポートするアカウントの作成については、テーブルのカスタマー マネージド キーをサポートするアカウントの作成に関するページを参照してください。2 For information about creating an account that supports using customer-managed keys with Table storage, see Create an account that supports customer-managed keys for tables.

以降のセクションでは、キー管理の各オプションについてさらに詳しく説明します。The following sections describe each of the options for key management in greater detail.

Microsoft のマネージド キーMicrosoft-managed keys

既定では、ストレージ アカウントには Microsoft のマネージド暗号化キーが使われます。By default, your storage account uses Microsoft-managed encryption keys. ストレージ アカウントの暗号化の設定は、次の図のように、Azure portal[暗号化] セクションで確認できます。You can see the encryption settings for your storage account in the Encryption section of the Azure portal, as shown in the following image.

Microsoft のマネージド キーで暗号化されたアカウントを表示する

Azure Key Vault でのカスタマー マネージド キーCustomer-managed keys with Azure Key Vault

独自のキーを使用して、ストレージ アカウントのレベルで Azure Storage 暗号化を管理できます。You can manage Azure Storage encryption at the level of the storage account with your own keys. ストレージ アカウントのレベルでカスタマー マネージド キーを指定すると、そのキーはストレージ アカウントのルート暗号化キーのアクセスを保護および制御するために使用され、ルート暗号化キーはすべての BLOB とファイルのデータを暗号化および暗号化解除するために使用されます。When you specify a customer-managed key at the level of the storage account, that key is used to protect and control access the root encryption key for the storage account which in turn is used to encrypt and decrypt all blob and file data. カスタマー マネージド キーを使用すると、アクセス制御の作成、ローテーション、無効化、取り消しを、いっそう柔軟に行うことができます。Customer-managed keys offer greater flexibility to create, rotate, disable, and revoke access controls. また、データを保護するために使われる暗号化キーを監査することもできます。You can also audit the encryption keys used to protect your data.

カスタマー マネージド キーを格納するには、Azure Key Vault を使用する必要があります。You must use Azure Key Vault to store your customer-managed keys. 独自のキーを作成してキー コンテナーに格納することも、Azure Key Vault API を使ってキーを生成することもできます。You can either create your own keys and store them in a key vault, or you can use the Azure Key Vault APIs to generate keys. ストレージ アカウントとキー コンテナーは同じリージョンで同じ Azure Active Directory (Azure AD) テナント内に存在する必要がありますが、サブスクリプションは異なっていてもかまいません。The storage account and the key vault must be in the same region and in the same Azure Active Directory (Azure AD) tenant, but they can be in different subscriptions. Azure Key Vault の詳細については、「Azure Key Vault とは」をご覧ください。For more information about Azure Key Vault, see What is Azure Key Vault?.

次の図は、Azure Storage で Azure Active Directory と Azure Key Vault を使用して、カスタマー マネージド キーを使って要求を行う方法を示しています。This diagram shows how Azure Storage uses Azure Active Directory and Azure Key Vault to make requests using the customer-managed key:

Azure Storage でのカスタマー マネージド キーのしくみを示す図

次の一覧では、図の番号付きの手順について説明します。The following list explains the numbered steps in the diagram:

  1. Azure Key Vault 管理者が、ストレージ アカウントに関連付けられているマネージド ID に暗号化キーへのアクセス許可を付与します。An Azure Key Vault admin grants permissions to encryption keys to the managed identity that's associated with the storage account.
  2. Azure Storage 管理者が、ストレージ アカウントのカスタマー マネージド キーを使用して暗号化を構成します。An Azure Storage admin configures encryption with a customer-managed key for the storage account.
  3. Azure Storage は、ストレージ アカウントに関連付けられているマネージド ID を使用して、Azure Active Directory 経由で Azure Key Vault へのアクセスを認証します。Azure Storage uses the managed identity that's associated with the storage account to authenticate access to Azure Key Vault via Azure Active Directory.
  4. Azure Storage は、Azure Key Vault のカスタマー キーを使用してアカウント暗号化キーをラップします。Azure Storage wraps the account encryption key with the customer key in Azure Key Vault.
  5. 読み取り/書き込み操作の場合、Azure Storage は Azure Key Vault に要求を送信して、暗号化と暗号化解除の操作を実行するためにアカウント暗号化キーをラップおよびラップ解除します。For read/write operations, Azure Storage sends requests to Azure Key Vault to wrap and unwrap the account encryption key to perform encryption and decryption operations.

ストレージ アカウントのカスタマー マネージド キーを有効にするEnable customer-managed keys for a storage account

ストレージ アカウントのカスタマー マネージド キーを使用した暗号化を有効にすると、Azure Storage は、関連するキー コンテナーのカスタマー マネージド キーを使用してアカウント暗号化キーをラップします。When you enable encryption with customer-managed keys for a storage account, Azure Storage wraps the account encryption key with the customer-managed key in the associated key vault. カスタマー マネージド キーを有効にしてもパフォーマンスに影響はなく、アカウントは新しいキーですぐに暗号化され、時間の遅延は発生しません。Enabling customer-managed keys does not impact performance, and the account is encrypted with the new key immediately, without any time delay.

新しいストレージ アカウントは、常に Microsoft のマネージド キーを使用して暗号化されます。A new storage account is always encrypted using Microsoft-managed keys. アカウントの作成時にカスタマー マネージド キーを有効にすることはできません。It's not possible to enable customer-managed keys at the time that the account is created. カスタマー マネージド キーは Azure Key Vault に格納されます。この Key Vault には、ストレージ アカウントに関連するマネージド ID にキーのアクセス許可を付与するアクセス ポリシーをプロビジョニングする必要があります。Customer-managed keys are stored in Azure Key Vault, and the key vault must be provisioned with access policies that grant key permissions to the managed identity that is associated with the storage account. マネージド ID は、ストレージ アカウントが作成された後でのみ使用できます。The managed identity is available only after the storage account is created.

カスタマー マネージド キーの有効化または無効化、キーのバージョンの更新、または別のキーの指定によって、Azure Storage の暗号化に使用されるキーを変更すると、ルート キーの暗号化は変わりますが、Azure ストレージ アカウントのデータを再暗号化する必要はありません。When you modify the key being used for Azure Storage encryption by enabling or disabling customer-managed keys, updating the key version, or specifying a different key, then the encryption of the root key changes, but the data in your Azure Storage account does not need to be re-encrypted.

Azure Storage 暗号化用に Azure Key Vault でカスタマー マネージド キーを使用する方法については、次のいずれかの記事を参照してください。To learn how to use customer-managed keys with Azure Key Vault for Azure Storage encryption, see one of these articles:

重要

カスタマー マネージド キーは、Azure AD の 1 つの機能である、Azure リソース用マネージド ID に依存します。Customer-managed keys rely on managed identities for Azure resources, a feature of Azure AD. マネージド ID は現在、クロスディレクトリ シナリオをサポートしていません。Managed identities do not currently support cross-directory scenarios. Azure portal でカスタマー マネージド キーを構成すると、内部でマネージド ID がストレージ アカウントに自動的に割り当てられます。When you configure customer-managed keys in the Azure portal, a managed identity is automatically assigned to your storage account under the covers. その後、サブスクリプション、リソース グループ、またはストレージ アカウントを 1 つの Azure AD ディレクトリから別のディレクトリに移動した場合、そのストレージ アカウントに関連付けられているマネージド ID は新しいテナントに転送されないため、カスタマー マネージド キーが機能しなくなることがあります。If you subsequently move the subscription, resource group, or storage account from one Azure AD directory to another, the managed identity associated with the storage account is not transferred to the new tenant, so customer-managed keys may no longer work. 詳細については、「Azure リソース用マネージド ID に関する FAQ と既知の問題」の中の「Azure AD ディレクトリ間のサブスクリプションの転送」を参照してください。For more information, see Transferring a subscription between Azure AD directories in FAQs and known issues with managed identities for Azure resources.

Azure Key Vault にカスタマー マネージド キーを格納するStore customer-managed keys in Azure Key Vault

ストレージ アカウントでカスタマー マネージド キーを有効にするには、Azure Key Vault を使用してキーを格納する必要があります。To enable customer-managed keys on a storage account, you must use an Azure Key Vault to store your keys. Key Vault で [論理的な削除][Do Not Purge](消去しない) の両方のプロパティを有効にする必要があります。You must enable both the Soft Delete and Do Not Purge properties on the key vault.

Azure Storage 暗号化では、サイズが 2048 の RSA キーのみがサポートされています。Only RSA keys of size 2048 are supported with Azure Storage encryption. キーの詳細については、「Azure Key Vault のキー、シークレット、証明書について」の「Key Vault のキー」を参照してください。For more information about keys, see Key Vault keys in About Azure Key Vault keys, secrets and certificates.

カスタマー マネージド キーをローテーションするRotate customer-managed keys

Azure Key Vault のカスタマー マネージド キーは、お使いのコンプライアンス ポリシーに従ってローテーションすることができます。You can rotate a customer-managed key in Azure Key Vault according to your compliance policies. キーをローテーションするときは、新しいキー URI を使用するようにストレージ アカウントを更新する必要があります。When the key is rotated, you must update the storage account to use the new key URI. Azure portal で新しいバージョンのキーを使用するようにストレージ アカウントを更新する方法については、「Azure ポータルを使用して、Azure Storage 用にカスタマー マネージド キーを構成する」の「キーのバージョンを更新する」というタイトルのセクションを参照してください。To learn how to update the storage account to use a new version of the key in the Azure portal, see the section titled Update the key version in Configure customer-managed keys for Azure Storage by using the Azure portal.

キーをローテーションしても、ストレージ アカウントのデータの再暗号化はトリガーされません。Rotating the key does not trigger re-encryption of data in the storage account. ユーザーがこれ以上操作を行う必要はありません。There is no further action required from the user.

カスタマー マネージド キーへのアクセス権を取り消すRevoke access to customer-managed keys

カスタマー マネージド キーへのアクセス権を取り消すには、PowerShell または Azure CLI を使用します。To revoke access to customer-managed keys, use PowerShell or Azure CLI. 詳細については、Azure Key Vault PowerShell に関する記事、または Azure Key Vault CLI に関する記事を参照してください。For more information, see Azure Key Vault PowerShell or Azure Key Vault CLI. アクセスを取り消すと、Azure Storage が暗号化キーにアクセスできなくなるため、ストレージ アカウント内の全データへのアクセスが事実上ブロックされます。Revoking access effectively blocks access to all data in the storage account, as the encryption key is inaccessible by Azure Storage.

Azure マネージド ディスク用のカスタマー マネージド キー (プレビュー)Customer-managed keys for Azure managed disks (preview)

カスタマー マネージド キーは、Azure マネージド ディスクの暗号化の管理にも使用できます (プレビュー)。Customer-managed keys are also available for managing encryption of Azure managed disks (preview). マネージド ディスクに対するカスタマー マネージド キーの動作は、Azure Storage リソースに対する動作とは異なります。Customer-managed keys behave differently for managed disks than for Azure Storage resources. 詳細については、Windows の場合は「Azure Managed Disks のサーバー側暗号化」を参照するか、Linux の場合は「Azure Managed Disks のサーバー側暗号化」を参照してください。For more information, see Server side encryption of Azure managed disks for Windows or Server side encryption of Azure managed disks for Linux.

カスタマー指定のキー (プレビュー)Customer-provided keys (preview)

Azure BLOB ストレージに対して要求を行うクライアントには、個々の要求に対して暗号化キーを指定するオプションがあります。Clients making requests against Azure Blob storage have the option to provide an encryption key on an individual request. 要求に暗号化キーを含めると、BLOB ストレージ操作の暗号化設定をきめ細かく制御できます。Including the encryption key on the request provides granular control over encryption settings for Blob storage operations. カスタマー指定のキー (プレビュー) は、Azure Key Vault または別のキー ストアに格納できます。Customer-provided keys (preview) can be stored in Azure Key Vault or in another key store.

BLOB ストレージへの要求時にカスタマー指定のキーを指定する方法の例については、「.NET での BLOB ストレージの要求時にカスタマー指定のキーを指定する」を参照してください。For an example that shows how to specify a customer-provided key on a request to Blob storage, see Specify a customer-provided key on a request to Blob storage with .NET.

読み取り操作と書き込み操作の暗号化Encrypting read and write operations

クライアント アプリケーションが要求に対して暗号化キーを指定すると、Azure Storage は BLOB データの読み取りおよび書き込み中に暗号化と暗号化解除を透過的に実行します。When a client application provides an encryption key on the request, Azure Storage performs encryption and decryption transparently while reading and writing blob data. Azure Storage は、暗号化キーの SHA-256 ハッシュを BLOB の内容と共に書き込みます。Azure Storage writes an SHA-256 hash of the encryption key alongside the blob's contents. このハッシュを使用して、BLOB に対する後続のすべての操作で同じ暗号化キーが使用されているか確認されます。The hash is used to verify that all subsequent operations against the blob use the same encryption key.

Azure Storage は、クライアントが要求と共に送信する暗号化キーの格納も管理も行いません。Azure Storage does not store or manage the encryption key that the client sends with the request. 暗号化または暗号化解除のプロセスが完了するとすぐに、キーは安全に破棄されます。The key is securely discarded as soon as the encryption or decryption process is complete.

クライアントがカスタマー指定のキーを使用して BLOB を作成または更新した場合は、その BLOB に対する以降の読み取り要求と書き込み要求でもそのキーを指定する必要があります。When a client creates or updates a blob using a customer-provided key, then subsequent read and write requests for that blob must also provide the key. カスタマー指定のキーで既に暗号化されている BLOB の要求にキーが指定されていない場合、要求はエラーコード 409 (競合) で失敗します。If the key is not provided on a request for a blob that has already been encrypted with a customer-provided key, then the request fails with error code 409 (Conflict).

クライアント アプリケーションが要求で暗号化キーを送信し、ストレージ アカウントも Microsoft のマネージド キーまたはカスタマー マネージド キーを使用して暗号化されている場合、Azure Storage は、要求で指定されたキーを暗号化と暗号化解除に使用します。If the client application sends an encryption key on the request, and the storage account is also encrypted using a Microsoft-managed key or a customer-managed key, then Azure Storage uses the key provided on the request for encryption and decryption.

暗号化キーを要求の一部として送信するために、クライアントは HTTPS を使用して Azure Storage へのセキュリティで保護された接続を確立する必要があります。To send the encryption key as part of the request, a client must establish a secure connection to Azure Storage using HTTPS.

各 BLOB スナップショットには、独自の暗号化キーを保持できます。Each blob snapshot can have its own encryption key.

カスタマー指定のキーを指定するための要求ヘッダーRequest headers for specifying customer-provided keys

REST 呼び出しの場合、クライアントは次のヘッダーを使用して、要求の暗号化キー情報を BLOB ストレージに安全に渡すことができます。For REST calls, clients can use the following headers to securely pass encryption key information on a request to Blob storage:

要求ヘッダーRequest Header 説明Description
x-ms-encryption-key 書き込み要求と読み取り要求の両方に必要です。Required for both write and read requests. Base64 でエンコードされた AES-256 暗号化キー値です。A Base64-encoded AES-256 encryption key value.
x-ms-encryption-key-sha256 書き込み要求と読み取り要求の両方に必要です。Required for both write and read requests. 暗号化キーの Base64 でエンコードされた SHA256 です。The Base64-encoded SHA256 of the encryption key.
x-ms-encryption-algorithm 書き込み要求の場合は必須、読み取り要求の場合は省略可能です。Required for write requests, optional for read requests. 指定されたキーを使用してデータを暗号化するときに使用するアルゴリズムを指定します。Specifies the algorithm to use when encrypting data using the given key. AES256 である必要があります。Must be AES256.

要求に対する暗号化キーの指定は省略できます。Specifying encryption keys on the request is optional. ただし、上記のいずれかのヘッダーを書き込み操作に指定する場合は、それらのすべてを指定する必要があります。However, if you specify one of the headers listed above for a write operation, then you must specify all of them.

カスタマー指定のキーをサポートしている BLOB ストレージ操作Blob storage operations supporting customer-provided keys

次の BLOB ストレージ操作では、要求でカスタマー指定の暗号化キーを送信することをサポートしています。The following Blob storage operations support sending customer-provided encryption keys on a request:

カスタマー指定のキーのローテーションRotate customer-provided keys

要求で渡される暗号化キーをローテーションするには、BLOB をダウンロードし、新しい暗号化キーを使用して再アップロードします。To rotate an encryption key passed on the request, download the blob and re-upload it with the new encryption key.

重要

Azure portal を使用して、要求で指定されたキーで暗号化されたコンテナーまたは BLOB への読み取りおよび書き込みを行うことはできません。The Azure portal cannot be used to read from or write to a container or blob that is encrypted with a key provided on the request.

BLOB ストレージに対する要求で指定した暗号化キーは、Azure Key Vault などのセキュリティで保護されたキー ストア内で必ず保護してください。Be sure to protect the encryption key that you provide on a request to Blob storage in a secure key store like Azure Key Vault. 暗号化キーを使用せずにコンテナーまたは BLOB に対して書き込み操作を試みると、操作は失敗し、そのオブジェクトにアクセスできなくなります。If you attempt a write operation on a container or blob without the encryption key, the operation will fail, and you will lose access to the object.

Azure Storage 暗号化とディスク暗号化Azure Storage encryption versus disk encryption

Azure Storage 暗号化は、Azure 仮想マシン ディスクをバックアップするページ BLOB を暗号化します。Azure Storage encryption encrypts the page blobs that back Azure virtual machine disks. さらに、すべての Azure 仮想マシンのディスクは、ローカル一時ディスクを含め、Azure Disk Encryption を使用して暗号化することもできます。Additionally, all Azure virtual machine disks, including local temp disks, may optionally be encrypted with Azure Disk Encryption. Azure Disk Encryption では、業界標準である BitLocker (Windows 上) および DM-Crypt (Linux 上) が使われており、Azure Key Vault と統合されたオペレーティング システム ベースの暗号化ソリューションが提供されます。Azure Disk Encryption uses industry-standard BitLocker on Windows and DM-Crypt on Linux to provide operating system-based encryption solutions that are integrated with Azure Key Vault.

次のステップNext steps