View a markdown version of this page

市場分佈的安全檢查清單 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

市場分佈的安全檢查清單

電子商務和市場應用程式會處理敏感資料:客戶工作階段、付款流程和進階內容。此檢查清單涵蓋具有 ElastiCache (Valkey) 快取層的 CloudFront 分佈特定的安全控制。除了 中所述的一般 CloudFront 安全最佳實務之外,請套用這些控制項設定安全存取和限制對內容的存取

高級內容的已簽署 URLs 和 Cookie

使用簽章URLs 或簽章的 Cookie 來限制存取需要授權的內容:高級產品預覽、購買的數位商品、限時促銷內容或賣方特定的資產。

簽章的 URL 和簽章的 Cookie 比較
Method 使用時機 電子商務範例

已簽章的 URL

限制對個別檔案的存取。共用下載連結。不支援 Cookie 的用戶端。

已購買數位產品的一次性下載連結。已驗證賣方對高解析度產品映像的有限時間存取。

已簽章的 Cookie

提供對多個檔案的存取 (例如,高級方案中的所有資產)。避免現有內容的 URL 變更。

存取整個數位內容目錄的高級成員資格。跨多個頁面的訂閱者限定產品預覽。

組態需求:

  • 使用 RSA 公有金鑰建立金鑰群組 (最低 2048 位元)。將私有金鑰存放在 AWS Secrets Manager 中,讓您的應用程式產生簽章。

  • 將快取行為的限制檢視器存取設定為,並關聯金鑰群組。

  • 設定適合內容類型的過期時間:下載連結的分鐘數、瀏覽工作階段的小時數、訂閱存取的天數。

  • 當您需要依 IP 範圍限制或允許萬用字元路徑時,請使用自訂政策 (非標準政策)。

如需實作的詳細資訊,請參閱 使用已簽署 URL 和已簽署 Cookie 提供私有內容

Amazon S3 的原始存取控制 (OAC)

原始存取控制可防止使用者繞過 CloudFront 直接存取您的 Amazon S3 儲存貯體。如果沒有 OAC,則發現儲存貯體 URL 的任何人都可以存取資產,而無需通過已簽署的 URL/Cookie 強制執行、WAF 規則或地理限制。如需完整的組態步驟,請參閱 限制對 AWS 原始伺服器的存取

為所有 Amazon S3 原始伺服器啟用 OAC

建立 OAC,並將其與分佈中的每個 Amazon S3 原始伺服器建立關聯。更新儲存貯體政策,只允許具有符合您分佈 ARN 條件的 CloudFront 服務主體 (cloudfront.amazonaws.com)。

移除公開存取

在 Amazon Simple Storage Service 主控台中,啟用儲存貯體上的 Amazon S3 封鎖公開存取。這是 Amazon S3 設定,而不是 CloudFront 設定。儲存貯體政策僅授予 CloudFront 的存取權 — 不需要公ACLs 或政策。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的封鎖對 Amazon S3 儲存體的公開存取

使用 Amazon S3 REST API 端點

使用儲存貯體的 REST API 端點 (bucket-name.s3.amazonaws.com) 而非 Amazon S3 網站端點來設定原始伺服器。OAC 僅適用於 REST API 端點。

傳輸中加密

加密請求路徑中的所有連線:檢視者到 CloudFront、CloudFront 到原始伺服器,以及應用程式到 ElastiCache 快取。

傳輸中加密組態
連線 設定 組態

檢視器 → CloudFront

檢視器通訊協定政策:僅限 HTTPS

在所有快取行為https-only上將檢視器通訊協定政策設定為 redirect-to-https或 。使用 TLS 1.2 最低安全政策 (TLSv1.2_2021)。

CloudFront → S3 原始伺服器

原始通訊協定:HTTPS

S3 REST API 端點預設支援 HTTPS。當您使用 REST API 端點和 OAC 設定原始伺服器時,CloudFront 會使用 HTTPS。

CloudFront → ALB 原始伺服器

原始通訊協定:僅限 HTTPS

將原始通訊協定政策設定為 https-only。在 ALB 上安裝有效的 TLS 憑證 (使用 AWS Certificate Manager)。CloudFront 會在連線時驗證憑證。

應用程式 → ElastiCache

傳輸中加密:已啟用

在 ElastiCache 主控台中,在複寫群組TransitEncryptionEnabled上啟用 。這是 ElastiCache 設定。從您的應用程式程式碼使用 TLS 連線。Valkey 和 Redis OSS 6.0 及更新版本原生支援傳輸中加密。

快取叢集的 VPC 安全群組

ElastiCache 叢集會在 VPC 中執行,且只能接受來自您應用程式伺服器的連線。使用安全群組鏈結來限制存取。

ElastiCache 的安全群組組態
安全群組 傳入規則 理由

快取叢集 SG

僅限 Application SG 的 TCP 6379

只有應用程式伺服器可以連線到快取。無法存取網際網路,也無法存取其他 服務。使用連接埠 6379 (預設 Valkey/Redis 連接埠) 或您設定的連接埠。

應用程式 SG

僅限來自 ALB SG 的 TCP 443

應用程式伺服器僅接受來自 ALB 的流量。結合快取叢集 SG,這會建立鏈結:CloudFront → ALB → 應用程式 → 快取。

其他 VPC 強化:

  • 在沒有網際網路閘道路由的私有子網路中部署 ElastiCache 叢集。

  • 使用涵蓋至少 2 個可用區域的子網路群組,以獲得高可用性。

  • 為安全群組以外的其他身分驗證層啟用 ElastiCache 驗證字符 (密碼)。

  • 停用對 ElastiCache 叢集的公開存取 (預設,但驗證)。

其他安全控制

限制僅限 CloudFront 的 ALB 存取

新增 CloudFront 隨每個請求傳送的自訂原始伺服器標頭 (X-Origin-Verify)。設定 ALB 或應用程式以拒絕不包含此標頭的請求。將標頭值存放在 中, AWS Secrets Manager 並定期輪換。或者,使用 CloudFront 受管字首清單,將 ALB 安全群組傳入規則限制為 CloudFront IP 範圍。

在 分佈 AWS WAF 上啟用

將 AWS WAF Web ACL 與速率限制規則建立關聯,以防止購物車濫用、登入 APIs上的登入資料填充,以及庫存湊集。針對常見威脅 (SQL Injection、XSS) 使用受管規則群組,並針對應用程式特定模式使用自訂規則。

合規的地理限制

如果您的市場在特定國家/地區營運,請啟用地理限制來封鎖來自您無權銷售或運送之區域的請求。在分佈層級套用。對於每個路徑的地理限制,請在 AWS WAF 具有 URL 路徑條件的 Web ACL 規則中使用地理比對條件。

存取記錄

啟用 CloudFront 標準記錄或即時記錄,以偵測異常存取模式:下載連結用量突然遽增、從非預期區域存取,或在 API 端點上重複失敗的身分驗證嘗試。