あるデータエンジニアリングチームは、マーケティング ・財務 ・経営企画の3部門がAmazon Athenaを共有しています。 セキュリティ部門から以下の要件が示されました: - 各部門のクエリ結果は他部門から参照できないよう分離すること - すべてのクエリ結果はAWS KMSカスタマーマネージドキー(CMK)で暗号化して保存すること(ユーザーが設定を変更できないよう強制すること) - 財務部門のクエリによるS3スキャン量を月次で上限設定しコスト超過を防ぐこと Athenaの機能を使ってこれらの要件をすべて満たす最も適切な方法はどれですか?
Athenaワークグループはクエリ実行グループを分離する機能です。ワークグループごとに①クエリ結果の保存先S3パスを指定して結果を分離、 ②KMS暗号化を強制(ユーザーによる設定変更を禁止するオプションあり)、 ③クエリあたり・ワークグループあたりのデータスキャン量の上限を設定できます。IAMポリシーで「athena:StartQueryExecution」を特定ワークグループのみ許可することで部門間の分離が実現します。 選択肢A の別 AWS アカウント分割は確実ですが、大規模なアーキテクチャ変更を伴い管理コストが増大します。 選択肢C の S3 バケットポリシーのみでは Athena 実行レベルでの暗号化強制やスキャン量の上限設定ができません。 選択肢D の Lake Formation はテーブル・列レベルのデータアクセス制御に使用するもので、クエリ結果の暗号化強制やスキャンコスト上限の管理には対応していません。