我有一个OAI和CloudFront专用的存储桶。当我将项目上传到存储桶时,我可以使用CloudFront URL而不是通过S3 URL来访问它:
我的政策如下
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontRead",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::xxx/*"
}
]
}
我的IAM用户有权上传和获取存储桶。 现在,我希望我的用户(或我的帐户)可以访问S3 URL(而不是CloudFront URL)来访问存储桶中的对象,而无需将存储桶公开。
我该怎么做?
我试图像这样更新存储桶策略,但是没有用。
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowCloudFrontRead",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xxx"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::xxx/*"
},
{
"Sid": "AllowPolicyRead",
"Effect": "Allow",
"Principal": {
"AWS": "xxxxx"
},
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::xxx/*"
}
]
}
我的用户可以通过CLI获取和上传对象。
答案 0 :(得分:0)
IAM或存储桶策略使您可以API级别访问S3。如果不公开存储桶,则无法下载S3文件。