😀

別アカウントのS3バケットに転送する手順

2018/08/16に公開

概要

前提条件

  • 転送元
    • アカウントA
  • 転送先
    • アカウントB

手順

アカウントAでの作業

1. アカウント個別の設定を入れます。

S3のアカウント名は、AWS全体でユニークなIDがあります。Account Aにてbucketを適当に作ると、デフォルトではそのユーザのアクセス権限が付与されているので、そこからログイン中のIDがわかります。

image.png

2. 移行元のbucketにbucket policyを入れます。


{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<AWS ID of Account B>:user/<IAM account name on Account B>"
            },
            "Action": [
                "s3:ListBucket",
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::<minedia-source-bucket>/*",
                "arn:aws:s3:::<minedia-source-bucket>"
            ]
        }
    ]
}

例:
image.png

アカウントBでの作業

アカウントBの認証を設定している前提で、普通にaws s3コマンドを発行すれば終わりです。

% aws s3 sync s3://minedia-source-bucket/ s3://minedia-destination-bucket/

平均して260MB/sで転送出来ていまいました。

株式会社マインディア テックブログ

Discussion