這些題目為學習目的而獨立製作,並非 AWS 官方考題、實際考題、外流題或考題庫。
SAA-001
某個 Web 應用程式將儲存於 Amazon S3 的靜態檔案透過 CloudFront 進行傳遞。若希望不直接公開 S3 儲存貯體,僅允許來自 CloudFront 的存取,最為適切的組態為何?
選項
解析與正確答案
閱讀解析與正確答案(劇透:建議先自行作答)
正確答案:C. 使用 CloudFront Origin Access Control,並於 S3 儲存貯體政策中僅允許來自 CloudFront Distribution 的 GetObject
解析
若要避免直接公開 S3 並限制僅能透過 CloudFront 存取,適合採用 CloudFront Origin Access Control,並於 S3 儲存貯體政策中僅允許特定 CloudFront Distribution 的存取。
各選項解析
A. 停用 S3 儲存貯體的 Block Public Access,並於儲存貯體政策中允許所有使用者執行 GetObject
錯誤。會公開儲存貯體,違反避免 S3 直接公開的要求。
B. 對每個 S3 物件設定公開讀取的 ACL
錯誤。透過物件 ACL 公開的方式,違反最小公開的設計原則。
C. 使用 CloudFront Origin Access Control,並於 S3 儲存貯體政策中僅允許來自 CloudFront Distribution 的 GetObject
正確。透過 OAC 即可在保持 S3 非公開的狀態下,安全地經由 CloudFront 傳遞。
D. 啟用 S3 靜態網站託管,並將 CloudFront 的來源設定為網站端點
錯誤。S3 靜態網站端點無法與 OAC 搭配使用,且容易需要將儲存貯體公開。
實際使用情境
CloudFront Origin Access Control(OAC)是用於在不公開 S3 儲存貯體的前提下,僅允許透過 CloudFront 進行傳遞的機制。將 S3 儲存貯體的 Block Public Access 維持啟用狀態,並於儲存貯體政策中明確指定「僅允許來自特定 CloudFront Distribution 的 GetObject」,即可從結構上阻擋對 S3 的直接存取。若搭配簽章 URL 或簽章 Cookie,還可在 CloudFront 層進一步疊加存取控制。OAC 被定位為舊有的 Origin Access Identity(OAI)的後繼方案,於新建構的環境中建議採用 OAC。 設計上需注意的是,S3 靜態網站託管的端點無法與 OAC 搭配使用。網站端點以 HTTP 公開為前提,因此當有透過 OAC 進行保護的要求時,必須將 REST API 端點(儲存貯體 FQDN)指定為來源。此外,標準組態為將 CloudFront 的 Behaviors 中的 Viewer Protocol Policy 設為 Redirect HTTP to HTTPS,並綁定 ACM 憑證(於 us-east-1 核發),以強制使用 HTTPS 進行傳遞。 SAA-C03 中,在「希望在 S3 非公開的狀態下透過 CloudFront 傳遞」「希望遵守最小公開原則」的情境下,OAC 經常作為正解出現。誤答則會列出停用 Block Public Access、設定物件 ACL 為公開、使用 S3 網站端點等,容易使儲存貯體公開的選項。OAI 與 OAC 的差異(OAC 更新,並支援 SSE-KMS 與 SigV4 區域簽章)也是常見的考點。