Amazon S3 内の暗号化されたデータセットに基づくテーブルの作成 - Amazon Athena

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 内の暗号化されたデータセットに基づくテーブルの作成

テーブルを作成するときは、データセットが Amazon S3 で暗号化されていることを Athena で指定します。これは、SSE-KMS を使用するときは必要ありません。SSE-S3 と AWS KMS 暗号化の両方について、Athena がデータセットを復号してテーブルを作成する方法を決定するため、キー情報を提供する必要はありません。

テーブルを作成するユーザーを含めて、クエリを実行するユーザーは、このトピックで前述したアクセス許可を持っている必要があります。

重要

EMRFS と共に Amazon EMR を使用して暗号化された Parquet ファイルをアップロードする場合は、fs.s3n.multipart.uploads.enabledfalse に設定して、マルチパートアップロードを無効にする必要があります。これを行わないと、Athena は Parquet ファイルの長さを判断できず、HIVE_CANNOT_OPEN_SPLIT エラーが発生します。詳細については、「Amazon EMR 管理ガイド」の「Amazon S3 用のマルチパートアップロードを設定する」を参照してください。

データセットが Amazon S3 で暗号化されていることを指定するには、以下のいずれかの手順を実行します。SSE-KMS を使用する場合、このステップは不要です。

  • 次の例のように、CREATE TABLE ステートメントで、'has_encrypted_data'='true' を指定する TBLPROPERTIES 句を使用します。

    CREATE EXTERNAL TABLE 'my_encrypted_data' ( `n_nationkey` int, `n_name` string, `n_regionkey` int, `n_comment` string) ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' LOCATION 's3://bucket/folder_with_my_encrypted_data/' TBLPROPERTIES ( 'has_encrypted_data'='true')
  • statement.executeQuery() を使用して CREATE TABLE ステートメントを実行するときには、前の例にあるように、JDBC ドライバーを使用して TBLPROPERTIES 値を設定します。

  • Athena コンソールを使用して、フォームを使用したテーブルの作成およびテーブルの場所の指定を行う場合、[Encrypted data set] (暗号化されたデータセット) のオプションを選択します。

    
                            テーブルの追加フォームで暗号化されたデータセットを選択する

Athena コンソールのテーブルのリストでは、暗号化されたテーブルにはキー型のアイコンが表示されます。


                    暗号化テーブルのアイコン