1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

クロスアカウントアクセスでS3バケットへファイルアップロード

Posted at

やりたいこと

BアカウントのIAMユーザーから、Aアカウント所有のS3バケットへファイルをアップロード

やり方

①Aアカウント

バケット作成

設定がデフォルトでいい
(ACL使わない)
(パブリックアクセスブロックをオンのまま)

image.png

バケットポリシー設定

(BアカウントのIAMユーザー作成へアクセス権限を付与)

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Only allow writes to my bucket with bucket owner full control",
         "Effect": "Allow",
         "Principal": {
            "AWS": [
               "arn:aws:iam::BアカウントのID:user/BアカウントのIAMユーザー名"
            ]
         },
         "Action": [
            "s3:PutObject"
         ],
         "Resource": "arn:aws:s3:::Aアカウントのバケット名/*",
	"Condition": {
            "StringEquals": {
               "s3:x-amz-acl": "bucket-owner-full-control"
            }
         }
      }
   ]
}

②Bアカウント

IAMユーザー作成

CLIのアクセス情報を発行してください

③ローカルPC

CLIのスイッチロールを設定

credentialsファイルにBアカウントのアクセス情報を登録

[default]
aws_access_key_id = AアカウントのID
aws_secret_access_key = Aアカウントのアクセスキー
[b-account]
aws_access_key_id = BアカウントのID
aws_secret_access_key = Bアカウントのアクセスキー

④コマンド

--profileを付けて、Bアカウントのアクセス情報を使う
aws s3 cpのコマンドでファイルをアップロード

aws --profile b-account s3 cp ./アップロードファイル名 s3://Aアカウントのバケット名 --acl bucket-owner-full-control

image.png

無事Aアカウントのバケットへアップロードできた

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?