保存中のデータの暗号化

  • AWSは、高い可用性を備えたセキュアでスケーラブルなクラウドコンピューティングプラットフォームを提供し、幅広いアプリケーションを構築するための柔軟性を提供します。
  • AWSでは、完全に自動化された AWS 暗号化ソリューションから手動のクライアント側オプションに至るまで、残りの部分でデータを暗号化するためのいくつかのオプションを使用できます。
  • 暗号化には3つのことが必要です。
    • 暗号化するデータ
    • 暗号化キー
    • データを暗号化する暗号化アルゴリズムの方法
  • AWS は、次のパラメータの残りの部分でデータを保護するためのさまざまなモデルを提供します。
    • 暗号化方式
      • 暗号化アルゴリズムの選択には、アプリケーションに固有のセキュリティ、パフォーマンス、およびコンプライアンス要件の評価が含まれます。
    • キーマネージメントインフラストラクチャ (KMI)
      • KMI は、不正アクセスからの暗号化キーの管理と保護を可能にします。
        • KMI が提供するもの
          • プレーンテキストキーを保護するストレージレイヤ
          • キーの使用を承認する管理層
  • ハードウェアセキュリティモジュール (HSM)
    • KMI のキーを保護する一般的な方法は、HSM を使用しています。
    • HSM は、デバイス上のキーを使用して暗号化操作を実行する専用のストレージおよびデータ処理デバイスです。
    • HSM は通常、不正使用からキーを保護するために、改ざんの証拠、または抵抗を提供します。
    • ソフトウェアベースの承認レイヤーは、HSM を管理できるユーザーと、HSM 内のどのキーを使用できるかを制御します。
  • AWS CloudHSM
    • AWS CloudHSM アプライアンスには、アプライアンスのゼロをトリガーする物理的および論理的な改ざん検出と応答のメカニズムがあります。
    • ゼロは、HSM の揮発性メモリを消去し、復号化されているプロセス内のすべてのキーが格納され、格納されたオブジェクトを暗号化するキーを破棄し、HSM 上のすべてのキーにアクセスできず、回復不能になることを効果的に引き起こします。
    • AWS CloudHSM を使用してキーマテリアルを生成および保存し、暗号化および復号化操作を実行できます。
    • ただし、AWS CloudHSM は、キーライフサイクル管理機能 (アクセス制御ポリシー、キーローテーションなど) を実行せず、互換性のある KMI を必要とします。
    • KMI は、オンプレミスまたは Amazon EC2 内でデプロイすることができ、データと暗号化キーを保護するために SSL を介して AWS CloudHSM インスタンスと安全に通信することができます。
    • AWS CloudHSM サービスはセーフ Luna アプライアンスを使用しており、セーフルナプラットフォームをサポートする任意のキーマネージメントサーバーも AWS CloudHSM で使用できます。
  • AWS Key Management Service (KMS)
    • AWS KMS は、AWS サービスおよびアプリケーションのデータを暗号化するためのキーのプロビジョニングと使用を可能にするマネージ暗号化サービスです。
    • マスタキーは、作成後、サービスからエクスポートしないように設計されています。
    • AWS KMS では、マスタキーにアクセスしてデータの暗号化と復号化を行うユーザーを一元的に制御できるため、このアクセスを監査することができます。
    • データは、アカウントの下にある特定のマスターキーで暗号化または復号化されるように KMS に送信できます。
    • AWS KMS は、他の AWS サービス (Amazon EBS, Amazon S3、 Amazon Redshift など) および AWS SDK とネイティブに統合されており、これらのサービスまたはカスタムアプリケーション内のデータの暗号化を簡素化します。
    • AWS KMS は、グローバルな可用性、低レイテンシ、およびキーの高レベルの耐久性を提供します。

AWS の暗号化モデル

AWS の暗号化モデルは、暗号化方法と KMI をどのように提供するかによって異なります。

  • 暗号化方法と KMI 全体を制御します。
  • 暗号化方式を制御すると、AWS は KMI のストレージコンポーネントを提供し、KMI の管理レイヤを提供します。
  • AWS は、暗号化方式と KMI 全体を制御します。

AWSにおける暗号化モデル

モデルA: 暗号化方式と KMI 全体を制御します

  • 独自の KMI を使用して、キーへのアクセスを生成、保存、および管理したり、アプリケーション内のすべての暗号化方法を制御したりできます。
  • データの機密性、完全性、および可用性を確保するための適切なストレージ、管理、およびキーの使用は、お客様の責任です。
  • AWS にはキーへのアクセス権がなく、代わって暗号化や復号化を実行することはできません。
  • Amazon S3
    • データの暗号化は、オブジェクトが AWS S3 に送信される前に行われます。
    • データの暗号化は、任意の暗号化方法を使用して行うことができ、暗号化されたデータは、Amazon s3 API で PUT リクエストを使用してアップロードすることができます。
    • データを暗号化するために使用するキーは、KMI に安全に保存する必要があります。
    • このデータを復号化するには、Amazon S3 API の GET リクエストを使用して、暗号化されたオブジェクトを Amazon S3 からダウンロードし、KMI のキーを使用して解読することができます。
    • AWS はクライアント側の暗号化処理を提供するため、お客様に代わってデータを暗号化および復号化する AWS S3 暗号化クライアントにキーを提供することができます。ただし、AWS は、キーまたは暗号化されていないデータにアクセスすることはありません。

  • Amazon EBS
    • Amazon のエラスティックブロックストア (Amazon EBS) は、Amazon EC2 インスタンスで使用するブロックレベルのストレージボリュームを提供します。Amazon EBS ボリュームはネットワークに接続されており、インスタンスの存続期間とは無関係に永続化します。
    • Amazon EBS ボリュームは、ブロックデバイスとしてインスタンスに表示されるため、ファイルシステムレベルまたはブロックレベルの暗号化のためのほとんどの標準暗号化ツールを利用できます。
    • ブロックレベルの暗号化
      • ブロックレベルの暗号化ツールは、通常、カーネル空間デバイスドライバを使用してファイルシステム層の下で動作し、データの暗号化と復号化を実行します。
      • これらのツールは、データが格納されているディレクトリに関係なく、ボリュームに書き込まれたすべてのデータを暗号化する場合に便利です。
        *ファイルシステムレベルの暗号化
      • ファイルシステムレベルの暗号化は、通常、暗号化されたファイルシステムを既存のファイルシステムの上に積み重ねて動作します。
      • このメソッドは、通常、特定のディレクトリを暗号化するために使用されます。
    • これらのソリューションでは、手動または KMI からキーを提供する必要があります。
    • ブロックレベルおよびファイルシステムレベルの暗号化ツールは、起動時に自動的に信頼キーを使用できるようにしないため、Amazon EBS ブートボリュームではないデータボリュームの暗号化にのみ使用できます。
    • 利用可能なサードパーティ製のソリューションがあります, これは、ブートとデータの両方のボリュームを暗号化するだけでなく、キーを供給し、保護することができます。
  • Amazon Storage Gateway
    • AWS ストレージゲートウェイは、オンプレミスのソフトウェアアプライアンスを Amazon S3 と接続するサービスです。AWS ストレージゲートウェイに接続されているディスクボリューム上のデータは、ポリシーに基づいて Amazon S3 に自動的にアップロードされます。
    • ディスクボリューム上のソースデータの暗号化は、ディスクに書き込む前に行うか、または、AWS ストレージゲートウェイが公開する iSCSI エンドポイントでブロックレベルの暗号化を使用して、ディスクボリューム上のすべてのデータを暗号化することができます。
  • Amazon RDS
    • Amazon RDS は、データストレージに使用する接続されたディスクを公開しないため、EBS セクションの技術を使用した透過的なディスク暗号化は適用できません。
    • ただし、データが RDS に書き込まれ、読み取り後に復号化される前に、個々のフィールドデータを暗号化できます。

モデルB: 暗号化方式を制御し、AWS は KMI ストレージコンポーネントを提供し、KMI 管理レイヤを提供します。

  • モデルB は、暗号化メソッドが管理されているモデルA に似ています。
  • モデルB は、オンプレミスキーストレージシステムではなく、AWS CloudHSM でキーが維持されるモデルA へのアプローチで異なります。
  • キーを使用するには、専用の HSM 内の暗号化パーティションにアクセスできるだけです。

モデルC: AWS は暗号化方式と KMI 全体を制御します。

  • AWS は、データのサーバー側の暗号化を提供および管理し、暗号化方法とキーを透過的に管理します。
  • AWS KMS およびデータを暗号化するその他のサービスでは、エンベロープ暗号化と呼ばれるメソッドを使用して、パフォーマンスとセキュリティのバランスを確保します。
  • エンベロープ暗号化方式
    • マスターキーは、あなたまたは AWS によって定義されます。
    • データ暗号化が要求された時点で、AWS サービスによってデータキー (データ暗号化キー) が生成される
    • データキーは、データを暗号化するために使用されます。
    • データキーは、データを格納するサービスに固有のキー暗号化キー (マスターキー) で暗号化されます。
    • 暗号化されたデータキーと暗号化されたデータは、お客様に代わって AWS ストレージサービスによって保存します。
  • データキーを暗号化するために使用されるマスターキー (キー暗号化キー) は、データとデータキーとは別に格納され、管理されます。
  • データの復号化では、プロセスは逆になります。暗号化データキーはキー暗号化キーを使用して復号化されます。データキーは、データを復号化するために使用されます。
  • 暗号化キーの承認された使用は自動的に行われ、AWS によって安全に管理されます。
  • これらのキーへの不正なアクセスがデータの漏えいにつながる可能性があるため、AWS は、不正アクセスの可能性を最小限に抑える強力なアクセス制御を備えたシステムとプロセスを構築し、これらのシステムをサードパーティの監査によって検証し、SOC 1、2、および3、PCI DSS、FedRAMP などのセキュリティ認証を実現しました。
  • Amazon S3
    • SSE-S3
      • AWS は、一意のデータキーを使用して各オブジェクトを暗号化します。
      • データキーは、S3 によって管理される定期的に回転したマスターキーで暗号化されます。
      • Amazon S3 サーバー側暗号化では、オブジェクトとマスタキーの両方に対して256ビットの高度暗号化標準 (AES) キーが使用されます。
    • SSE-KMS
      • マスターキーは、アカウントの KMS で定義および管理されます。
      • オブジェクトの暗号化
        • オブジェクトがアップロードされると、要求が KMS に送信され、オブジェクトキーが作成されます。
        • KMS は、一意のオブジェクトキーを生成し、マスターキーを使用して暗号化します。KMS は、この暗号化されたオブジェクトキーを、プレーンテキストオブジェクトキーと共に Amazon S3 に返します。
        • Amazon S3 Web サーバは、プレーンテキストオブジェクトキーを使用してオブジェクトを暗号化し、暗号化されたオブジェクトキーを使って、現在の暗号オブジェクトを格納し、平文のオブジェクトキーをメモリから削除します。
      • オブジェクトの復号化
        • 暗号化されたオブジェクトを取得するために、Amazon S3 は暗号化されたオブジェクトキーを AWS KMS に送信します。
        • AWS KMS は、正しいマスターキーを使用してオブジェクトキーを復号化し、復号化された (プレーンテキスト) オブジェクトキーを S3 に返します。
        • Amazon S3 は、平文オブジェクトキーを使用して暗号化されたオブジェクトを復号化し、それをあなたに返します。
    • SSE-C
      • Amazon S3 には、オブジェクトのアップロード中に暗号化キーが用意されています。
      • 暗号化キーは、AES-256 を使用してデータを暗号化するために Amazon S3 によって使用されます。
      • オブジェクトの暗号化後、Amazon S3 は暗号化キーを削除します。
      • ダウンロードするには、AWS が一致し、復号化してオブジェクトを返すのと同じ暗号化キーを指定する必要があります。
  • Amazon EBS
    • Amazon EBS ボリュームを作成するときに、ボリュームの暗号化に使用するマスタキーを KMS で選択できます。
    • ボリュームの暗号化
      • Amazon EC2 サーバーは、認証済みの要求を AWS KMS に送信してボリュームキーを作成します。
      • AWS KMS はこのボリュームキーを生成し、マスターキーを使用して暗号化し、プレーンテキストのボリュームキーと暗号化されたボリュームキーを Amazon EC2 サーバーに返します。
      • プレーンテキストのボリュームキーは、接続されている EBS ボリュームとの間で行われるすべてのデータを暗号化および復号化するためにメモリに格納します。
    • ボリューム復号化
      • 暗号化ボリューム (またはそのボリュームから派生した暗号化されたスナップショット) をインスタンスに再アタッチする必要がある場合、暗号化されたボリュームキーを復号化するために AWS KMS への呼び出しが行われます。
      • AWS KMS は、この暗号化されたボリュームキーを正しいマスターキーで復号化し、復号化したボリュームキーを Amazon EC2 に返します。
  • Amazon Glacier
    • Glacier は、デフォルトでは、データの暗号化を提供します。
    • ディスクに書き込まれる前に、AWS コントロールの別のシステムに格納されている Amazon Glacier サービス固有の256ビット AES キーを使用して、データは常に自動的に暗号化されます。
  • Amazon Storage Gateway
    • AWS ストレージゲートウェイは、データを SSL 経由で AWS に転送します。
    • AWS ストレージゲートウェイは、Amazon S3 または Amazon Glacier の残りの部分で暗号化されたデータを、それぞれのサーバー側の暗号化スキームを使用して格納します。
  • Amazon RDS -Oracle-
    • Amazon RDS で Oracle の高度なセキュリティオプションは、ネイティブの透過的データ暗号化 (TDE) とネイティブネットワーク暗号化 (NNE) 機能を活用するために使用することができます。
    • Oracle 暗号化モジュールは、データベースを暗号化するためのデータとキー暗号化キーを作成します。
    • Amazon RDS の Oracle インスタンスに固有のキー暗号化キーは、定期的に回転された256ビット AES マスターキーによって暗号化されます。
    • マスターキーは Amazon RDS サービスに固有のもので、AWS コントロールの別のシステムに格納されます。
  • Amazon RDS -SQL Server-
    • Amazon RDS では、Microsoft SQL Server に対して透過的データ暗号化 (TDE) を準備できます。
    • SQL Server 暗号化モジュールは、データベースを暗号化するためのデータと Key-encrypting キーを作成します。
    • Amazon RDS の SQL Server インスタンス固有のキー暗号化キーは、定期的にローテーションされたリージョンの256ビット AES マスターキーによって暗号化されます。
    • マスターキーは Amazon RDS サービスに固有のもので、AWS コントロールの別のシステムに格納されます。

AWS認定試験の練習問題

  • 質問はインターネットから収集され、答えは自分の知識と理解に基づいてマークされます(これはあなたと異なる場合があります)。
  • AWSサービスは毎日更新され、回答と質問はすぐに時代遅れになる可能性がありますので、それに応じて調査してください。
  • AWSのアップデートのペースを追うためにAWS試験の質問は更新されないため、基礎となる機能が変更されても質問が更新されないことがあります。
  • さらなるフィードバック、ディスカッション、修正を可能にします。
  1. EBS ボリューム上の残りのデータをセキュリティで保護するにはどうすればいいですか。
    1. S3 サーバー側暗号化サービスを使用してボリュームを暗号化します。
    2. EC2 SSL インタフェースを使用して、ボリュームをインスタンスに接続します。
    3. ボリュームへの読み取りおよび書き込みアクセスを制限する IAM ポリシーを作成します。
    4. シーケンシャルではなく、ランダムにデータを書き込みます。
    5. EBS ボリュームの上に暗号化されたファイルシステムを使用します。
  2. 会社のポリシーでは、機密データの暗号化が必要です。EC2 インスタンスに接続されている EBS データボリューム上で、データを残りの部分に保存している間に保護するためのオプションが考えられます。これらのオプションのうち、残りの部分でデータを暗号化することができますか?(3 つの回答を選択)
    1. サードパーティのボリューム暗号化ツールを実装する。
    2. デフォルトでは EBS ボリュームが暗号化されるため、何も行いません。
    3. EBS に格納する前に、アプリケーション内のデータを暗号化します。
    4. ファイルシステムレベルでネイティブデータ暗号化ドライバを使用してデータを暗号化します。
    5. サーバー上で実行されているすべてのサービスに対して SSL/TSL を実装します。
  3. 同社は、Amazon のシンプルなストレージサービス (S3) にデータを格納している。同社のセキュリティポリシーは、データが残りの部分で暗号化されることを義務付けています。これを実現する方法は次のどれですか。3つの回答を選択します。
    1. AWS キーマネージメントサービスマネージキーで Amazon S3 サーバー側暗号化を使用します。
    2. Amazon S3 サーバー側暗号化をお客様が提供するキーで使用します。
    3. Amazon S3 サーバー側暗号化を EC2 キーペアで使用します。
    4. Amazon S3 バケットポリシーを使用して、残りのデータへのアクセスを制限します。
    5. 独自のマスターキーを使用して Amazon S3 に取り込む前に、クライアント側のデータを暗号化します。
    6. Amazon S3 への転送中に、SSL を使用してデータを暗号化します。
  4. ネイティブ暗号化を提供する2つのサービス
    1. Amazon EBS
    2. Amazon Glacier
    3. Amazon Redshift(オプション)
    4. Amazon RDS(オプション)
    5. Amazon Storage Gateway
  5. CloudHSM を使用できる AWS サービス (2つを選択)
    1. S3
    2. DynamoDB
    3. RDS
    4. Elasticache
    5. Amazon Redshift

リファレンス

AWS Securing Data at Rest with Encryption Whitepaper


Jayendra’s Blog

この記事は自己学習用に「AWS Encrypting Data at Rest – Whitepaper – Certification (Jayendra’s Blogより)」を日本語に訳した記事です。