想要存取跨越不同帳號的 s3 ,應該怎麼設定呢?
有個數據分析的需求是,資料定期的整理到 B 帳號的 s3 上。但是,一般分析是使用 A 帳號的 s3 。
0 .
使用 B 帳號建立好 s3 bucket
可以在 Edit bucket policy 設定
以下是是一個範例 可以代換 accountAid 跟 my-table
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "myconfig",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountAid:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-table/*"
},
{
"Sid": "myconfig",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::accountAid:root"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-table"
}
]
}
這樣便設定好讓 A 帳號也可以讀取 B 帳號建立的 s3 bucket
可以使用 s3 指令驗證
$ aws s3 ls s3://my-table --profile accountA
2017-02-13 15:31:50 6 mytest
$ aws s3 cp /tmp/mytest s3://my-table/zzz --profile accountA
upload: ../../../tmp/mytest to s3://my-table/zzz
awscli 多重 profile 可以加在 ~/.aws/credentials
[accountA]
aws_access_key_id = aaaaa
aws_secret_access_key = bbbb
region = us-west-1
詳細的文章資料可以參考 Amazon 上的文件
Example 2: Bucket Owner Granting Cross-Account Bucket Permissions - Amazon Simple Storage Service
http://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html
沒有留言:
張貼留言