次の方法で共有


Azure Data Lake Storage Gen1 でのデータの暗号化

Azure Data Lake Storage Gen1 での暗号化は、データの保護、エンタープライズ セキュリティ ポリシーの実装、規制コンプライアンス要件の満たすのに役立ちます。 この記事では、設計の概要と、実装の技術的な側面について説明します。

Data Lake Storage Gen1 では、保存時と転送中の両方のデータの暗号化がサポートされています。 保存データの場合、Data Lake Storage Gen1 では"既定でオン" の透過的な暗号化がサポートされます。 これらの用語の意味をもう少し詳しく説明します。

  • 既定では:新しい Data Lake Storage Gen1 アカウントを作成すると、既定の設定で暗号化が有効になります。 その後、Data Lake Storage Gen1 に格納されるデータは、永続的なメディアに格納される前に常に暗号化されます。 これはすべてのデータの動作であり、アカウントの作成後に変更することはできません。
  • 透過的: Data Lake Storage Gen1 は、永続化する前にデータを自動的に暗号化し、取得前にデータの暗号化を解除します。 暗号化は、管理者によって Data Lake Storage Gen1 アカウント レベルで構成および管理されます。 データ アクセス API は変更されません。 そのため、暗号化のために Data Lake Storage Gen1 と対話するアプリケーションやサービスに変更は必要ありません。

転送中のデータ (移動中のデータとも呼ばれます) は、Data Lake Storage Gen1 でも常に暗号化されます。 永続的なメディアに格納する前のデータの暗号化に加えて、データは常に HTTPS を使用して転送中にセキュリティで保護されます。 HTTPS は、Data Lake Storage Gen1 REST インターフェイスでサポートされている唯一のプロトコルです。 次の図は、Data Lake Storage Gen1 でデータがどのように暗号化されるかを示しています。

Data Lake Storage Gen1 でのデータ暗号化の図

Data Lake Storage Gen1 を使用した暗号化の設定

Data Lake Storage Gen1 の暗号化はアカウントの作成時に設定され、既定では常に有効になります。 キーは自分で管理することも、Data Lake Storage Gen1 で管理できるようにすることもできます (これが既定です)。

詳細については、「作業の 開始」を参照してください。

Data Lake Storage Gen1 での暗号化のしくみ

次の情報では、マスター暗号化キーを管理する方法について説明し、Data Lake Storage Gen1 のデータ暗号化に使用できる 3 種類のキーについて説明します。

マスター暗号化キー

Data Lake Storage Gen1 には、マスター暗号化キー (MEK) を管理するための 2 つのモードが用意されています。 ここでは、マスター暗号化キーが最上位のキーであると仮定します。 Data Lake Storage Gen1 に格納されているデータを復号化するには、マスター暗号化キーへのアクセスが必要です。

マスター暗号化キーを管理するための 2 つのモードは次のとおりです。

  • サービス管理されたキー
  • 顧客管理キー

どちらのモードでも、マスター暗号化キーは Azure Key Vault に格納することでセキュリティで保護されます。 Key Vault は、暗号化キーを保護するために使用できる Azure 上のフル マネージドの高度なセキュリティサービスです。 詳細については、「Key Vault」を参照してください。

MEK を管理する 2 つのモードによって提供される機能の簡単な比較を次に示します。

質問 サービス管理キー 顧客が管理するキー
データをどのように格納するか 保存される前に常に暗号化されます。 保存される前に常に暗号化されます。
マスター暗号化キーはどこに格納されますか? Key Vault (キー・ボールト) Key Vault (キー・ボールト)
Key Vault の外部で平文で保存されている暗号化キーはありますか? いいえ いいえ
KEY Vault によって MEK を取得できますか? いいえ。 MEK を Key Vault に格納した後は、暗号化と暗号化解除にのみ使用できます。 いいえ。 MEK を Key Vault に格納した後は、暗号化と暗号化解除にのみ使用できます。
Key Vault インスタンスと MEK を所有しているのは誰ですか? Data Lake Storage Gen1 サービス 独自の Azure サブスクリプションに属する Key Vault インスタンスを所有している。 Key Vault の MEK は、ソフトウェアまたはハードウェアで管理できます。
Data Lake Storage Gen1 サービスの MEK へのアクセスを取り消すことができますか? いいえ はい。 Key Vault でアクセス制御リストを管理し、Data Lake Storage Gen1 サービスのサービス ID へのアクセス制御エントリを削除できます。
MEK を完全に削除できますか? いいえ はい。 Key Vault から MEK を削除した場合、Data Lake Storage Gen1 アカウント内のデータは、Data Lake Storage Gen1 サービスを含むだれも復号化できません。

Key Vault から MEK を削除する前に MEK を明示的にバックアップした場合は、MEK を復元し、データを回復できます。 ただし、Key Vault から MEK を削除する前に MEK をバックアップしていない場合、その後、Data Lake Storage Gen1 アカウント内のデータを暗号化解除することはできません。

MEK とそれが存在する Key Vault インスタンスを管理するユーザーのこの違いを除いて、設計の残りの部分は両方のモードで同じです。

マスター暗号化キーのモードを選択するときは、次の点に注意してください。

  • Data Lake Storage Gen1 アカウントをプロビジョニングするときに、カスタマー マネージド キーとサービス マネージド キーのどちらを使用するかを選択できます。
  • Data Lake Storage Gen1 アカウントがプロビジョニングされた後は、モードを変更できません。

データの暗号化と暗号化解除

データ暗号化の設計には、3 種類のキーが使用されます。 次の表に概要を示します。

略称 関連付け られて いる 保存先 タイプ 注記
マスター暗号化キー MEK Data Lake Storage Gen1 アカウント Key Vault (キー・ボールト) 非対称 これは、Data Lake Storage Gen1 またはユーザーが管理できます。
データ暗号化キー DEK Data Lake Storage Gen1 アカウント Data Lake Storage Gen1 サービスによって管理される永続的ストレージ シンメトリック DEK は MEK によって暗号化されます。 暗号化された DEK は、永続メディアに格納されるものです。
ブロック暗号化キー BEK データのブロック なし シンメトリック BEK は、DEK とデータ ブロックから派生します。

次の図は、これらの概念を示しています。

データ暗号化のキー

ファイルの暗号化を解除する場合の擬似アルゴリズム:

  1. Data Lake Storage Gen1 アカウントの DEK がキャッシュされ、使用できる状態になっているかどうかを確認します。
    • そうでない場合は、永続ストレージから暗号化された DEK を読み取り、暗号化を解除するために Key Vault に送信します。 復号化された DEK をメモリにキャッシュします。 これで使用する準備ができました。
  2. ファイル内のすべてのデータ ブロックについて:
    • 永続ストレージから暗号化されたデータ ブロックを読み取ります。
    • DEK と暗号化されたデータ ブロックから BEK を生成します。
    • BEK を使用してデータを復号化します。

データ ブロックを暗号化する場合の擬似アルゴリズム:

  1. Data Lake Storage Gen1 アカウントの DEK がキャッシュされ、使用できる状態になっているかどうかを確認します。
    • そうでない場合は、永続ストレージから暗号化された DEK を読み取り、暗号化を解除するために Key Vault に送信します。 復号化された DEK をメモリにキャッシュします。 これで使用する準備ができました。
  2. DEK からのデータ ブロックに対して一意の BEK を生成します。
  3. AES-256 暗号化を使用して、BEK でデータ ブロックを暗号化します。
  4. データの暗号化されたデータ ブロックを永続ストレージに格納します。

DEK は常に MEK によって暗号化され、永続メディア上に格納されるか、メモリにキャッシュされるかに関係なく格納されます。

キーのローテーション

カスタマー マネージド キーを使用している場合は、MEK をローテーションできます。 カスタマー マネージド キーを使用して Data Lake Storage Gen1 アカウントを設定する方法については、「 概要」を参照してください。

[前提条件]

Data Lake Storage Gen1 アカウントを設定するときに、独自のキーを使用することを選択しました。 このオプションは、アカウントの作成後は変更できません。 次の手順では、カスタマー マネージド キー (つまり、Key Vault から独自のキーを選択した) を使用していることを前提としています。

暗号化に既定のオプションを使用する場合、データは常に Data Lake Storage Gen1 によって管理されるキーを使用して暗号化されることに注意してください。 このオプションでは、キーは Data Lake Storage Gen1 によって管理されるため、キーをローテーションする機能はありません。

Data Lake Storage Gen1 で MEK をローテーションする方法

  1. Azure portal にサインインします。

  2. Data Lake Storage Gen1 アカウントに関連付けられているキーを格納する Key Vault インスタンスを参照します。 キーを選択します。

    Key Vault のスクリーンショット

  3. Data Lake Storage Gen1 アカウントに関連付けられているキーを選択し、このキーの新しいバージョンを作成します。 Data Lake Storage Gen1 では、現在、キーの新しいバージョンへのキーローテーションのみがサポートされていることに注意してください。 別のキーへの回転はサポートされていません。

    [新しいバージョン] が強調表示されている [キー] ウィンドウのスクリーンショット

  4. Data Lake Storage Gen1 アカウントを参照し、[ 暗号化] を選択します。

    [暗号化] が強調表示されている [Data Lake Storage Gen1 アカウント] ウィンドウのスクリーンショット

  5. 新しいキー バージョンのキーが使用可能であることを通知するメッセージが表示されます。 [ キーのローテーション ] をクリックして、キーを新しいバージョンに更新します。

    メッセージと [キーのローテーション] が強調表示されている Data Lake Storage Gen1 ウィンドウのスクリーンショット

この操作には 2 分未満で済む必要があり、キーのローテーションによる予期されるダウンタイムはありません。 操作が完了すると、新しいバージョンのキーが使用されます。

重要

キーローテーション操作が完了すると、新しいデータの暗号化に古いバージョンのキーがアクティブに使用されなくなります。 ただし、古いデータにアクセスする場合は、古いキーが必要になる場合があります。 このような古いデータの読み取りを許可するには、古いキーを削除しないでください