背景・目的
こちらの記事でGlueデータカタログへのアクセスを試しましたが、提供側のメタ情報を暗号化した場合に、そのままだとアクセスできません。
本記事では、メタ情報を暗号化しクロスアカウントアクセスする方法を試してみます。
まとめ
暗号化したデータカタログにクロスアカウントアクセスするには、Customer managed keyを作成し、キーポリシーのPrincipalを指定します。
概要
Data Catalog の暗号化
こちらのData Catalog の暗号化を元に整理します。
暗号化されるオブジェクトは、下記のとおりです。
- データベース
- テーブル
- パーティション
- テーブルのバージョン
- Connect
- ユーザ定義関数
暗号化に使用できる鍵は、下記のとおりです。このうち、AWS managed keyについてはクロスアカウントアクセスできないため、Customer managed keyを使用します。
- AWS managed key
- Customer managed key
実践
KMSキーの作成
Glue Data catalog settings
KMSのキーポリシーを修正
-
キーポリシーに、複合のために「kms:Decrypt」を追加します。
{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{アカウントB}:root" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:{リージョン名}:{アカウントA}:key/{キーID}" }
クロスアカウント(アカウントB)のAthenaで確認
考察
今回、暗号化済みデータカタログへのクロスアカウントでアクセスする方法を試しました。このようなケースは、多々あるかと思いますので、忘れないようにメモとして残しておきます。
参考