2015-05-18 90 views
1

我想一些文件從我的EC2實例S3複製並使用以下命令s3cmd把訪問失敗拒絕

s3cmd put datafile s3://mybucket/datafile 

,並出現以下錯誤

ERROR: S3 error: Access Denied 

我有以下IAM政策

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "ec2:*", 
      "s3:ListAllMyBuckets", 
      "s3:ListBucket" 
     ], 
     "Resource": "*" 
    } 
] 
} 

S3鬥政策mybucket

{ 
"Version": "2008-10-17", 
"Id": "backupPolicy", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "arn:aws:iam::xxxxx:user/xxxx" 
     }, 
     "Action": [ 
      "s3:ListBucket", 
      "s3:PutObjectAcl", 
      "s3:PutObject" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::mybucket/*", 
      "arn:aws:s3:::mybucket" 
     ] 
    } 
] 
} 

我不知道我在做什麼錯。 s3cmd ls s3://mybucket工作正常。

我試着在SO上搜索這個問題,但所有的帖子基本上要求你添加IAM策略,我已經有了。

回答

1

我認爲你需要有寫權限爲IAM除了列出:

{ 
"Version": "2012-10-17", 
"Statement": [ 
{ 
    "Effect": "Allow", 
    "Action": [ 
     "ec2:*", 
     "s3:ListAllMyBuckets", 
     "s3:ListBucket" 
    ], 
    "Resource": "*" 
}, 
{ 
    "Sid": "Stmt1406613887001", 
    "Effect": "Allow", 
    "Action": [ 
    "s3:*" 
    ], 
    "Resource": [ 
    "arn:aws:s3:::mybucket", 
    "arn:aws:s3:::mybucket/*" 
    ] 
} 
] 
} 
1

用戶IAM政策需要的權限爲讀/寫,不(只)桶。 AWS將始終應用更嚴格的策略,並默認爲隱式「拒絕」。

我發現存儲桶策略更適合公共訪問(即向全球服務資產),而不是限制委託人。當您開始合併存儲桶+用戶策略時,會出現複雜情況,並且管理用戶端通常容易得多。

相關問題