同步所需的AWS权限

Mor*_*ajb 9 amazon-s3 amazon-ec2

我有一台需要与S3同步文件夹的Windows机器.

我试试

"C:\Program Files\amazon\AWSCLI\aws.exe" s3 sync components 
s3://test/MyTest/ --acl public-read --
cache-control "public, must-revalidate, proxy-revalidate, max-age=1800"
Run Code Online (Sandbox Code Playgroud)

得到错误"调用PutObject操作时发生客户端错误(AccessDenied):访问被拒绝"

同一目录的s3 rms3 cp工作正常.

我有以下权限:

"Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource":  
Run Code Online (Sandbox Code Playgroud)

Jor*_*geM 25

您需要所有这些操作:

  • s3:DeleteObject
  • s3:GetBucketLocation
  • s3:GetObject
  • s3:ListBucket
  • s3:PutObject

不仅PutObject,为了获得工作 S3 同步,请使用此策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Resource": [
                "arn:aws:s3:::YOUR_BUCKET_NAME",
                "arn:aws:s3:::YOUR_BUCKET_NAME/*"
            ],
            "Sid": "Stmt1464826210000",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • 您还需要添加“s3:PutObjectAcl”操作的权限 (3认同)
  • 我还需要添加 `ListObjects` 进行同步 (3认同)

Joh*_*ein 6

同步文件还需要READ权限,因为AWS命令行界面(CLI)需要查看现有文件以确定它们是否已经存在或已被修改。

因此,您还需要授予ListBucket权限。

如果您使用aws s3 cp而不是aws s3 sync,则不需要这样做。