我已经通过CloudFront配置了一个S3存储桶,并使用CloudFront提供的备用域名(我在DNS区域文件中设置了域名别名images.mydomain.com)。
在我的DNS主机上,我将CNAME指向xyz.cloudfront.net。我的S3存储桶名称和CNAME域名别名都是images.mydomain.com。
我希望全世界都能访问我的图像images.mydomain.com/image.jpg,这个功能运行得非常完美。
问题在于,同样的资源也可以通过以下两个URL直接被全世界访问,而我不想让这种情况发生。我只希望images.mydomain.com/image.jpg对全世界开放,而不是下面两个URL。
images.mydomain.com.s3.amazonaws.com/image.jpg s3.amazonaws.com/images.mydomain.com/image.jpg
如何实现这一点? 请帮忙。
我希望全世界都能访问我的图像images.mydomain.com/image.jpg,这个功能运行得非常完美。
问题在于,同样的资源也可以通过以下两个URL直接被全世界访问,而我不想让这种情况发生。我只希望images.mydomain.com/image.jpg对全世界开放,而不是下面两个URL。
images.mydomain.com.s3.amazonaws.com/image.jpg s3.amazonaws.com/images.mydomain.com/image.jpg
如何实现这一点? 请帮忙。
{ "Version": "2008-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity ***************" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::images.mydomain.com/*" } ] }
- user3708270{ "Id": "Policy1419249708936", "Statement": [ { "Sid": "Stmt************", "Action": "s3:*", "Effect": "Deny", "Resource": "arn:aws:s3:::images.mydomain.com/*", "Principal": { "AWS": [ "*" ] } }, { "Sid": "Stmt************", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::images.mydomain.com/*", "Principal": { "AWS": [ "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity **************" ] } } ] }
- user3708270