Amazon web services 如何限制用户将公共S3对象创建到私有bucket中
我已经创建了一个AmazonS3 bucket,它本质上是私有的,但我不希望我的用户在该bucket中创建任何公共对象。我应该如何通过该桶的S3策略来实现这一点?我尝试了,但得到一个错误,即策略具有无效资源Amazon web services 如何限制用户将公共S3对象创建到私有bucket中,amazon-web-services,amazon-s3,amazon-ec2,aws-java-sdk,Amazon Web Services,Amazon S3,Amazon Ec2,Aws Java Sdk,我已经创建了一个AmazonS3 bucket,它本质上是私有的,但我不希望我的用户在该bucket中创建任何公共对象。我应该如何通过该桶的S3策略来实现这一点?我尝试了,但得到一个错误,即策略具有无效资源 { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPublicReadGetObject", "Effect": "Deny",
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyPublicReadGetObject",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
" arn:aws:s3:::aws-my-bucket-s3-vk/*"
]
}
]
}
用户应该能够访问bucket并创建新对象/从EC2实例中获取具有必要权限的对象
在S3控制台上,在bucket名称之后有一个access列,应该是“bucket和object不能是公共的”。默认情况下,所有Amazon S3 bucket都是私有的。除非已通过IAM策略、Bucket策略或对象级权限授予权限,否则任何人都不能访问/使用Bucket或其内容 您似乎希望特定的AmazonEC2实例能够使用该bucket。因此:
- 创建一个IAM角色
- 将所需的权限授予IAM角色(例如
和PutObject
)GetObject
- 将IAM角色分配给Amazon EC2实例
- 然后,EC2实例上的应用程序将能够访问bucket
拒绝
策略。它将始终凌驾于其他政策之上。最好使用Allow
策略授予访问权限,但仅授予所需的实体
以下是一些策略示例:默认情况下,所有AmazonS3存储桶都是私有的。除非已通过IAM策略、Bucket策略或对象级权限授予权限,否则任何人都不能访问/使用Bucket或其内容 您似乎希望特定的AmazonEC2实例能够使用该bucket。因此:
- 创建一个IAM角色
- 将所需的权限授予IAM角色(例如
和PutObject
)GetObject
- 将IAM角色分配给Amazon EC2实例
- 然后,EC2实例上的应用程序将能够访问bucket
拒绝
策略。它将始终凌驾于其他政策之上。最好使用Allow
策略授予访问权限,但仅授予所需的实体
以下是一些策略示例:您应该在S3存储桶上启用。这将防止任何人公开该桶中的对象。您还应限制哪些IAM用户/角色/策略具有修改阻止公共访问设置的权限
Amazon S3阻止公共访问设置将覆盖S3存储桶策略和对象级权限,以防止公共访问。您应该在S3存储桶上启用。这将防止任何人公开该桶中的对象。您还应限制哪些IAM用户/角色/策略具有修改阻止公共访问设置的权限
Amazon S3阻止公共访问设置将覆盖S3 bucket策略和对象级权限以防止公共访问。另请参阅阻止公共访问,在较高级别阻止任何人将对象公开:另请参阅阻止公共访问,在较高级别阻止任何人将对象公开: