AWS S3 Sync - 结算报表GetObject(拒绝访问)

时间:2018-03-03 13:28:39

标签: amazon-web-services amazon-s3

我有一个合并的结算帐户,我尝试使用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文件的权限。

我认为我遇到了权限问题,但我认为我已经应用的权限足以下载这些文件了吗?

1 个答案:

答案 0 :(得分:0)

所以我相信(虽然不能证明)这里的问题是我试图使用不同账户中的用户。 我最终在与帐单帐户相同的帐户中创建了另一个IAM用户,并且可以使用与上述相同的权限访问(我刚刚更改了IAMUser)。 有意义的是,您无法以编程方式访问其他人的帐单数据,但我没有在任何地方看到它。