Amazon S3 Object Ownershipは、Athenaのクロスアカウントアクセスを解決してくれるニクいやつだ
Amazon S3 Object Ownership
2020年10月2日公開
Amazon S3 Object Ownership が利用可能になり、バケットにアップロードされたオブジェクトの所有権をバケット所有者が自動的に引き受けることが可能に
S3 Object Ownership は、Amazon S3 で共有データセットを作成および維持する作業を簡素化します。
クロスアカウントで保存されたデータを、Athenaでクロスアカウントアクセスするときに便利だった
ここではCloudTrailを例にとる。CloudTrailがS3に保存するオブジェクトへのアクセス権限は、次の状態になる。
- オブジェクト所有者: CloudTrail
- オブジェクトのアクセス権限: Bucket Owner Full Access
Owner Full AccessがついているのであるアカウントAでS3にアクセス権を持つユーザであれば誰でもアクセスできるが、所有者はあくまでCloudTrail。
何が問題か?
マルチアカウント環境下で、あるアカウントに集約されたログ(ここではCloudTrailの)を見たいことはよくある。また、ログ集約アカウントへのアクセスを許可せず、他のメンバーアカウントからアクセスしたいこともよくある。
しかし、ドキュメントに従って進めたとしても、クロスアカウントなAthenaで読み出すことはできない。なぜなら、S3 Bucketに保存されている情報の所有者はCloudTrailであって保存先アカウントではないため、S3 Bucket所有者といえど好きにすることはできない
Athenaのドキュメントには、クロスアカウントでアクセスする場合、以下のBucket Policyを設定するように書いてあるが、所有者が別だとオブジェクトへのアクセス許可は付与されない。
{
"Version": "2012-10-17",
"Id": "MyPolicyID",
"Statement": [
{
"Sid": "MyStatementSid",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789123:root"
},
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload",
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::my-athena-data-bucket",
"arn:aws:s3:::my-athena-data-bucket/*"
]
}
]
}
cf. Amazon S3 バケットへの Athena のクロスアカウントアクセス - Amazon Athena
Obucjet Ownershipの変更がない時代
別AWSアカウントに保存しているCloudTrailログをAthenaから検索する - 本日も乙の記事に詳しい。
一つ一つのオブジェクトを頑張って権限変更する。とてもつらい。
aws s3 cp \
s3://cloudtrail-test/AWSLogs/123456789123/CloudTrail/ap-northeast-1/2018/12 \
s3://cloudtrail-test/AWSLogs/123456789123/CloudTrail/ap-northeast-1/2018/12 \
--recursive \
--grants full=id=<CloudTrailの開アカウントID>,id=<S3バケット所有者のアカウントID> \
read=id=<Athena検索するアカウントID>
Objcet Ownershipの変更がある時代
このようにすると保存されるログの持ち主はBucketの所有者となる。
アクセスできてハッピー
まとめ
S3 Object Ownership は、Amazon S3 で共有データセットを作成および維持する作業を簡素化します。
S3 Object Ownership は、Amazon S3 で共有データセットを作成および維持する作業を簡素化します。
Object Ownershipは、共有データセットの作成と維持に本当に便利だった。
Athenaのクロスアカウントアクセスを解決してくれるニクいやつ。
Author And Source
この問題について(Amazon S3 Object Ownershipは、Athenaのクロスアカウントアクセスを解決してくれるニクいやつだ), 我々は、より多くの情報をここで見つけました https://qiita.com/kotatsu360/items/091c6def1b41eecb696b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .