次の方法で共有


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

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

  • Microsoft Azure 全体で保存データを保護する方法。
  • データ保護の実装に参加するさまざまなコンポーネント。
  • さまざまなキー管理保護アプローチの長所と短所。

保存時の暗号化は、標準的なセキュリティ要件です。 Azure では、データはプラットフォームマネージド キーを使用して既定で保存時に暗号化されます。 この方法では、カスタム キー管理ソリューションのリスクやコストを伴わずに、組織に自動暗号化を提供します。 組織は、プラットフォームマネージド キーを使用して保存時の暗号化を完全に管理するために Azure に依存できます。また、暗号化キーとキー管理ポリシーを追加で制御する必要がある場合は、カスタマー マネージド キーを使用できます。

保存データの暗号化とは

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

  • 対称暗号化キーは、ストレージに書き込まれるデータを暗号化します。
  • 同じ暗号化キーを使用すると、メモリ内で使用する準備が完了したデータの暗号化が解除されます。
  • データはパーティション分割でき、パーティションごとに異なるキーを使用できます。
  • キーは、ID ベースのアクセス制御と監査ポリシーが適用される、セキュリティで保護された場所に保存する必要があります。 データ暗号化キーがセキュリティで保護された場所の外部に格納されている場合は、セキュリティで保護された場所に保持されているキー暗号化キーを使用して暗号化されます。

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

保存時の暗号化の目的

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

Encryption at Rest は、データをディスク上で確実に暗号化することで、暗号化されていないデータに攻撃者がアクセスできないよう設計されています。 攻撃者は、暗号化されたデータを含むハード ドライブを入手しても、暗号化キーがないと、データを読み取るためには暗号化を破る必要があります。 この攻撃は、ハード ドライブの暗号化されていないデータにアクセスするよりも大幅に複雑で、多くのリソースを消費します。 このため、保存時に暗号化することは、多くの組織の高優先度要件として強く推奨されます。

データ ガバナンスとコンプライアンスの取り組みに対する組織のニーズには、保存時の暗号化も必要になる場合があります。 HIPAA、PCI、FedRAMP などの業界および政府の規制では、データ保護と暗号化の要件に関する特定のセーフガードがレイアウトされています。 保存時の暗号化は、いくつかの規制に準拠するための必須対策とされています。 FIPS 140-2 の検証に対する Microsoft のアプローチについて詳しくは、「連邦情報処理規格 (FIPS) 文書 140-2」を参照してください。

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

Microsoft は、クラウド サービス全体にわたって保存時の暗号化オプションを提供し、お客様が暗号化キーとキーの使用ログを管理できるようにすることに注力しています。 Microsoft はさらに、既定でお客様の保存データがすべて暗号化されるよう取り組んでいます。

キー管理オプション

Azure には、暗号化キーを管理するための主な方法が 2 つあります。

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

カスタマー マネージド キー (省略可能): 暗号化キーをより詳細に制御する必要のあるお客様は、Azure Key Vault または Azure Managed HSM を使用して独自のキーを管理することを選択できます。 このアプローチにより、お客様はキーのライフサイクル、アクセス ポリシー、暗号化操作を制御できます。 カスタマー マネージド キーは、管理責任と複雑さの増加を犠牲にして、追加の制御を提供します。

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

Azure の静止時の暗号化コンポーネント

前に説明したように、保存時の暗号化の目標は、ディスク上に保持されるデータがシークレット暗号化キーを使用して暗号化されるということです。 この目標を達成するためには、セキュリティ キーの作成や、ストレージ、アクセス制御、および暗号化キーの管理が提供されている必要があります。 詳細は異なる場合がありますが、Azure サービスの保存時の暗号化の実装は、次の図に示す用語で説明できます。

Components

Azure Key Vault

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

Microsoft Entra ID

Azure Key Vault に格納されているキーを使用するアクセス許可を Microsoft Entra アカウントに付与して、保存時の暗号化と暗号化解除の管理またはアクセスを行うことができます。

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

保存時の暗号化の実装では、複数の暗号化キーを使用します。 Azure Key Vault に暗号化キーを格納することで、キーの安全なアクセスと集中管理が可能になります。 ただし、データ操作のたびに Key Vault とやりとりするより、暗号化キーにサービス ローカル アクセスするほうが一括の暗号化/復号の場合は効率的です。暗号化が強化され、パフォーマンスが改善されます。 1 つの暗号化キーの使用を制限すると、キーが侵害されるリスクと、キーを交換する必要がある場合の再暗号化のコストが減少します。 Azure の保存時暗号化モデルでは、キー暗号化キーによってデータ暗号化キーを暗号化するエンベロープ暗号化を使用します。 このモデルでは、パフォーマンスとセキュリティの要件により効果的に対応できるキー階層を形成します。

  • データ暗号化キー (DEK) - データのパーティションまたはブロックを暗号化するために使用される対称 AES256 キー (単にデータ キーとも呼ばれることもあります)。 1 つのリソースに多数のパーティションと多数のデータ暗号化キーを含めることができます。 データの各ブロックを異なるキーで暗号化することによって、暗号化分析攻撃がより困難になります。 DEK をサービスに対してローカルに保つことで、データの暗号化と暗号化解除が行われ、パフォーマンスが最大化されます。
  • キー暗号化キー (KEK) – エンベロープ暗号化を使用してデータ暗号化キーを暗号化するために使用される暗号化キー。ラップとも呼ばれます。 Key Vault から離れないキー暗号化キーを使用すると、データ暗号化キーを暗号化および制御できます。 KEK にアクセスできるエンティティは、DEK を必要とするエンティティとは異なる場合があります。 エンティティは、DEK へのアクセスを仲介して、各 DEK のアクセスを特定のパーティションに制限できます。 KEK は DEK の暗号化を解除するために必要であるため、KEK を無効にすることで、暗号化によって DEK とデータを消去できます。

リソース プロバイダーとアプリケーション インスタンスでは、暗号化されたデータ暗号化キーをメタデータとして格納します。 キー暗号化キーにアクセスできるエンティティのみが、これらのデータ暗号化キーを復号できます。 キー保存のさまざまなモデルがサポートされます。 詳細については、「データ暗号化モデル」を参照してください。

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

3 つのクラウド モデルすべて (IaaS、PaaS、SaaS) で Microsoft クラウド サービスを使用します。 次の例は、各モデルにどのように適合するかを示しています。

  • Software as a Service (SaaS) と呼ばれるソフトウェア サービスでは、Microsoft 365 など、クラウドで提供されるアプリケーションが利用できます。
  • プラットフォーム サービスでは、お客様のアプリケーションのストレージ、分析、サービス バス機能などにクラウドが使用されています。
  • インフラストラクチャ サービス、別称サービスとしてのインフラストラクチャ (IaaS) では、顧客がクラウドでホスティングされているオペレーティング システムやアプリケーションをデプロイし、他のクラウド サービスを活用することもあります。

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

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

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

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

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

サービスとしてのインフラストラクチャ (IaaS) のお客様は、さまざまなサービスとアプリケーションを使用できます。 IaaS サービスでは、ホストでの暗号化を使用して、Azure でホストされている仮想マシンの保存時の暗号化を有効にすることができます。

暗号化されたストレージ

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

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

すべてのマネージド ディスク、スナップショット、イメージは、プラットフォームマネージド キーを使用して Storage Service Encryption を使用して既定で暗号化されます。 この既定の暗号化には、顧客の構成や追加コストは必要ありません。 より包括的な暗号化ソリューションにより、すべてのデータが暗号化されていない形式で保持されることはありません。 仮想マシン上のデータの処理中に、システムは Windows ページ ファイルまたは Linux スワップ ファイル、クラッシュ ダンプ、またはアプリケーション ログにデータを保持できます。 このデータが保存時にも確実に暗号化されるように、IaaS アプリケーションは Azure IaaS 仮想マシン上のホストで暗号化を使用できます。この暗号化は、既定ではプラットフォームマネージド キーを使用しますが、必要に応じて、追加の制御のためにカスタマー マネージド キーを使用して構成できます。

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

IaaS アプリケーションでは、可能な限り、ホストでの暗号化と、使用される Azure サービスによって提供される保存時の暗号化オプションを利用する必要があります。 不規則な暗号化要件や Azure ベース以外のストレージなど、場合によっては、IaaS アプリケーションの開発者が保存時の暗号化を自分で実装する必要がある場合があります。 IaaS ソリューションの開発者は、特定の Azure コンポーネントを活用することで Azure の管理機能と顧客からの期待に応える機能を統合できます。 具体的には、開発者は Azure Key Vault サービスを使用してセキュリティで保護されたキー ストレージを提供し、Azure プラットフォーム サービスと一致するキー管理オプションを顧客に提供する必要があります。 また、カスタム ソリューションでは、Azure のマネージド サービス ID を使用すれば、サービス アカウントが暗号化キーにアクセスできるようになります。 Azure Key Vault およびマネージド サービス ID の管理に関する開発者向け情報については、それぞれの SDK を参照してください。

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) では、保存時のサーバー側の暗号化がサポートされ、一部のサービスではクライアント側の暗号化もサポートされています。

  • サーバー側 (既定): すべての Azure Storage Services では、プラットフォームマネージド キーを使用して、既定でサーバー側の暗号化が自動的に有効になります。 この暗号化はアプリケーションに対して透過的であり、構成は必要ありません。 詳細については、「保存データ向け Azure Storage Service Encryption」をご覧ください。 必要に応じて、Azure Key Vault でカスタマー マネージド キーを使用して追加の制御を行うことができます。 詳細については、「ユーザーが管理する Azure Key Vault キーを Storage Service Encryption に使用する」を参照してください。
  • クライアント側 (省略可能): Azure BLOB、テーブル、キューは、Azure に到達する前にデータを暗号化する必要があるお客様向けのクライアント側暗号化をサポートします。 クライアント側の暗号化を使用した場合、お客様は暗号化された BLOB としてデータをアップロードします。 キー管理は、ユーザーによって行われます。 詳しくは、「Microsoft Azure Storage のクライアント側の暗号化と Azure Key Vault」をご覧ください。

Azure SQL Database

現在、Azure SQL Database では、プラットフォームで管理されるサービス側とクライアント側の暗号化シナリオで保存時の暗号化がサポートされています。

サーバー側の暗号化は Transparent Data Encryption と呼ばれる SQL 機能を通して提供されています。 Azure SQL Database のお客様が TDE を有効にすると、キーが自動的に作成されて管理されます。 データベース レベルとサーバー レベルで保存時の暗号化を有効にすることができます。 2017 年 6 月の時点で Transparent Data Encryption (TDE) は、新しく作成されたデータベースで既定で有効に設定されています。 Azure SQL Database は、Azure Key Vault での RSA 2048 ビット ユーザー管理キーをサポートしています。 詳細については、Azure SQL Database と Azure SQL Data Warehouse での Bring Your Own Key (BYOK) のサポートによる 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 が何を行っているか確認します。