3

通过自定义域名访问 Amazon S3 中的图像资源

 1 month ago
source link: https://blog.51cto.com/jiemei/10245490
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在这篇博文中,我们将学习如何使用 Amazon CloudFront 和 Amazon S3 搭建一个安全的静态内容分发网络,并通过自定义域名 img.example.com 访问存储在 S3 中的图像资源。

准备工作:

  • 一个 AWS 账户
  • 一个已注册的域名 example.com
  • 一个已创建ssl证书*.example.com

步骤 1: 创建 S3 存储桶

  1. 登录 AWS 管理控制台,进入 S3 服务页面。
  2. 创建一个新的存储桶,命名为 img-bucket
  3. 将您的图像资源上传到 img-bucket 存储桶中。
  4. 在存储桶的"权限"选项卡中,点击"存储桶策略"按钮,并添加以下策略:
{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "AllowCloudFrontServicePrincipal",
            "Effect": "Allow",
            "Principal": {
                "Service": "cloudfront.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::img-bucket/*",
            "Condition": {
                "StringLike": {
                    "AWS:SourceArn": "arn:aws:cloudfront::<your-account-id>:distribution/*"
                }
            }
        }
    ]
}

请将 <your-account-id> 替换为您自己的 AWS 账户 ID。这个策略将只允许 CloudFront 服务访问 img-bucket 存储桶中的对象。

步骤 2: 创建 CloudFront Web 分发

  1. 在 AWS 管理控制台中,进入 CloudFront 服务页面。
  2. 点击"创建分发"按钮,选择"Web"分发类型。
  3. 在"源设置"步骤中,选择"S3 存储桶"作为源,并选择 img-bucket
  4. 在"默认缓存行为设置"步骤中,根据您的需求进行配置。
  5. 在"分发设置"步骤中,选择"Web"作为分发方式,并输入自定义域名 img.example.com
  6. 在"限制访问"步骤中,选择"使用签名 URL 或签名 Cookie"选项。
  7. 在"源访问控制"步骤中,选择"创建新的 OAC"选项,命名为 img-oac
  8. 在"查看器协议策略"步骤中,选择"Redirect HTTP to HTTPS"选项。
  9. 在"备用域名(CNAME)"步骤中,输入 img.example.com
  10. 在"自定义 SSL 证书"步骤中,选择"自定义 SSL 证书"选项,并上传您的 *.example.com 证书。
  11. 完成其他配置,然后点击"创建分发"按钮。

步骤 3: 配置 Route 53

  1. 在 AWS 管理控制台中,进入 Route 53 服务页面。
  2. 选择托管区域 example.com
  3. 点击"创建记录集"按钮,添加一个新的记录集。
  4. 设置记录名称为 img
  5. 选择记录类型为 A - IPv4 地址
  6. 在"值"字段中,输入 CloudFront 分发的域名,例如 d365i1v0qrxr6m.cloudfront.net
  7. 点击"创建记录集"按钮。

步骤 4: 测试访问

  1. 等待 DNS 记录生效,这可能需要一些时间。
  2. 在浏览器中访问 https://img.example.com。如果一切配置正确,您应该能够看到存储在 img-bucket 中的图像资源。

通过这种架构,您的图像资源将通过 CloudFront 的全球边缘网络进行分发,从而提供更快的响应速度和更好的用户体验。同时,源访问控制策略确保了只有 CloudFront 可以访问您的 S3 存储桶,有效地保护了您的内容不被未经授权的访问。

值得注意的是,我们还配置了 HTTPS 协议和自定义 SSL 证书,以确保图像资源的传输过程中受到加密保护,提高了安全性。

总结一下,通过自定义域名访问 Amazon S3 中的图像资源包括以下主要步骤:

  1. 创建 S3 存储桶并上传图像资源。
  2. 配置存储桶策略,只允许 CloudFront 访问。
  3. 创建 CloudFront Web 分发,并配置源访问控制、自定义域名和 SSL 证书。
  4. 在 Route 53 中配置 DNS 记录,将自定义域名指向 CloudFront 分发。
  5. 通过自定义域名访问图像资源。

通过这种方式,您可以充分利用 AWS 的云服务,为您的静态内容提供安全、高性能和可扩展的分发服务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK