Azure でのデータの暗号化

データは、状態によって分類できます。

  • 保存データ。 ストレージ オブジェクト、コンテナー、データなど、物理メディア (磁気ディスクまたは光学ディスク) に静的な状態で存在しているすべての情報。

  • 転送中のデータ。 コンポーネント、場所、またはプログラムの間で転送されているデータ。

クラウド ソリューションでは、1 つのビジネス トランザクションが、あるストレージ メディアから別のストレージ メディアにデータを移動する複数のデータ操作につながる可能性があります。 完全なデータ保護を提供するには、ストレージ ボリュームで暗号化し、ある場所から別の場所に転送する必要があります。

重要なポイント

  • ID ベースのストレージ アクセス制御を使用する。
  • 標準的で推奨される暗号化アルゴリズムを使用する。
  • セキュリティで保護されたハッシュ アルゴリズム (SHA-2 ファミリ) のみを使用する。
  • 保存データを分類し、暗号化を使用する。
  • 仮想ディスクを暗号化する。
  • 追加のキー暗号化キー (KEK) を使用して、データ暗号化キー (DEK) を保護する。
  • すべてのクライアント/サーバー通信で、暗号化されたネットワーク チャネル (TLS/HTTPS) を介して転送中のデータを保護する。 Azure で TLS 1.2 を使用する。

Azure の暗号化機能

Azure には、データ処理に参加する多くのレイヤーでデータを暗号化するための組み込みの機能が用意されています。 サービスごとに暗号化機能を有効にすることをお勧めします。 暗号化は、Azure で管理されるキーを使用して自動的に処理されます。 ほとんどの場合、ユーザー操作は必要ありません。

ID ベースのストレージ アクセス制御を実装することをお勧めします。 共有キーを使用した認証 (Shared Access Signature など) では、ID ベースのアクセス制御と同じ柔軟性と制御は得られません。 共有キーのリークが発生した場合、リソースへの無制限アクセスが許可されてしまう可能性があります。一方、ロールベースのアクセス制御では、より強力に識別と認証を行うことができます。

Azure のようなクラウド サービスのストレージは、大規模なスケーリング、REST API を使用した最新のアクセス、およびテナント間の分離を実現するために、オンプレミス ソリューションとはまったく異なる方法で設計および実装されています。 クラウド サービス プロバイダーでは、ストレージ リソースのアクセス制御方法を複数利用できるようにしています。 たとえば、共有キー、共有署名、匿名アクセス、ID プロバイダーベースの方法などがあります。

Azure Storage の組み込み機能をいくつか考えてみましょう。

  • ID ベースのアクセス。 アクセスは、Azure Active Directory (Azure AD) およびキー ベースの認証メカニズム (対称共有キー認証、つまり Shared Access Signature (SAS)) を使用してサポートされます。
  • 組み込みの暗号化。 格納されているすべてのデータは、Azure torage によって暗号化されます。 テナントによってデータが書き込まれていない場合、テナントはデータを読み取ることができません。 この機能は、クロス テナント データの漏えい制御を提供します。
  • リージョン ベースの制御。 データは選択したリージョンのみに留まり、3 つの同期コピー データがそのリージョン内で保持されます。 Azure Storage では、詳細なアクティビティ ログがオプトイン単位で利用できます。
  • ファイアウォール機能。 ファイアウォールにより、アクセス制御とストレージ脅威保護の追加のレイヤーが提供され、異常なアクセスやアクティビティを検出できます。

機能の完全なセットについては、「Azure Storage Service encryption」をご覧ください。

推奨されるアクション

侵害の可能性が最も低いプロバイダーの認証および認可方法を特定し、ストレージ リソースに対するよりきめ細かなロールベースのアクセス制御を実現します。

詳細情報

詳細については、Azure Active Directory を使用した BLOB へのアクセスの承認に関するページを参照してください。

標準暗号化アルゴリズム

組織は暗号化アルゴリズムを独自に作成するのではなく、業界標準のアルゴリズムを使用していますか?


組織が独自の暗号化アルゴリズムを開発して維持するべきではありません。 ワークロードでカスタム暗号化アルゴリズムや直接暗号化を使用しないようにします。 これらの方法では実際の攻撃に対応できることはほとんどありません。

セキュリティ保護の標準は既に市場に存在するため、それらを優先して使用するべきです。 カスタム実装が必要な場合、十分に確立された暗号アルゴリズムと安全な標準を使用する必要があります。 Advanced Encryption Standard (AES) を対称ブロック暗号として使用します。AES-128、AES-192、および AES-256 を使用できます。

プラットフォーム以外の暗号化ライブラリではなく、オペレーティング システムに組み込まれた暗号化 API を使用する必要があります。 .NET の場合は、.NET の暗号モデルに従います。

推奨される標準の暗号化アルゴリズムを使用することをお勧めします。

詳細については、「アルゴリズムの選択」を参照してください。

最新のハッシュ関数が使用されていますか?


アプリケーションでは、SHA-2 ファミリのハッシュ アルゴリズム (SHA-256、SHA-384、SHA-512) を使用する必要があります。

保存データ

重要なデータをすべて分類し、暗号化標準を使用して暗号化するようにします。 すべての情報ストレージ オブジェクトを分類して保護します。 暗号化を使用して、許可されていないユーザーがファイルの内容にアクセスできないようにします。

Azure では、保存データが既定で暗号化されますが、重要なデータを監査できるよう、その分類とタグ付け、またはラベル付けはお済みでしょうか。

最も機密性の高いデータには、ビジネス、財務、医療、個人情報などが含まれる場合があります。 このようなデータの検出と分類は、組織の情報保護アプローチにおいてきわめて重要な役割を果たすことができます。 次のような場合にインフラストラクチャとして使用できます。

  • データのプライバシーと規制コンプライアンスの要件への基準を満たすための支援。
  • さまざまなセキュリティ シナリオ (機微なデータに対する異常なアクセスの監視 (監査) とアラートなど)。
  • 機密性の高いデータを含むデータベースへのアクセスの制御と、セキュリティの強化。

推奨されるアクション

データを分類します。 Azure SQL Database に備わっているデータの検出と分類の機能の使用を検討してください。

データ分類

データを保護するために重要な最初の作業は、特定の条件に基づいてデータをカテゴリに分類することです。 分類条件には、ビジネス ニーズ、コンプライアンス要件、データの種類などを使用できます。

カテゴリに応じて、次のようにデータを保護できます。

  • 標準暗号化メカニズム。
  • ポリシーを使用したセキュリティ ガバナンス適用。
  • 監査を実施して、セキュリティ対策の準拠を確認。

データを分類する方法の 1 つにタグの使用があります。

組織は、このワークロードに関連付けられている仮想マシンの仮想ディスク ファイルを暗号化していますか?


クラウドにファイルを格納するオプションは多数あります。 クラウドネイティブ アプリは通常 Azure Storage を使用します。 VM で実行されるアプリはクラウドネイティブ アプリを使用してファイルを格納します。 VM は仮想ディスク ファイルを仮想ストレージ ボリュームとして使用し、blob ストレージに存在します。

ハイブリッド ソリューションを検討します。 ファイルは、オンプレミスからクラウド、クラウドからオンプレミス、またはクラウドでホストされているサービス間で移動できます。 1 つの方法として、許可されていないユーザーがファイルとその内容にアクセスできないようにする方法があります。 認証ベースのアクセス制御を使用して、ファイルの不正なダウンロードを防ぐことができます。 ただし、それで十分ではありません。 認証および認可またはその構成に欠陥がある場合は、仮想ディスク ファイルをセキュリティで保護するためのバックアップ メカニズムを用意します。 その方法はいくつかあります。 仮想ディスク ファイルを暗号化できます。 ディスク ファイルをマウントしようとしても、暗号化のためにファイルの内容にアクセスできません。

仮想ディスクの暗号化を有効にすることをお勧めします。 Windows VM ディスクを暗号化する方法については、「クイックスタート: Azure CLI を使用して Windows VM を作成、暗号化する」を参照してください。

Azure ベースの仮想ディスクはストレージ アカウントにファイルとして保管されます。 仮想ディスクに暗号化が適用されておらず、攻撃者が仮想ディスク イメージ ファイルのダウンロードに成功した場合、攻撃者はソース コンピューターに物理的にアクセスしているように、都合の良いときにそのイメージ ファイルをマウントして、調べることができます。 仮想ディスク ファイルを暗号化すると、攻撃者がファイルをダウンロードできる場合でも、ディスク ファイルの内容へのアクセスは防ぐことができます。 ディスクに格納されている情報の機密性によっては、暗号化されていないアクセスは、機密ビジネス データ (SQL データベースなど) または ID (AD ドメイン コントローラーなど) に対して重大なリスクとなるおそれがあります。

Azure Disk Encryption は、仮想ディスクの暗号化の例です。

Azure Disk Encryption は、データを保護して、組織のセキュリティおよびコンプライアンス コミットメントを満たすのに役立ちます。 これは、Azure Virtual Machines (VM) の OS およびデータ ディスクのボリュームを暗号化するために、Windows の Bitlocker 機能 (または Linux の DM-Crypt) を使用します。 ディスクの暗号化キーとシークレットを制御および管理できるように、Azure Key Vault と統合されています。

仮想マシンは、仮想ディスク ファイルをストレージ ボリュームとして使用し、クラウド サービス プロバイダーの BLOB ストレージ システムに存在します。 これらのファイルは、オンプレミスからクラウド システム、クラウド システムからオンプレミス、またはクラウド システム間で移動できます。 これらのファイルのモビリティのため、承認されていないユーザーはファイルとコンテンツにアクセスできないようにすることをお勧めします。

組織は、このワークロードに ID ベースのストレージ アクセス制御を使用していますか?


データへのアクセスを制御する方法は多数あります。共有キー、共有署名、匿名アクセス、ID プロバイダーベースなどです。 Azure Active Directory (Azure AD) とロールベースのアクセス制御 (RBAC) を使用してアクセス権を付与します。 詳細については、「ID およびアクセス管理に関する考慮事項」をご覧ください。

組織は、追加のキー暗号化キー (KEK) を使用して、このワークロード内のキーを保護していますか?


保存時の暗号化の実装には、複数の暗号化キーを使用します。 Azure Key Vault に暗号化キーを格納することで、キーの安全なアクセスと集中管理が可能になります。

追加のキー暗号化キー (KEK) を使用して、データ暗号化キー (DEK) を保護する。

推奨されるアクション

暗号化されていない仮想マシンを Microsoft Defender for Cloud またはスクリプトを利用して特定し、Azure Disk Encryption を利用して暗号化します。 新しい仮想マシンがすべて既定で暗号化されるようにし、保護されていないディスクがないか定期的に監視します。

詳細情報

仮想マシンおよび仮想マシン スケール セット向けの Azure Disk Encryption

転送中のデータ

転送中のデータは、データ整合性を確保するために、常に暗号化されている必要があります。

転送中のデータの保護は、データ保護戦略に欠かせない要素です。 データはさまざまな場所を経由して転送されるため、一般的には常時 SSL/TLS プロトコルを使用してデータをやり取りすることが推奨されています。

オンプレミス インフラストラクチャと Azure 間のデータ移動については、HTTPS や VPN などの適切なセキュリティ対策を検討してください。 暗号化されたトラフィックを Azure 仮想ネットワークとオンプレミスの場所の間でパブリック インターネット経由で送信する場合は、Azure VPN Gateway を使用してください。

ワークロードは、暗号化されたネットワーク トラフィックのみを介して通信していますか?


中間者攻撃が発生するおそれがあるクライアントとサーバー間のネットワーク通信は、すべて暗号化する必要があります。 転送データの機密度に関係なく、すべての Web サイトの通信で HTTPS を使用する必要があります。 中間者攻撃は、ログイン フォームだけでなく、サイト上の任意の場所で行うことができます。

このメカニズムは、次のようなユース ケースに適用できます。

  • クライアントとのすべての通信に使用する Web アプリケーションと API。
  • オンプレミスからクラウドおよびその他の方法でサービス バス間を移動するデータ、または入力/出力プロセス中のデータ。

マイクロサービスなどの特定のアーキテクチャ スタイルでは、サービス間の通信中のデータを暗号化する必要があります。

ワークロード全体でどの TLS バージョンが使用されていますか?


最新バージョンの TLS の使用をお勧めします。 すべての Azure サービスは、パブリック HTTPS エンドポイントで TLS 1.2 をサポートしています。 TLS 1.2 をサポートするようにソリューションを移行し、既定でこのバージョンを使用します。

古いバージョンの TLS を使用しているクライアントからのトラフィックが最小限である、または古いバージョンの TLS で行われた要求を失敗させても構わない場合は、TLS の最小バージョン適用を検討します。 Azure Storage での TLS サポートの詳細については、「最小バージョンの TLS を使用してセキュリティ リスクを修復する」をご覧ください。

場合によっては、オンプレミスとクラウド インフラストラクチャ間の通信チャネル全体を、仮想プライベート ネットワーク (VPN) または ExpressRoute を使用して隔離する必要があります。 詳細と例については、次の記事をご覧ください。

詳細については、「転送中のデータを保護する」を参照してください。

転送中のデータをセキュリティで保護していないアプリケーションの部分はありますか?


転送中のデータはすべて、共通暗号化標準を使用して暗号化する必要があります。 ソリューション内のすべてのコンポーネントが同じ標準を使用しているかどうかを確認します。 技術的な制限のために暗号化が不可能な場合もあります。理由が明確で有効であることを確認してください。

推奨されるアクション

暗号化されていないセッションを使用してワークロードを特定し、暗号化を要求するようにサービスを構成します。

詳細情報

次の手順

暗号化によってデータを保護することは重要ですが、データへのアクセスを提供するキーを保護することも、同じように重要です。

ID およびアクセス管理サービスは、ユーザー、パートナー、顧客、アプリケーション、サービスなどのエンティティを認証し、アクセス許可を付与します。 セキュリティに関する考慮事項については、「Azure の ID およびアクセス管理に関する考慮事項」をご覧ください。

メインの記事に戻る:データ保護