本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 的安全最佳實務
在您開發和實作自己的安全政策時,可考慮使用 Amazon S3 提供的多種安全功能。以下最佳實務為一般準則,並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求,因此請將其視為實用建議就好,而不要當作是指示。
Amazon S3 安全最佳實務
下列 Amazon S3 最佳實務有助於預防安全事件的發生。
- 停用存取控制清單 (ACLs)
-
S3 物件擁有權是 Amazon S3 儲存貯體層級設定,可用來控制上傳至儲存貯體之物件的擁有權,以及停用或啟用。ACLs依預設,[物件擁有權] 會設定為 [值區擁有者強制執行] 設定,且全部ACLs都會停用。停用時,值區擁ACLs有者會擁有值區中的所有物件,並使用存取管理原則專門管理資料的存取權。
Amazon S3 中的大多數現代使用案例不再需要使用存取控制清單 (ACLs)。建議您停用ACLs,除非在特殊情況下,您必須個別控制每個物件的存取權限。若要停用ACLs並取得儲存貯體中每個物件的所有權,請針對 S3 物件擁有權套用儲存貯體擁有者強制執行設定。停用時ACLs,您可以輕鬆維護值區,其中包含由不同上傳的物件 AWS 帳戶.
停ACLs用資料的存取控制時,會根據以下原則進行存取控制:
-
AWS Identity and Access Management (IAM) 使用者政策
-
S3 儲存貯體政策
-
虛擬私有雲 (VPC) 端點策略
-
AWS Organizations 服務控制政策 (SCPs)
停用ACLs可簡化權限管理和稽核作業。ACLs依預設,新值區會停用。您也可以停ACLs用現有值區。如果您的現有值區中已有物件,停用ACLs之後,該物件和值區就不再ACLs是存取評估程序的一部分。相反地,會根據原則授予或拒絕存取權。
停用之前ACLs,請確定您已執行下列動作:
-
檢閱您的儲存貯體政策,以確保其涵蓋您打算將存取權授予帳戶外儲存貯體的所有方式。
-
ACL將值區重設為預設值 (值區擁有者的完全控制權)。
停用之後ACLs,會發生下列行為:
-
您的值區只
PUT
接受未指定ACL或具有值區擁有者完全控制權的PUT
請求ACLs。這些ACLs包括在中表示的bucket-owner-full-control
罐頭ACL或等效形式XML。ACL -
支援儲存貯體擁有者完全控制的現ACLs有應用程式不會造成任
-
PUT
包含其他要求 ACLs (例如,對某些特定的自訂授權) AWS 帳戶) 失敗並傳回含有錯誤碼400 (Bad Request)
的HTTP狀態碼AccessControlListNotSupported
。
如需詳細資訊,請參閱控制物件的擁有權並停ACLs用值區。
-
- 確保 Amazon S3 儲存貯體使用正確的政策且不可公開存取
-
除非您有明確要求網際網路上的任何人都能讀取或寫入您的 S3 儲存貯體,否則請確保您的 S3 儲存貯體不是公用儲存貯體。以下是您可以採取以封鎖公開存取的一些步驟:
-
使用 S3 封鎖公開存取。使用 S3 封鎖公開存取,您可以輕鬆地設定集中控制,來限制對 Amazon S3 的公開存取。無論資源的建立方式為何,都會強制執行這些集中控制。如需詳細資訊,請參閱封鎖對 Amazon S3 儲存體的公開存取權。
-
識別允許萬用字元身分 (例如
"Principal": "*"
,這實際上意味著「任何人」) 的 Amazon S3 儲存貯體政策。此外,請尋找允許萬用字元動作"*"
(實際上允許使用者在 Amazon S3 儲存貯體中執行任何動作) 的政策。 -
同樣地,尋找 Amazon S3 儲存貯體存取控制清單 (ACLs),提供對「所有人」或「任何已驗證的任何人」的讀取、寫入或完整存取權 AWS 用戶。」
-
使用此
ListBuckets
API操作掃描您的所有 Amazon S3 儲存貯體。然後,使用GetBucketAcl
、GetBucketWebsite
和GetBucketPolicy
來判斷每個儲存貯體的存取控制和組態是否符合規範。 -
使用 AWS Trusted Advisor檢查您的 Amazon S3 實施。
-
考慮通過使用實施正在進行的偵探控制 s3-bucket-public-read-prohibited 和 s3-bucket-public-write-prohibited管理 AWS Config 規則.
-
- 使用 Amazon 識別對您的 Amazon S3 儲存貯體的潛在威脅 GuardDuty
-
Amazon GuardDuty 是一種威脅偵測服務,可識別您帳戶、容器、工作負載和資料的潛在威脅 AWS 環境。透過使用機器學習 (ML) 模型以及異常和威脅偵測功能,Amazon 會 GuardDuty 持續監控不同的資料來源,以識別環境中潛在的安全風險和惡意活動並排定優先順序。啟用時 GuardDuty,它會針對基礎資料來源提供威脅偵測,其中包括 AWS CloudTrail 管理事件、VPC流程記錄和DNS記錄檔。若要將威脅偵測延伸至 S3 儲存貯體中的資料平面事件,您可以啟用 GuardDuty S3 保護功能。此功能可偵測威脅,例如資料洩漏和透過 Tor 節點存取 S3 儲存貯體的可疑資料。 GuardDuty也會在您的環境中建立正常的基準模式,當它識別出可能的異常行為時,它會提供內容相關資訊,協助您修復可能受到影響的 S3 儲存貯體,或 AWS 認證。如需詳細資訊,請參閱GuardDuty。
- 實作最低權限存取
-
當您授予許可時,需決定哪些使用者會取得哪些 Amazon S3 資源的許可。您還需針對這些資源啟用允許執行的動作,因此,建議您只授予執行任務所需的許可。對降低錯誤或惡意意圖所引起的安全風險和影響而言,實作最低權限存取是相當重要的一環。
下列工具可用來實作最低權限存取:
如需選擇上述一或多個機制時應考量事項的指導方針,請參閱 適用於 Amazon S3 的 Identity and Access Management。
- 將IAM角色用於應用程式和 AWS 服務 需要 Amazon S3 訪問
-
為了在 Amazon EC2 或其他上運行的應用程序 AWS 服務 要訪問 Amazon S3 資源,它們必須包括有效的 AWS 在他們的憑據 AWS API請求。我們建議不要存放 AWS 直接在應用程式或 Amazon EC2 執行個體中登入資料。這些是不會自動輪換的長期憑證,如果遭到盜用,可能會對業務造成嚴重的影響。
而是使用IAM角色來管理需要存取 Amazon S3 之應用程式或服務的臨時登入資料。使用角色時,您不必將長期登入資料 (例如使用者名稱和密碼或存取金鑰) 散發到 Amazon EC2 執行個體,或 AWS 服務,例如, AWS Lambda。 此角色提供應用程式在呼叫其他應用程式時可以使用的暫時權限 AWS 的費用。
如需詳細資訊,請參閱《IAM使用指南》中的下列主題:
- 考慮靜態資料加密
-
下列選項皆可讓您保護 Amazon S3 中的靜態資料:
-
伺服器端加密 — 所有 Amazon S3 儲存貯體預設都已設定加密,所有上傳到 S3 儲存貯體的新物件都會在靜態時自動加密。使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密是 Amazon S3 中每個儲存貯體的預設加密組態。若要使用不同類型的加密,您可以指定 S3
PUT
請求中要使用的伺服器端加密類型,也可以在目的地儲存貯體中設定預設加密組態。Amazon S3 也提供下列伺服器端加密選項:
-
伺服器端加密 AWS Key Management Service (AWS KMS) 鍵 (SSE-KMS)
-
雙層伺服器端加密 AWS Key Management Service (AWS KMS) 鍵 (DSSE-KMS)
-
使用客戶提供的金鑰 (SSE-C) 進行伺服器端
如需詳細資訊,請參閱使用伺服器端加密保護資料。
-
-
用戶端加密 - 加密用戶端資料,並將加密的資料上傳至 Amazon S3。在這種情況下,您可以管理加密程序、加密金鑰和相關工具。和伺服器端加密的運作方式一樣,用戶端加密不會使用資料本身所在機制中存放的金鑰來加密資料,而是使用存放在另一套機制中的金鑰,藉此幫助您減少風險。
Amazon S3 提供多個用戶端加密選項。如需詳細資訊,請參閱使用用戶端加密保護資料。
-
- 強制加密傳輸中的資料
-
您可以使用 HTTPS (TLS) 來協助防止潛在攻擊者透過使 person-in-the-middle 用或類似攻擊來竊聽或操控網路流量。我們建議您只允許透過 HTTPS (TLS) 加密連線,方法是使用 aws:SecureTransport在您的 Amazon S3 存儲桶政策中的條件。
重要
我們建議您的應用程式不要將 Amazon S3 TLS 憑證釘選為 AWS 不支援釘選公開信任的憑證。S3 會自動更新憑證,並且可以在憑證到期前的任何時間進行續訂。續訂憑證會產生新的公開-私 key pair。如果您釘選了最近使用新公開金鑰更新的 S3 憑證,則在應用程式使用新憑證之前,您將無法連線到 S3。
還要考慮通過使用實施正在進行的偵探控制 s3-bucket-ssl-requests-only管理 AWS Config 規則。
- 考慮使用 S3 物件鎖定
-
使用 S3 物件鎖定,您可以使用「一次寫入多次讀取」(WORM) 模型來存放物件。S3 物件鎖定功能有助於避免資料不慎遭刪除或遭到不當刪除的現象。例如,您可以使用 S3 物件鎖定來協助保護 AWS CloudTrail 日誌。
如需詳細資訊,請參閱使用 S3 物件鎖定。
- 啟用 S3 版本控制
-
S3 版本控制是在相同儲存貯體中保留多個物件版本的方式。您可以使用版本控制功能來保留、擷取和恢復在 儲存貯體中所存放每個物件的各個版本。透過版本控制,您就可以輕鬆地復原失誤的使用者動作和故障的應用程式。
還要考慮通過使用實施正在進行的偵探控制 s3-bucket-versioning-enabled管理 AWS Config 規則。
如需詳細資訊,請參閱在 S3 儲存貯體中使用版本控制。
- 考慮使用 S3 跨區域複寫
-
雖然 Amazon S3 預設會跨多個地理位置不同的可用區域存放資料,但合規要求可能會需要您在更遠的距離下存放資料。使用 S3 跨區域複寫 (CRR),您可以在遠端之間複寫資料 AWS 區域 以幫助滿足這些要求。CRR啟用自動、非同步複製不同值區中的物件 AWS 區域。 如需詳細資訊,請參閱複製物件概觀。
注意
CRR要求來源和目的地 S3 儲存貯體都啟用版本控制。
還要考慮通過使用實施正在進行的偵探控制 s3-bucket-replication-enabled管理 AWS Config 規則。
- 考慮使用VPC端點進行 Amazon S3 存取
-
Amazon S3 的虛擬私有雲端 (VPC) 端點是一個邏輯實體VPC,只允許連線至 Amazon S3。VPC端點可協助防止流量遍歷開放的網際網路。
VPCAmazon S3 的端點提供多種方式來控制對 Amazon S3 資料的存取:
-
您可以使用 S3 儲存貯體政策來控制透過特定VPC端點允許的請求、使用者或群組。
-
您可以使用 S3 儲存貯體政策控制哪些VPCsVPC端點可以存取 S3 儲存貯體。
-
您可以使用沒有網際網路閘道的VPC裝置來協助防止資料外洩。
如需詳細資訊,請參閱使用值區政策控制來自VPC端點的存取。
-
- 使用受管理 AWS 監控數據安全的安全服務
-
幾個管理 AWS 安全服務可協助您識別、評估和監控 Amazon S3 資料的安全與合規風險。這些服務也可以協助您保護資料免於這些風險。這些服務包括自動偵測、監控和保護功能,這些功能旨在從 Amazon S3 資源擴展至單一資源 AWS 帳戶 為跨越數千個帳戶的組織提供資源。
如需詳細資訊,請參閱使用受管理監控資料安全 AWS 安全服務。
Amazon S3 監控和稽核最佳實務
下列 Amazon S3 最佳實務有助於偵測潛在安全弱點與事件。
- 識別並稽核所有 Amazon S3 儲存貯體
-
識別 IT 資產是控管和保障安全的重要環節。您必須掌握所有 Amazon S3 資源,才能存取其安全狀態並對潛在弱點採取行動。若要稽核您的資源,建議您執行下列動作:
-
使用標籤編輯器來識別並標記重視安全性或重視稽核的資源,接著在需要搜尋這些資源時使用這些標籤。如需詳細資訊,請參閱在標籤中搜尋要標記的資源 AWS 資源用戶指南。
-
使用 S3 清查來稽核與回報物件的複寫和加密狀態,以滿足業務、合規及法規需求。如需詳細資訊,請參閱Amazon S3 清查。
-
為 Amazon S3 資源建立資源群組。如需詳細資訊,請參閱什麼是資源群組? 在 AWS Resource Groups 使用者指南。
-
- 使用實作監控 AWS 監控工具
-
監控是維護 Amazon S3 和您的系統可靠性、安全性、可用性和效能的重要組成部分 AWS 解決方案。 AWS 提供多種工具和服務,協助您監控 Amazon S3 和您的其他 AWS 服務。 例如,您可以監控 Amazon S3 的 Amazon CloudWatch 指標,尤其是
PutRequests
GetRequests
、4xxErrors
、和DeleteRequests
指標。如需詳細資訊,請參閱 使用 Amazon 監控指標 CloudWatch 和 監控 Amazon S3。如需第二個範例,請參閱範例:Amazon S3 儲存貯體活動。此範例說明如何建立在 Amazon S3 API 呼叫或儲存貯體政策、儲存貯體生命週期
PUT
或DELETE
儲存貯體複寫組態或儲存貯體複寫組態或儲存貯體時觸發PUT
的 CloudWatch 警示ACL。 - 啟用 Amazon S3 伺服器存取記錄
-
伺服器存取記錄會根據向儲存貯體發出的請求來提供詳細記錄。伺服器存取日誌可幫助您進行安全與存取稽核,讓您了解自己的客戶群並掌握 Amazon S3 帳單。如需啟用伺服器存取日誌的操作說明,請參閱 使用伺服器存取記錄記錄要求。
還要考慮通過使用實施正在進行的偵探控制 s3-bucket-logging-enabled AWS Config 受管規則。
- 使用 AWS CloudTrail
-
AWS CloudTrail 提供使用者、角色或使用者所採取之動作的記錄 AWS 服務 在 Amazon S3。您可以使用收集的信息 CloudTrail 來確定以下內容:
-
對 Amazon S3 提出的請求
-
提出請求的 IP 地址
-
提出要求的人員
-
提出請求的時間
-
有關請求的其他詳細資訊
例如,您可以識別影響資料存取的
PUT
動作 CloudTrail 項目PutBucketAcl
,特別是PutObjectAcl
PutBucketPolicy
、、和PutBucketWebsite
。當您設定 AWS 帳戶, CloudTrail 預設為啟用。您可以在 CloudTrail 主控台中檢視最近的事件。若要為 Amazon S3 儲存貯體建立持續的活動和事件記錄,您可以在 CloudTrail 主控台中建立追蹤。如需詳細資訊,請參閱中的記錄資料事件 AWS CloudTrail 使用者指南。
建立追蹤時,您可以設定 CloudTrail 為記錄資料事件。資料事件是在資源上或在資源內執行的資源操作記錄。在 Amazon S3 中,資料事件會記錄個別儲存貯體的物件層級API活動。 CloudTrail 支援 Amazon S3 物件層級API操作的一個子集,例如
GetObject
DeleteObject
、和PutObject
。如需有關如何使 CloudTrail 用 Amazon S3 的詳細資訊,請參閱使用記錄 Amazon S3 API 呼叫 AWS CloudTrail。在 Amazon S3 主控台中,您也可以將 S3 儲存貯體設為 啟用 S3 儲存貯體和物件的 CloudTrail 事件記錄。AWS Config 提供受管規則 (
cloudtrail-s3-dataevents-enabled
),您可以用來確認至少有一個 CloudTrail 追蹤正在記錄 S3 儲存貯體的資料事件。如需詳細資訊,請參閱 cloudtrail-s3-dataevents-enabled 中的 AWS Config 開發人員指南。 -
- 啟用 AWS Config
-
本主題中列出的幾個最佳作法建議您建立 AWS Config 規則。 AWS Config 幫助您評估,審核和評估您的配置 AWS 的費用。 AWS Config 監控資源配置,以便您可以根據所需的安全配置評估記錄的配置。同 AWS Config,您可以執行下列動作:
-
檢閱組態中的變更以及之間的關係 AWS resources
-
調查詳細的資源組態歷史記錄
-
判斷您對內部指導方針中所指定組態的整體合規情形。
使用 AWS Config 可協助您簡化法規遵循稽核、安全性分析、變更管理及作業疑難排解。如需詳細資訊,請參閱設定 AWS Config 使用控制台 AWS Config 開發人員指南。當您指定要記錄的資源類型時,請確定其中包含 Amazon S3 資源。
重要
AWS Config 受管規則僅在評估 Amazon S3 資源時支援一般用途儲存貯體。 AWS Config 不會記錄目錄值區的組態變更。如需詳細資訊,請參閱 AWS Config 受管規則和清單 AWS Config中的受管規則 AWS Config 開發人員指南。
有關如何使用的示例 AWS Config,請參閱如何使用 AWS Config 監控並回應允許公開存取的 Amazon S3 儲存
貯體 AWS 安全部落格。 -
- 使用 Amazon Macie 探索敏感資料
-
Amazon Macie 是一種安全服務,透過使用機器學習和模式比對來探索敏感資料。Macie 提供資料安全風險的可見性,並啟用自動防護來防範這些風險。使用 Macie,您可以自動探索和報告 Amazon S3 資料資產中的敏感資料,以更加了解貴組織存放在 S3 中的資料。
若要使用 Macie 偵測敏感資料,您可以使用內建準則和技術,其旨在偵測許多國家和地區的龐大和不斷增長的敏感資料類型。這些敏感資料類型包括多種類型的個人識別資訊 (PII)、財務資料和憑證資料。您也可以使用您定義的自訂準則,即定義要比對之文字模式的規則表達式,以及可選擇的字元序列和精簡結果的鄰近規則。
如果 Macie 在 S3 物件中偵測到敏感資料,Macie 會產生安全調查結果以通知您。此調查結果提供受影響物件的相關資訊、Macie 所找到敏感資料的類型和出現次數,以及協助您調查受影響 S3 儲存貯體和物件的其他詳細資訊。如需詳細資訊,請參閱 Amazon Macie 使用者指南。
- 使用 S3 Storage Lens
-
S3 Storage Lens 是一種雲端儲存體分析功能,您可以用來了解整個組織使用物件儲存體的情況及其活動情形。S3 Storage Lens 也會分析指標,以提供內容相關建議,您可以用來最佳化儲存成本,並套用最佳實務保護您的資料。
透過 S3 Storage Len,您可以使用指標產生摘要洞見,例如了解您在整個組織中擁有多少儲存體,或是成長速度最快的儲存貯體和字首有哪些。您也可以使用 S3 Storage Lens 指標,識別成本最佳化機會、實作資料保護和存取管理最佳實務,以及改善應用程式工作負載的效能。
例如,您可以識別沒有 S3 生命週期規則的儲存貯體,這些規則可中止超過 7 天未完成的分段上傳。您也可以識別未遵循資料保護最佳實務的儲存貯體,例如使用 S3 複寫或 S3 版本控制。如需詳細資訊,請參閱瞭解 Amazon S3 Storage Lens。
- 監視器 AWS 安全性公告
-
我們建議您定期查看張貼在中的安全公告 Trusted Advisor 為您的 AWS 帳戶。 特別是,尋找有關具有「開放存取權限」的 Amazon S3 儲存貯體的警告。您可以使用以編程方式執行此操作 describe-trusted-advisor-checks.
此外,主動監控每個人註冊的主要電子郵件地址 AWS 帳戶. AWS 使用此電子郵件地址與您聯繫,以了解可能會影響您的新興安全問題。
AWS 具有廣泛影響的操作問題張貼在 AWS Health Dashboard -服務健康狀況
。操作問題也通過以下方式發布到個人帳戶 AWS Health Dashboard如需詳細資訊,請參閱 .AWS Health 文件。