#1 楼
亚马逊的IAM角色通常向角色授予对特定ARN(亚马逊资源名称)的访问权限。 Amazon在他们的页面上指出,对于S3,资源...可以是存储桶名称或存储桶名称/对象键。
它们还为执行此操作提供了一个有用的示例,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::test"]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::test/*"]
}
]
}
#2 楼
要提供对特定存储桶的访问权限,您可以为该用户或组定义以下策略:{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::my-bucket"
]
},
{
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl"
],
"Resource": [
"arn:aws:s3:::my-bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
}
]
}
其中
my-bucket
是您存储桶的名称。,然后向其发送该存储桶的控制台URL,例如
https://s3.console.aws.amazon.com/s3/buckets/BUCKET_NAME/
相关:是否有一个S3策略用于限制只能访问/访问一个存储桶?
评论
可能需要注意您对存储桶本身的实际策略阻止操作,并且仅允许对存储桶的内部对象进行控制。
–滕西拜
17-10-3在11:53
#3 楼
将以下策略附加到该用户:{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::YOUR-BUCKET",
"arn:aws:s3:::YOUR-BUCKET/*"
]
}
]
}
https://www.serverkaka.com/2018/05/grant-access-to-only-one-s3- bucket-to-aws-user.html
#4 楼
由于您正在寻找程序化角色创建,因此您可以考虑针对EC2的IAM角色。这些证书可以应用于EC2实例而无需人工干预,而且还避免了存储许多凭证/密钥的需求,这在使用自动化时总是很好的。#5 楼
如果要从WinSCP,CyberDuck等FTP软件访问,请添加以下策略。{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": [
"arn:aws:s3:::test1",
"arn:aws:s3:::test2"
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::test1/*",
"arn:aws:s3:::test2/*"
]
}
]
}
我从编写IAM策略中学到了:如何授予对Amazon的访问权限S3桶
评论
不确定。但是,反过来肯定会发生。我的意思是,存储桶仅接受来自特定用户的请求。那对你不起作用吗?@ Dawny33在这种情况下,我需要使用用户名和密码创建一个IAM用户。然后,我必须为该用户提供s3存储桶访问权限。然后,该用户必须创建用于访问的密钥。相反,我需要创建一个程序访问用户(该用户为用户创建访问密钥,而不是用户名和密码)。我无法为这样的IAM用户提供权限。
相关:限制特定用户的存储桶列表。