1.在 CloudFront 控制台中,创建新的分配
对于 origin 部分,origin domain 选择对应的S3存储桶

2.创建OAC(Origin access control)也就是源访问控制;

3.填写名称和描述,保留默认设置也可以,点击"Create"
4.创建完成后会提醒:You must update the S3 bucket policy,CloudFront will provide you with the policy statement after creating the distribution.
创建完分配后,CloudFront 将为您提供策略,需要把提供的策略放进s3中
5.可以先暂时保留 cloudfront 默认配置,创建分配;
6.创建完成后,会有提醒“复制策略”
7.来到 s3存储桶策略,把 OAC 生成的策略放入该策略中:
需要注意的是,如果我们只想给通过cloudfront 让其他人访问某些目录下的资源,其他目录的资源依旧是vpc之间代码访问或者内网访问。
需要对策略文件中的这个路径进行修改"Resource": "arn:aws:s3:::shawn-uat/*",指定允许通过cdn访问的目录,如下面策略所示指定了桶的 pic1和 pic2目录下的文件可以通过 cdn 访问;
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "AllowCloudFrontServicePrincipal",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::shawn-uat/pic1/*",
"arn:aws:s3:::shawn-uat/pic2/*"
],
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::893420598334:distribution/E1Y22YBY7JPKJ6"
}
}
}
]
} |
8.s3桶有以下文件:
测试访问路径:
https://d31k00r8qiux4n.cloudfront.net/pic1/boat.jpg (pic1路径下可访问)

https://d31k00r8qiux4n.cloudfront.net/pic2/cloud.jpg (pic2路径下可访问)

https://d31k00r8qiux4n.cloudfront.net/pic3/tokyo.jpg (pic3路径下报错,不可访问)
