【发布时间】:2016-09-13 22:39:34
【问题描述】:
我正在尝试将文件从 Amazon 服务器 (EC2) 上传到 S3。
首先,我创建了一个名为“backup”的新 IAM 用户。我向该用户附加了托管策略“AmazonS3FullAccess”,这就足够了。此外,我添加了以下政策:
{
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": ["arn:aws:s3:::bucket", "arn:aws:s3:::bucket/*"]
}
]
}
我向用户添加访问密钥。
我回到服务器并通过 aws configure 输入 ID 和访问密钥。
在 S3 存储桶配置中,用户“pinco.pallo”(“backup”是“pinco.pallo”的 IAM)默认拥有所有被授权者,这就足够了。此外,我尝试添加以下策略:
{
"Version": "2008-10-17",
"Id": "Policy1425416644138",
"Statement": [
{
"Sid": "Stmt1425416630319",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXX:user/backup"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*"
},
{
"Sid": "Stmt1425416630319",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::XXXXXXXX:user/backup"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket"
}
]
}
顺便说一句,当我尝试
aws s3 cp --sse --region eu-west-1 file s3://bucket/
我收到以下错误:
upload failed: ./file to s3://bucket/file A client error (AccessDenied) occurred when calling the PutObject operation: Access Denied
有人有一些想法吗?非常感谢。
【问题讨论】:
-
当然,如果我将所有权限授予Everyone,我可以复制文件,但是这个设置对我来说是不可接受的,因为bucket应该是私有的。
-
您列出的第一个保单没有“委托人”,即受让人。
-
第二个只列出bucket作为资源,你应该添加bucket/*
-
谢谢你mojo,但我不明白你的cmets:(1)我列出的第一个政策是指IAM,谁应该是“负责人”? (2) second one指bucket和bucket/*有什么想法?
-
Nicola,我采用了您的 IAM 策略,将存储桶名称更改为我自己的名称,并且能够成功
aws s3 ls和aws s3 cp file s3://bucket。问题不在于您的 IAM 政策。您提到您为aws configure“键入 ID 和访问密钥”,但该命令需要访问密钥和秘密密钥——这就是您的意思吗?
标签: amazon-web-services amazon-ec2 amazon-s3 aws-cli