📌  相关文章
📜  Amazon Web Services – 仅限制来自 CloudFront 的 S3 访问(1)

📅  最后修改于: 2023-12-03 15:13:18.946000             🧑  作者: Mango

Amazon Web Services – 仅限制来自 Cloudfront 的 S3 访问

简介

Amazon Web Services(简称 AWS)是全球领先的云计算服务提供商之一,为客户提供包括计算、存储、数据库、分析、人工智能、物联网、机器学习、安全和企业应用程序在内的各种云服务。

本文主要介绍如何通过 AWS 的 CloudFront 实现仅允许来自 CloudFront 的 S3 访问,防止非法访问您的 S3 存储桶。

实现步骤
1. 创建 S3 存储桶

从 AWS 控制台创建 S3 存储桶,如下图所示:

创建S3存储桶

2. 上传对象到 S3 存储桶

从 AWS 控制台或使用 AWS CLI 上传对象到 S3 存储桶,如下所示:

aws s3 cp index.html s3://example-bucket/
3. 创建 CloudFront 分配

从 AWS 控制台创建 CloudFront 分配,如下图所示:

创建 CloudFront 分配

4. 配置 CloudFront 分配

在 CloudFront 分配中选择 S3 存储桶并配置 CloudFront 设置,如下图所示:

配置 CloudFront 分配

5. 创建 IAM 策略

在 AWS 控制台创建 IAM 策略,限制只有 CloudFront 可以访问 S3 存储桶,如下图所示:

创建 IAM 策略

6. 更新 S3 存储桶策略

将 IAM 策略附加到 S3 存储桶的策略中,只允许来自 CloudFront 的请求访问 S3 存储桶,如下所示:

{
   "Version": "2012-10-17",
   "Id":"PolicyForCloudfrontOnlyAccess",
   "Statement": [
      {
         "Sid":"AllowCloudFrontToGetBucketObjects",
         "Effect":"Allow",
         "Principal": {
           "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity YOUR_IDENTITY_ID"
         },
         "Action":"s3:GetObject",
         "Resource":"arn:aws:s3:::example-bucket/*"
      }
   ]
}
7. 测试 CloudFront 访问 S3 存储桶

使用 CloudFront URL 测试来自 CloudFront 的请求是否可以正确访问 S3 存储桶,如下图所示:

测试 CloudFront 访问 S3 存储桶

结论

通过以上步骤,您已成功将 S3 存储桶限制仅允许来自 CloudFront 的访问。这种方式可以防止非法访问和恶意攻击,保证您的数据安全。