s3 存储桶策略访问被拒绝
s3 Bucket Policies Access Denied
我正在尝试从 aws-sdk-js
上传一个对象到 s3,但无法找到适用于我的案例的策略。我只想允许一个用户拥有上传权限和 public 读取权限。
这是我的 s3 存储桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::some-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111111111111:user/some-bucket-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::some-bucket/*"
}
]
}
我的 IAM 政策是:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Action":"s3:*",
"Resource":["arn:aws:s3:::some-bucket/*"]
}
]
}
有人可以指出我在这里做错了什么吗?
为此,您根本不必处理存储桶策略。存储桶策略用于允许服务访问您的 S3 数据库 - 而不是用户。
要允许用户访问您的 S3 数据库,请将其添加到 Permissions/Access 控制列表(位于 "bucket policy" 旁边)下并具有所需的权限。
如果绝对必须通过存储桶策略来完成,这个 link 涵盖了所有内容:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html
糟糕,我没有正确初始化 AWS.S3
,它使用的是 ec2 实例的 users/roles,而不是我分配的实例。
我正在尝试从 aws-sdk-js
上传一个对象到 s3,但无法找到适用于我的案例的策略。我只想允许一个用户拥有上传权限和 public 读取权限。
这是我的 s3 存储桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::some-bucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1111111111111:user/some-bucket-user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::some-bucket/*"
}
]
}
我的 IAM 政策是:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Action":"s3:*",
"Resource":["arn:aws:s3:::some-bucket/*"]
}
]
}
有人可以指出我在这里做错了什么吗?
为此,您根本不必处理存储桶策略。存储桶策略用于允许服务访问您的 S3 数据库 - 而不是用户。
要允许用户访问您的 S3 数据库,请将其添加到 Permissions/Access 控制列表(位于 "bucket policy" 旁边)下并具有所需的权限。
如果绝对必须通过存储桶策略来完成,这个 link 涵盖了所有内容:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-bucket-user-policy-specifying-principal-intro.html
糟糕,我没有正确初始化 AWS.S3
,它使用的是 ec2 实例的 users/roles,而不是我分配的实例。