保存時の Azure データの暗号化

Microsoft Azureには、会社のセキュリティとコンプライアンスのニーズに応じてデータを保護するためのツールが含まれています。 この記事では、次の項目に重点を置いています。

  • Microsoft Azure全体で保存データを保護する方法。
  • データ保護の実装に参加するさまざまなコンポーネント。
  • 異なる鍵管理保護アプローチの利点とトレードオフ。

保存時の暗号化は、標準的なセキュリティ要件です。 Azureはプラットフォーム管理キーを使ってデフォルトでデータを静止状態で暗号化しています。 この方法では、カスタム キー管理ソリューションのリスクやコストを伴わずに、組織に自動暗号化を提供します。 組織はプラットフォーム管理キーを使って静止時の暗号化管理をAzureに頼ることができ、暗号化鍵や鍵管理ポリシーのさらなる制御が必要な場合は顧客管理キーを使うこともできます。

保存データの暗号化とは

暗号化は、データの機密性を保護するために使用されるデータの安全なエンコードです。 Azureの保存時の暗号化設計では、対称暗号化を使用して、単純な概念モデルに従って大量のデータをすばやく暗号化および復号化します。

  • 対称暗号鍵は、データが記憶に書き込まれる際に暗号化します。
  • 同じ暗号鍵が、そのデータがメモリ上で使用できるように準備される際に復号します。
  • 異なるパーティションは異なるキーを使うことがあります。
  • 鍵は、アイデンティティベースのアクセス制御および監査ポリシーを備えた安全な場所に保管します。 データ暗号化鍵が安全な場所の外に保存されている場合は、安全な場所に保管された鍵の暗号鍵を使って暗号化してください。

実際には、キーの管理と制御のシナリオに加え、拡張性と可用性を保証するには、追加の構造が必要です。 次のセクションでは、Microsoft Azureの保存時の暗号化の概念とコンポーネントについて説明します。

保存時の暗号化の目的

静止時の暗号化は保存データを保護します。 静止データに対する攻撃には、データを保存するハードウェアへの物理的アクセスを試み、そのデータを侵害しようとする試みが含まれます。 このような攻撃では、メンテナンス中にサーバーのハード ドライブが誤って処理され、攻撃者がハード ドライブを取り外す可能性があります。 攻撃者は後で、データへのアクセスを試みるために、ハード ドライブを制御下のコンピューターに配置します。

静止中の暗号化は、データがディスク上で暗号化されていることを確認することで、攻撃者が暗号化されていないデータにアクセスするのを防ぐのに役立ちます。 攻撃者は、暗号化されたデータを含むハード ドライブを入手しても、暗号化キーがないと、データを読み取るためには暗号化を破る必要があります。 この攻撃は、ハードドライブ上の暗号化されていないデータにアクセスするよりもはるかに複雑でリソースを消費します。 このため、多くの組織は静止時暗号化を最優先度の要件としています。

組織のデータガバナンスやコンプライアンスの取り組みには、静止時の暗号化も必要になることがあります。 HIPAA、PCI、FedRAMPなどの業界および政府規制は、データ保護および暗号化要件に関する具体的な保護策を定めています。 これらの規制の中には、静止時の暗号化を義務付けるものもあります。 MicrosoftのFIPS 140検証アプローチの詳細については、連邦情報処理標準(FIPS)140を参照してください。

コンプライアンスと規制の要件に対応することに加えて、保存時の暗号化によって、多層防御の保護が提供されます。 Microsoft Azureは、サービス、アプリケーション、データに準拠したプラットフォームを提供します。 また、包括的な設備と物理的セキュリティ、データ アクセスの制御、および監査を提供します。 しかし、他のセキュリティ対策が失敗した場合に備えて、追加の「重複する」セキュリティ対策を設けることが重要です。 保存時の暗号化は、このようなセキュリティ対策を提供します。

Microsoftはクラウドサービス全体で静止時の暗号化オプションを提供し、顧客に暗号化鍵や鍵使用ログの管理を提供しています。 Microsoftはまた、すべての顧客データを静止状態でデフォルトで暗号化することにも取り組んでいます。

キー管理オプション

Azureには、暗号化キーを管理するための 2 つの主な方法が用意されています。

プラットフォーム管理鍵(デフォルト)(サービス管理鍵とも呼ばれることもあります):Azureは鍵生成、保存、回転、バックアップなど、暗号化鍵管理のすべての側面を自動的に処理します。 この方法では、保存時の暗号化が提供され、お客様に必要な構成は不要であり、Azure サービス全体で既定で有効になっています。 プラットフォームで管理されるキーは最高レベルの利便性を提供し、追加のコストや管理オーバーヘッドは必要ありません。

顧客管理鍵(任意):暗号化鍵をより厳しく管理したい顧客は、Azure Key VaultまたはAzure Key Vault Managed HSMを用いて自分で鍵を管理できます。 このアプローチにより、顧客は鍵のライフサイクル、アクセスポリシー、暗号操作を制御できます。 カスタマー マネージド キーは、管理責任と複雑さの増加を犠牲にして、追加の制御を提供します。 規制や契約上の要件で鍵資料を物理的にMicrosoftインフラ外に置くことを義務付ける組織に対して、Azure Key Vault Managed HSMは外部鍵管理(プレビュー)もサポートしており、鍵暗号鍵(KEK)は顧客操作のハードウェアセキュリティモジュール(HSM)内に完全にAzure外に保管されます。

これらの方法の選択は、組織のセキュリティ要件、コンプライアンスのニーズ、運用上の好みによって異なります。 ほとんどの組織は、堅牢な暗号化保護のためにプラットフォームで管理されるキーに依存できますが、特定の規制またはセキュリティ要件を持つ組織ではカスタマー マネージド キーを選択できます。

Azure の保存時の暗号化のコンポーネント

前述の通り、静止暗号化は秘密の暗号鍵を使ってディスク上に保存されたデータを永続的に保存します。 その目標を達成するために、Azureサービスには安全な鍵作成、保存、アクセス制御、暗号化鍵管理が必要です。 詳細は異なる場合がありますが、Azureサービスの静止時暗号化実装では以下の図に示された用語が使われています。

Azureの暗号化、レスト時のコンポーネント、キー階層を示す図です。

Azure Key Vault

暗号化キーの保存場所と、これらのキーへのアクセス制御は、保存時暗号化モデルの中心になります。 キーを高度にセキュリティで保護する必要がありますが、指定されたユーザーがキーを管理しやすくし、特定のサービスで使用できるようにする必要があります。 Azureサービスに関しては、Azure Key Vault(プレミアムティア)またはAzure Key Vault Managed HSMが推奨されるキーストレージソリューションであり、サービス間で共通の管理体験を提供します。 キーコンテナーにキーを格納および管理し、ユーザーまたはサービスにキー コンテナーへのアクセス権を付与できます。 Azure Key Vaultは、顧客管理の暗号化鍵シナリオで使用するために、顧客が作成した鍵とインポートされた顧客鍵をサポートしています。

Microsoft Entra ID

Microsoft EntraアカウントにAzure Key Vaultに保存された鍵の使用権限を与え、管理や暗号化・復号操作のためにアクセスすることができます。

キー階層を使用したエンベロープ暗号化

保存時の暗号化の実装には、複数の暗号化キーを使用します。 Azure Key Vaultに暗号化鍵を保存することで、安全な鍵アクセスと中央鍵管理が保証されます。 しかし、サービスローカルでの暗号化鍵アクセスは、すべてのデータ操作でKey Vaultとやり取りするよりも、一括暗号化や復号化において効率的です。 この方法はより強力な暗号化と性能向上を可能にします。 1 つの暗号化キーの使用を制限すると、キーが侵害されるリスクと、キーを交換する必要がある場合の再暗号化のコストが減少します。 Azureの静止時暗号化モデルは封筒暗号を使用し、KEKはデータ暗号化鍵(DEK)を暗号化します。 このモデルは、パフォーマンスとセキュリティ要件により適切に対応する重要な階層構造を形成します。

  • データ暗号化鍵(DEK) – データパーティションやブロックを暗号化する対称AES-256鍵で、時にデータキーとも呼ばれます。 単一のリソースには多くのパーティションや多数のDEKが存在します。 各データブロックを異なる鍵で暗号化することで、暗号解析攻撃はより困難になります。 DEKをデータの暗号化・復号を行うサービスにローカルに置くことでパフォーマンスが最大化されます。
  • 鍵暗号化鍵(KEK) – 封筒暗号化(ラッピングとも呼ばれる)を用いてDEKを暗号化する暗号鍵です。 Key Vaultを出ないKEKを使うことで、DEKを暗号化・制御できます。 KEK にアクセスできるエンティティは、DEK を必要とするエンティティとは異なる場合があります。 エンティティは、DEK へのアクセスを仲介して、各 DEK のアクセスを特定のパーティションに制限できます。 KEKはDEKの復号に必要であるため、顧客はKEKを無効にすることでDEKやデータを暗号的に消去できます。 KEKを無効にすると、Azure SQL Transparent Data Encryption(TDE)データベース、顧客管理キーを持つAzure Storageアカウント、Azure Disk Encryption保護されたVMなど、すべての依存サービスにアクセスできなくなります。 無効化も、そのキーが格納されているボールトにのみ影響します。 キーがバックアップされて別のボールトに復元されていれば、復元されたコピーは完全に機能し、無効化操作の影響を受けません。 詳細は「 バックアップのセキュリティ上の考慮事項」をご覧ください。

リソースプロバイダーやアプリケーションインスタンスは暗号化されたDEKをメタデータとして保存します。 KEK へのアクセス権を持つエンティティでのみ、これらの DEK の暗号化を解除できます。 Azureは異なるキーストレージモデルをサポートしています。 詳細については、「データ暗号化モデル」を参照してください。

サービスがアクティブな暗号化操作のために DEK をローカルにキャッシュする場合、キャッシュされたキーは、ホスト レベルのコンピューティング分離およびプロセス レベルの保護を含むAzure プラットフォームセキュリティ制御によって保護されます。 キャッシュされた運用鍵は可用性とパフォーマンスのメカニズムであり、Key VaultのKEKは信頼の根源であり、鍵の取り消しが暗号化データへのアクセスを制御します。

Microsoft クラウド サービスでの保存時の暗号化

Microsoftのクラウドサービスは、インフラストラクチャ・アズ・ア・サービス(IaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、ソフトウェア・アズ・ア・サービス(SaaS)の3つのクラウドモデルすべてで使われています。 次の例は、各モデルにどのように適合するかを示しています。

  • ソフトウェアサービス、すなわちSaaSは、Microsoft 365のようなクラウドホスト型アプリケーションを提供します。
  • プラットフォームサービス(PaaS)は、顧客アプリケーション向けにストレージ、分析、サービスバス機能などのクラウド機能を提供します。
  • インフラストラクチャサービス(IaaS)は、顧客が導入したオペレーティングシステムやアプリケーションをホストし、他のクラウドサービスも利用できます。

SaaS 顧客ためのの保存時の暗号化

サービスとしてのソフトウェア (SaaS) の顧客は、通常は、保存時の暗号化を有効化しているか、各サービスで利用できます。 Microsoft 365には、保存時の暗号化を確認または有効にするためのオプションがいくつかあります。 Microsoft 365 サービスの詳細については、「Microsoft 365 の Encryption」を参照してください。

PaaS 顧客のための保存時の暗号化

サービスとしてのプラットフォーム (PaaS) のお客様は、通常、Blob Storageなどのストレージ サービスにデータを格納します。 ただし、データは、仮想マシンなどのアプリケーション実行環境にキャッシュまたは格納される場合もあります。 使用できる保存時の暗号化のオプションを確認するには、「データ暗号化モデル」で、使用しているストレージとアプリケーション プラットフォームを調べてください。

IaaS 顧客のための保存時の暗号化

インフラストラクチャ・アズ・ア・サービス(IaaS)の顧客は、さまざまなサービスやアプリケーションを利用できます。 IaaSサービスは、ホストでの暗号化を使用することで、Azureホスト仮想マシン上で静止時の暗号化を可能にします。

暗号化されたストレージ

PaaS と同様に、IaaS ソリューションでは、保存時に暗号化されたデータを格納する他の Azure サービスを使用できます。 この場合、各消費されたAzureサービスが提供する静止時の暗号化サポートを有効にすることができます。 データ暗号化モデル は、主要なストレージ、サービス、アプリケーションプラットフォームと、サポートされる静止時の暗号化モデルを一覧にしています。

暗号化されたコンピューティング

Azure管理のディスク、スナップショット、イメージは、ストレージサービス暗号化とプラットフォーム管理キーを用いてデフォルトで暗号化されています。 この既定の暗号化には、顧客の構成や追加コストは必要ありません。 より包括的な暗号化ソリューションにより、VMホストが暗号化されていない形でデータを永続化しないようにします。 仮想マシン上でデータを処理する際、システムはWindowsのページファイルやLinuxのスワップファイル、クラッシュダンプ、アプリケーションログにデータを永続化することができます。 このデータが静止状態でも暗号化されることを保証するために、IaaSアプリケーションはAzure IaaS仮想マシン上でホスト時に暗号化を使用できます。 デフォルトではホストでの暗号化はプラットフォーム管理鍵を使用しますが、追加の制御のために顧客管理鍵を設定することも可能です。

保存データのカスタム暗号化

可能な限り、IaaSアプリケーションは、消費されるAzureサービスが提供するホスト時の暗号化と静止時の暗号化オプションを活用すべきです。 不規則な暗号化要件やAzureベースの非ストレージなど、IaaSアプリケーションの開発者は静止時暗号化を実装する必要があるかもしれません。 IaaS ソリューションの開発者は、特定の Azure コンポーネントを使用することで、Azure の管理と顧客の期待とより適切に統合できます。 具体的には、開発者はAzure Key Vaultを使って安全な鍵の保管を提供し、顧客にAzureプラットフォームサービスと整合した鍵管理オプションを提供すべきです。 カスタムソリューションは、サービスアカウントが暗号化鍵にアクセスできるようにAzure管理IDも使用すべきです。 開発者に関する情報については、Azure Key Vault 開発者ガイドおよび管理されたアイデンティティ for Azure リソースを参照してください。

Azure リソース プロバイダーの暗号化モデルのサポート

Microsoft Azureサービスはそれぞれ、1つ以上の静止時暗号化モデルをサポートしています。 しかし、一部のサービスでは、1つ以上の暗号化モデルが適用されない場合があります。 顧客管理の鍵シナリオをサポートするサービスは、Azure Key Vaultが鍵暗号鍵としてサポートする鍵タイプの一部の部分しかサポートしない場合があります。 サービス側はこれらのシナリオやキータイプのサポートを異なるスケジュールでリリースすることがあります。 このセクションでは、各主要なAzureデータストレージサービスに対する現在の暗号化アットレストサポートについて説明します。

Azure VM ディスクの暗号化

Azure Infrastructure as a Service(IaaS)機能を利用する顧客は、ホストでの暗号化を通じてIaaSのVMディスクを静止状態で暗号化できます。 詳細については、「 ホストでの暗号化 - VM のエンドツーエンドの暗号化」を参照してください。

Azure Storage

すべての Azure Storage サービス (Blob Storage、Queue Storage、Table Storage、Azure Files) は、保存データに対するサーバー側暗号化をサポートします。 Blob StorageおよびQueue Storageも現在のクライアント側暗号化をサポートしています。

  • サーバーサイド(デフォルト):すべてのAzure Storageサービスはプラットフォーム管理キーを用いて自動的にサーバーサイド暗号化を有効にします。 この暗号化はアプリケーションに対して透過的であり、構成は必要ありません。 詳細については、「Azure Storage保存データの暗号化を参照してください。 必要に応じて、Azure Key Vaultでカスタマー マネージド キーを使用して、追加の制御を行うことができます。 詳細については、「Azure Storage 暗号化のカスタマー マネージド キー」を参照してください。
  • クライアントサイド(任意):Blob StorageおよびQueue Storageクライアントライブラリは、Azureに届く前にデータを暗号化する必要がある顧客向けにクライアントサイド暗号化をサポートします。 クライアント側暗号化を使用する場合、顧客はデータを暗号化し、暗号化されたデータとしてアップロードします。 鍵は顧客が管理します。 詳細については、 ブロブについてはクライアント側暗号化 、キュー についてはクライアント側暗号化を参照してください。

Azure SQL Database

Azure SQL Databaseは、プラットフォーム管理キーを用いたサービス側の暗号化およびクライアント側の暗号化シナリオで、サービス側の静止時暗号化をサポートしています。

Azure SQLはTransparent Data Encryptionを通じてサーバーサイド暗号化を提供します。 サービス管理型TDEの場合、Azureは自動的にキーを作成・管理します。 データベース レベルとサーバー レベルで保存時の暗号化を有効にすることができます。 Transparent Data Encryption(TDE)は新たに作成されたデータベースでデフォルトで有効化されています。 Azure SQL非対称RSAまたは RSA-HSM 2048ビットおよび3072ビットの顧客管理TDEプロテクターをAzure Key VaultまたはAzure Key VaultマネージドHSMでサポートしています。 詳細については、 カスタマー マネージド キーを使用した Azure SQL Transparent Data Encryption に関するページを参照してください。

Azure SQL DatabaseはAlways Encrypted機能を通じてクライアント側の暗号化をサポートしています。 Always Encrypted は、クライアントが作成して格納するキーを使用します。 顧客はマスターキーをWindowsの証明書ストア、Azure Key Vault、またはローカルのHSMに保存できます。 SQLユーザーはSQL Server Management Studioを使って、各列を暗号化する鍵を選択できます。

まとめ

Azureサービス内に保存された顧客データの保護は、Microsoftにとって重要です。 Azureホストサービスは、静止時の暗号化オプションを提供します。 Azureサービスはプラットフォーム管理鍵、顧客管理鍵、またはクライアント側の暗号化をサポートしています。 Azureサービスは、静止時の暗号化の可用性を向上させ続けています。

次のステップ

  • プラットフォーム マネージド キーとカスタマー マネージド キーの詳細については、 データ暗号化モデル を参照してください。
  • Azureの二つの暗号化を使用して、データの暗号化に伴う脅威を軽減する方法について説明します。
  • ハードウェアとファームウェアの構築、統合、運用、修復パイプラインを通過するホストのプラットフォームの整合性とセキュリティをMicrosoftがどのように保証しているか説明します。