📅  最后修改于: 2023-12-03 15:13:18.946000             🧑  作者: Mango
Amazon Web Services(简称 AWS)是全球领先的云计算服务提供商之一,为客户提供包括计算、存储、数据库、分析、人工智能、物联网、机器学习、安全和企业应用程序在内的各种云服务。
本文主要介绍如何通过 AWS 的 CloudFront 实现仅允许来自 CloudFront 的 S3 访问,防止非法访问您的 S3 存储桶。
从 AWS 控制台创建 S3 存储桶,如下图所示:
从 AWS 控制台或使用 AWS CLI 上传对象到 S3 存储桶,如下所示:
aws s3 cp index.html s3://example-bucket/
从 AWS 控制台创建 CloudFront 分配,如下图所示:
在 CloudFront 分配中选择 S3 存储桶并配置 CloudFront 设置,如下图所示:
在 AWS 控制台创建 IAM 策略,限制只有 CloudFront 可以访问 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/*"
}
]
}
使用 CloudFront URL 测试来自 CloudFront 的请求是否可以正确访问 S3 存储桶,如下图所示:
通过以上步骤,您已成功将 S3 存储桶限制仅允许来自 CloudFront 的访问。这种方式可以防止非法访问和恶意攻击,保证您的数据安全。