

# マネージドクエリ結果を暗号化する
<a name="encrypting-managed-results"></a>

Athena は、[マネージドクエリ結果](managed-results.md) を暗号化するための以下のオプションを提供します。

## AWS 所有キーを使用した暗号化
<a name="encrypting-managed-results-aws-owned-key"></a>

これは、マネージドクエリ結果を使用する場合のデフォルトのオプションです。このオプションは、ユーザーが AWS 所有キーを使用してクエリ結果を暗号化することを示します。AWS 所有キーが AWS アカウントに保存されることはなく、AWS 所有の KMS キーのコレクションの一部となります。AWS 所有のキーを利用しても利用料はかからず、アカウントの AWS KMS クォータにもカウントされません。

## AWS KMS カスタマーマネージドキーを使用して暗号化する
<a name="encrypting-managed-results-customer-managed-key"></a>

カスタマーマネージドキーは、お客様が作成、所有、管理する AWS アカウントの KMS キーです。これらの KMS キーでは、キーポリシー、IAM ポリシー、権限の確立と管理、有効化と無効化、暗号化マテリアルのローテーション、タグの追加、KMS キーを参照するエイリアスの作成 、KMS キー削除のスケジューリングなどを含め、これらを完全に制御できます。詳細については、「[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」を参照してください。

## Athena がカスタマーマネージドキーを使用して結果を暗号化する方法
<a name="encrypting-managed-results-how-ate-uses-cmk"></a>

カスタマーマネージドキーを指定すると、Athena はマネージドクエリ結果に保存されるときに、そのマネージドキーを使用してクエリ結果を暗号化します。`GetQueryResults` を呼び出すと、結果の復号に同じキーが使用されます。カスタマーマネージドキーの状態を無効に設定するか、マネージドキーの削除をスケジュールすると、Athena とすべてのユーザーがこのキーで結果を暗号化または復号できなくなります。

Athena は、エンベロープ暗号化とキー階層を使用してデータを暗号化します。AWS KMS 暗号化キーは、このキー階層のルートキーを生成および復号するために使用されます。

各結果は、暗号化時にワークグループで設定されたカスタマーマネージドキーを使用して暗号化されます。キーを別のカスタマーマネージドキーまたは AWS 所有キーに切り替えても、新しいキーで既存の結果を再暗号化することはありません。特定のカスタマーマネージドキーの削除と無効化は、そのキーで暗号化した結果の復号にのみ影響します。

Athena は、結果を暗号化および復号するための `kms:Decrypt`、`kms:GenerateDataKey`、および `kms:DescribeKey` オペレーションを実行するために、暗号化キーにアクセスする必要があります。詳細については、「[Amazon S3 の暗号化されたデータに対する許可](encryption.md#permissions-for-encrypting-and-decrypting-data)」を参照してください。

`StartQueryExecution` API を使用してクエリを送信し、`GetQueryResults` を使用して結果を読み取るプリンシパルには、Athena および Amazon S3 のアクセス許可に加えて、`kms:Decrypt`、`kms:GenerateDataKey`、および `kms:DescribeKey` オペレーションのカスタマーマネージドキーに対するアクセス許可も必要です。詳細については、「[AWS KMS のキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users)」を参照してください。