この記事は記載が間違っているので治す予定
S3 に Put する側のアカウント(234567890123)
- Private Subnet に EC2 インスタンスを作成する
- EC2 に IAM ロール(arn:aws:iam::234567890123:role/EC2Role)をアタッチする
- S3 の VPC エンドポイント(Gateway型)を作成する
- 別アカウントの S3 アクセスポイント経由でアップロードする
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: ap-northeast-1 Default output format [None]: $ aws s3 cp test.txt s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/az1-accesspoint/ upload: ./test.txt to s3://arn:aws:s3:ap-northeast-1:123456789012:accesspoint/az1-accesspoint/test.txt
S3バケットのあるアカウント(123456789012)
S3 バケットポリシー
- S3アクセスポイントに委任する
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::234567890123:role/EC2Role" }, "Action": "s3:*", "Resource": "arn:aws:s3:ap-northeast-1:123456789012:accesspoint/az1-accesspoint/object/*" } ] }
S3 アクセスポイント
- 名前: az1-accesspoint
- バケット名: az1
- ネットワークオリジン: VPC
- VPC ID: vpc-07*************80 ★別アカウント(234567890123)の VPC ID を指定
- アクセスポイントポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::234567890123:role/EC2AdminRole" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:ap-northeast-1:123456789012:accesspoint/az1-accesspoint/object/*" ★ アクセスポイントの arn の後ろに "object/*" をつける必要がある、ないと "Policy has invalid resource" と怒られる } ] }