正確答案: 建立一個 CloudFront origin access control (OAC)。更新 S3 儲存貯體政策,只允許來自 OAC 的存取。建立一個包含 IP set 規則的 AWS WAF web ACL,用於允許的位址,並將 web ACL 與 CloudFront distribution 關聯。.
為什麼這是答案
此解決方案符合所有要求。建立 CloudFront OAC 並更新 S3 儲存貯體政策,確保內容只能透過 CloudFront 存取,防止直接透過 S3 URL 存取。將 AWS WAF web ACL 與 CloudFront distribution 關聯,並使用 IP set 規則,可以限制存取只來自特定的用戶端 IP 位址。
選項一不正確,因為 S3 儲存貯體政策中的 cloudfront.amazonaws.com 作為 principal 並不能限制特定 IP 位址,且 aws:SourceIp 條件金鑰在 S3 儲存貯體政策中無法直接識別最終用戶端 IP,因為請求是透過 CloudFront 轉發的。選項三不正確,S3 bucket 沒有安全群組的概念。選項四不正確,S3 access point 主要用於簡化對 S3 儲存貯體的存取管理,但它本身不能限制對特定 IP 位址的存取,且無法完全替代 OAC 來確保只有 CloudFront 可以存取 S3。