s3cmd 放置失败,访问被拒绝
s3cmd put failing with access denied
我正在尝试将一些文件从我的 EC2 实例复制到 S3 并使用以下命令
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": "*"
}
]
}
mybucket 的 S3 存储桶策略
{
"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 策略。
我认为除了 List:
之外,您还需要对 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/*"
]
}
]
}
用户 IAM 策略需要 read/write 的权限,而不仅仅是存储桶。 AWS 将始终应用更严格的策略,并默认为隐式 "deny".
我发现存储桶策略更适合 public 访问(即向世界提供资产),而不是限制本金。当您开始组合存储桶 + 用户策略时,就会出现复杂情况,并且通常更容易管理用户端。
我正在尝试将一些文件从我的 EC2 实例复制到 S3 并使用以下命令
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": "*"
}
]
}
mybucket 的 S3 存储桶策略
{
"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 策略。
我认为除了 List:
之外,您还需要对 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/*"
]
}
]
}
用户 IAM 策略需要 read/write 的权限,而不仅仅是存储桶。 AWS 将始终应用更严格的策略,并默认为隐式 "deny".
我发现存储桶策略更适合 public 访问(即向世界提供资产),而不是限制本金。当您开始组合存储桶 + 用户策略时,就会出现复杂情况,并且通常更容易管理用户端。