我有一个合并的结算帐户,我尝试使用S3 Sync下载结算报告。当我尝试这样做时,它会在同步目录时抛出“拒绝访问”错误。
所以我运行的bash命令是:
aws s3 sync s3://my-aws-bills /home/user/Billing
上面的命令使用123456789:user / IAMUser登录,该用户/ IAMUser是一个跨账户IAM用户。 S3 Bucket的政策是:
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:user/IAMUser"
},
"Action": [
"s3:GetBucketAcl",
"s3:GetBucketPolicy",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::my-aws-bills"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789:user/IAMUser"
},
"Action": [
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::my-aws-bills/*"
}
当我运行bash命令时,它连接正常,我看到列出的文件,但每个文件错误:
download failed: s3://my-aws-bills/123456789-aws-billing-csv-2018-03.csv to ../../home/user/Billing/123456789-aws-billing-csv-2018-03.csv An error occurred (AccessDenied) when calling the GetObject operation: Access Denied
如果我将文件从我的桌面上传到该存储桶(以帐户所有者身份登录),那么S3同步可以正常运行该文件,但不适用于AWS Billing放置的文件。
我还注意到,通过root用户,我没有权限查看AWS在其中放置的csv文件的权限。
我认为我遇到了权限问题,但我认为我已经应用的权限足以下载这些文件了吗?
答案 0 :(得分:0)
所以我相信(虽然不能证明)这里的问题是我试图使用不同账户中的用户。 我最终在与帐单帐户相同的帐户中创建了另一个IAM用户,并且可以使用与上述相同的权限访问(我刚刚更改了IAMUser)。 有意义的是,您无法以编程方式访问其他人的帐单数据,但我没有在任何地方看到它。