AWS cdn 配置跨账号的 S3源

910 阅读2分钟

基础介绍:

Amazon CloudFront 是一种快速的内容分发网络 (CDN) 服务,可以在开发人员友好环境中以低延迟和高传输速度向全球客户安全分发数据、视频、应用程序和 API。以下场景均是使用aws国外区域演示

Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户可以为几乎任何使用案例存储和保护任意数量的数据,例如数据湖、云原生应用程序和移动应用程序。借助高成本效益的存储类和易于使用的管理功能,您可以优化成本、组织数据并配置精细调整过的访问控制,从而满足特定的业务、组织和合规性要求。天然的和CDN形成了常规架构模型

A账号的CDN 配置B账号的S3桶

分两种场景

1.公开桶 2.私有权限桶 提前上传好一个测试文件

1.公开桶

B账号:1.公开桶

image.png

对应桶策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<s3-name>/*"
        }
    ]
}

image.png

复制服务端点备用

c830e6fc40b2fcee60c5bee86bbd7f9.png

A账号:CDN操作

创建cdn 输入上一步的服务端点地址,源路径url 按照你的需求来配,保证cdn 长域名能被访问

image.png

创建对应行为路由规则

image.png 测试效果

image.png

2.私有桶

A账号CDN配置

创建cdn源接口

image.png 创建配置cdn

image.png

B账号S3配置权限

image.png

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<s3-name>/*",
            "Condition": {
                "StringEquals": {
                    "AWS:SourceArn": "arn:aws:cloudfront::904115123825:distribution/<CDN-ID>"
                }
            }
        }
    ]
}

测试