説明
S3静的ウェブサイトは、意図的に公開コンテンツを配信するために利用できます。ウェブサイト設定だけでオブジェクトが公開されるわけではありませんが、公開読み取り権限があればウェブサイトエンドポイントで配信できます。このエンドポイントはHTTPSに対応していません。
想定される影響
公開権限が広すぎると、サイト用以外のファイルも漏えいする可能性があります。また、HTTP通信は盗聴や改ざんの影響を受けます。
対処方法
不要なウェブサイト構成を削除し、公開権限も取り消してください。サイトが必要なら公開コンテンツを分離し、HTTPSを提供してください。非公開バケットをCloudFrontの背後に置く場合は、S3 RESTオリジンと適切なオリジンアクセス制御を使用してください。
例
次の抜粋では、ウェブサイト構成を削除してS3 Block Public Accessを適用しています。既存のバケットポリシーや他のアクセス権限も確認してください。
変更前
hcl
resource "aws_s3_bucket" "website_bucket" {
bucket = "s3-website-test.hashicorp.com"
}
resource "aws_s3_bucket_website_configuration" "website" {
bucket = aws_s3_bucket.website_bucket.id
index_document {
suffix = "index.html"
}
error_document {
key = "error.html"
}
}
変更後
hcl
resource "aws_s3_bucket" "website_bucket" {
bucket = "s3-website-test.hashicorp.com"
}
resource "aws_s3_bucket_public_access_block" "website_bucket" {
bucket = aws_s3_bucket.website_bucket.id
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}