我需要从我的Java程序中创建一个专用S3存储桶和一个只允许访问该存储桶的IAM用户。
所以我会有一些管理员帐户凭据来创建一个S3Client
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion(Regions.US_EAST_2)
.build();
然后用一些空检查等等创建我的bucket
s3client.createBucket(bucketName);
现在我需要阻止所有公众访问这个bucket(我可以吗?(
并创建具有等于"AWS凭证类型"的IAM用户;访问键-程序访问";并将其策略设置为这样,这样它就只能访问我刚刚创建的bucket(只是官方文档中的一个片段(
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListObjectsInBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::bucket-name"]
},
{
"Sid": "AllObjectActions",
"Effect": "Allow",
"Action": "s3:*Object",
"Resource": ["arn:aws:s3:::bucket-name/*"]
}
]
}
这有可能吗?
事实上,在bucket级别或IAM级别中拥有安全性是一个主要问题。
在"的方法中;该用户在AWS中可以做什么">您可以使用IAM策略(托管策略、内联策略…(进行探索
在方法中,谁可以访问此S3存储桶然后您可以探索使用S3 Bucket策略将Bucket中的安全集中到帐户。。。
默认情况下,任何新存储桶都处于不可公共访问的模式,并且任何具有S3权限的用户IAM都可以访问它
最后,我确实找到了一个非常好的解决方案。采样器