見出し画像

【SAA対策】S3バケットを他アカウントへ共有する

バケットポリシー、IAMポリシーでの設定方法

いくつか方法はあるが、その中で一つ紹介する。
S3バケット(バケットA)を保有しているアカウントA、バケットAを使用したいアカウントBのユーザーBがいる。
設定方法の概要として、S3ベースのバケットポリシーを設定し、他アカウントにはIAMポリシーを設定する。

設定の手順

1、アカウントAのバケットAのバケットポリシーでJSON形式のポリシーを記述し設定する。そのポリシー内には、PrincipalとしてアカウントBのユーザーBのARNを設定する。
2、アカウントBのユーザーBにIAMにて、バケットAに対するアクセスを許可するIAMポリシーをJSON形式で記述し、付与する。その際に、ResourceにはバケットAのARNを設定する。

まとめ

上記2つの設定でユーザーBはバケットAにアクセスすることができる。ただし、コンソール画面ではなく、CLIでの操作に限定される。
このようなアクセスは、クロスアカウントポリシーの評価論理の内容に沿って設定していく必要がある。裏付ける情報を読みたい方はこちらのAWS公式リファレンスを参考にしてみたください。

具体的なバケットポリシーとIAMポリシーの例

{
 "Version": "2012-10-17",
 "Statement": [
 {
  "Effect": "Allow",
  "Principal": {
   "AWS": "arn:aws:iam::アカウントBのアカウントid:user/user-b"
  },
  "Action": [
   "s3:Get*",
   "s3:List*"
  ],
  "Resource": [
   "arn:aws:s3:::bucket-a",
   "arn:aws:s3:::bucket-a/*"
  ]
 }
 ]
}

https://blog.serverworks.co.jp/tech/2020/04/28/s3-share2/

{
 "Version": "2012-10-17",
 "Statement": [
 {
  "Effect": "Allow",
  "Action": [
   "s3:Get*",
   "s3:List*"
  ],
  "Resource": "arn:aws:s3:::bucket-a"
 }
 ]
}

https://blog.serverworks.co.jp/tech/2020/04/28/s3-share2/

いいなと思ったら応援しよう!