保管中の暗号化 - Amazon Athena

保管中の暗号化

Amazon Athena では、同じリージョン内、および限られた数のリージョン間で Amazon S3 内の暗号化されたデータに対するクエリを実行できます。Amazon S3 内のクエリ結果、および AWS Glue データカタログ内のデータを暗号化することもできます。

Athena では、以下のアセットを暗号化できます。

注記

Amazon S3 内の暗号化されたデータセットに対するクエリのセットアップと、クエリ結果を暗号化するための Athena のオプションは、互いに独立しています。各オプションは別個に有効化して設定します。それぞれに異なる暗号化方法またはキーを使用できます。これは、Amazon S3 にある暗号化されたデータの読み取りが、Amazon S3 にある Athena クエリ結果を自動的に暗号化することにはならないことを意味します。逆の場合も同様です。Amazon S3 での Athena クエリ結果の暗号化は、Amazon S3 内の基盤となるデータセットを暗号化しません。

サポートされる Amazon S3 の暗号化オプション

Athena は、Amazon S3 内のデータセットとクエリ結果について、以下の暗号化オプションをサポートしています。

暗号化タイプ 説明 クロスリージョンサポート
SSE-S3 Amazon S3 マネージドキーを使用したサーバー側の暗号化 (SSE) はい
SSE-KMS AWS Key Management Service カスタマー管理のキーを使用したサーバー側の暗号化 (SSE)。
注記

この暗号化タイプの場合、Athena でのテーブルの作成時に、データが暗号化されていることを指定する必要はありません。

はい
CSE-KMS

AWS KMS カスタマー管理のキーを使用したクライアント側の暗号化 (CSE)。Athena では、このオプションに 'has_encrypted_data'='true' を指定する TBLPROPERTIES 句を使った CREATE TABLE ステートメントの使用が必要になります。詳細については、「Amazon S3 内の暗号化されたデータセットに基づくテーブルの作成」を参照してください。

いいえ

Amazon S3 での AWS KMS 暗号化の詳細については、「AWS Key Management Service デベロッパーガイド」の「AWS Key Management Service とは」と「Amazon Simple Storage Service (Amazon S3) が AWS KMS を使用する方法」を参照してください。Athena での SSE-KMS または CSE-KMS の使用に関する詳細については、AWS ビッグデータブログの「発表: Amazon Athena が暗号化されたデータのクエリのサポートを追加」を参照してください。

サポートされていないオプション

次の暗号化オプションはサポートされていません。

  • SSE と顧客提供のキー (SSE-C)

  • クライアント側マネージドキーを使用したクライアント側の暗号化

  • 非対称キー。

Amazon S3 の暗号化オプションを比較するには、「Amazon Simple Storage Service ユーザーガイド」の「暗号化を使用したデータの保護」を参照してください。

クライアント側の暗号化のためのツール

クライアント側の暗号化には、以下の 2 つのツールを利用できることに留意してください。

  • Amazon S3 暗号化クライアント – これは Amazon S3 のデータのみを暗号化し、Athena によってサポートされています。

  • AWS Encryption SDK – この SDK は、AWS のどこでもデータを暗号化するために使用できますが、Athena では直接サポートされていません。

これらのツールには互換性がなく、一方のツールで暗号化されたデータをもう一方のツールで復号化することはできません。Athena が直接サポートするのは Amazon S3 暗号化クライアントのみです。SDK を使用してデータを暗号化する場合、Athena からクエリを実行することはできますが、データが暗号化されたテキストとして返されます。

AWS Encryption SDK で暗号化されたデータを Athena を使用してクエリする場合は、データをダウンロードして復号化してから、Amazon S3 暗号化クライアントを使用して再度暗号化する必要があります。

Amazon S3 の暗号化されたデータに対する許可

Amazon S3 で使用する暗号化のタイプに応じて、Athena で使用されるポリシーに「Allow」アクションとしても知られる許可を追加することが必要になる場合があります。

  • SSE-S3 – 暗号化に SSE-S3 を使用する場合、Athena ユーザーのポリシーに追加の許可は必要ありません。適切な Amazon S3 の場所、および Athena のアクションに対する適切な Amazon S3 許可を持っているだけで十分です。適切な Athena および Amazon S3 の許可を可能にするポリシーの詳細については、「Amazon Athena の AWS 管理ポリシー」および「Amazon S3 へのアクセス権」を参照してください。

  • AWS KMS – 暗号化に AWS KMS を使用する場合、Athena ユーザーには、Athena と Amazon S3 へのアクセス許可に加えて、特定の AWS KMS アクションの実行が許可されている必要があります。これらのアクションは、Amazon S3 内のデータの暗号化に使用される AWS KMS のカスタマーマネージドキー (CMK) のキーポリシーを編集することによって許可します。適切な AWS KMS キーポリシーにキーユーザーを追加するには、AWS KMS コンソール (https://console.aws.amazon.com/kms) を使用できます。AWS KMS キーポリシーにユーザーを追加する方法については、AWS Key Management Service デベロッパーガイドの「CMK の使用をキーユーザーに許可する」を参照してください。

    注記

    高度なキーポリシーの管理者は、キーポリシーを調整することができます。kms:Decrypt は、Athena ユーザーが暗号化されたデータセットを使用するために許可される最小限のアクションです。暗号化されたクエリ結果を使用する場合、許可される最小限のアクションは kms:GenerateDataKeykms:Decrypt です。

    Athena でクエリする Amazon S3 内のデータセットに AWS KMS で暗号化されたオブジェクトが大量に含まれている場合、AWS KMS はクエリ結果をスロットリングする場合があります。小さいオブジェクトが大量にある場合は特に、スロットルされる可能性が高くなります。Athena は再試行リクエストを撤回しますが、それでもスロットリングエラーが発生する可能性があります。多数の暗号化されたオブジェクトを操作しているときにこの問題が発生した場合は、Simple Storage Service (Amazon S3) バケットキーを有効にして KMS への呼び出し数を減らすのも 1 つの方法です。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「Amazon S3 バケットキーを使用した SSE-KMS のコストの削減」を参照してください。他にも、AWS KMS のサービスクォータを引き上げることができます。詳細については、AWS Key Management Service デベロッパーガイドの「クォータ」を参照してください。

Athena で Amazon S3 を使用する場合の許可に関するトラブルシューティング情報については、「Athena のトラブルシューティング」トピックの「許可」セクションを参照してください。

AWS Glue データカタログの暗号化されたメタデータに対するアクセス許可

AWS Glue Data Catalog のメタデータを暗号化する場合は、Athena へのアクセスに使用する ポリシーに "kms:GenerateDataKey""kms:Decrypt"、および "kms:Encrypt" アクションを追加する必要があります。詳細については、Athena から AWS Glue Data Catalog の暗号化されたメタデータにアクセスする を参照してください。