View a markdown version of this page

使用加密保護傳輸中的資料 - Amazon Simple Storage Service

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

使用加密保護傳輸中的資料

Amazon S3 支援資料傳輸的 HTTP 和 HTTPS 通訊協定。HTTP 以純文字傳輸資料,而 HTTPS 透過使用 Transport Layer Security (TLS) 加密資料來新增安全層。TLS 可防止竊聽、資料竄改和man-in-the-middle攻擊。接受 HTTP 流量時,大多數實作會使用 HTTPS 和 TLS 傳輸中的加密來保護用戶端和 Amazon S3 之間傳輸的資料。

TLS 1.2 和 TLS 1.3 支援

Amazon S3 支援在所有 API 端點之間進行 HTTPS 連線的 TLS 1.2 和 TLS 1.3 AWS 區域。S3 會自動交涉用戶端軟體支援最強大的 TLS 保護,以及您存取的 S3 端點。目前的 AWS 工具 (2014 或更新版本),包括 AWS SDKs並 AWS CLI 自動預設為 TLS 1.3,您不需要採取任何動作。如果需要回溯相容於 TLS 1.2,您可以透過用戶端組態設定覆寫此自動交涉,以指定特定的 TLS 版本。使用 TLS 1.3 時,您可以選擇設定混合式後量子金鑰交換 (ML-KEM),以向 Amazon S3 提出可保護量子的請求。如需詳細資訊,請參閱為您的用戶端設定混合式後量子 TLS

注意

所有 S3 端點都支援 TLS 1.3,但 AWS PrivateLink Amazon S3 和多區域存取點除外。

監控 TLS 用量

您可以使用 Amazon S3 伺服器存取日誌或 AWS CloudTrail 來監控對 Amazon S3 儲存貯體的請求。兩個記錄選項都會記錄每個請求中使用的 TLS 版本和密碼套件。

  • Amazon S3 伺服器存取日誌 – 伺服器存取日誌提供對儲存貯體提出之請求的詳細記錄。舉例來說,存取記錄資訊在安全與存取稽核中相當實用。如需詳細資訊,請參閱Amazon S3 伺服器存取日誌格式

  • AWS CloudTrailAWS CloudTrail 是一種服務,可提供使用者、角色或服務所採取動作的記錄 AWS 。CloudTrail 會將 Amazon S3 的所有 API 呼叫當做事件來擷取。如需詳細資訊,請參閱Amazon S3 CloudTrail 事件

強制執行傳輸中的加密

強制執行傳輸到 Amazon S3 的資料加密是安全最佳實務。您可以透過各種政策機制,強制執行僅限 HTTPS 的通訊或使用特定 TLS 版本。其中包括 S3 儲存貯體 (儲存貯體政策)、服務控制政策 (SCPs)、資源控制政策 (RCPs) 和 VPC 端點政策的 IAM 資源型政策

用於強制執行傳輸中加密的儲存貯體政策範例

您可以使用 S3 條件金鑰,根據用戶端使用的 TLS 版本s3:TlsVersion限制對 Amazon S3 儲存貯體的存取。如需詳細資訊,請參閱範例 6:需要最低 TLS 版本

範例使用 S3:TlsVersion條件索引鍵強制執行 TLS 1.3 的儲存貯體政策
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyInsecureConnections", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "NumericLessThan": { "s3:TlsVersion": "1.3" } } } ] }

您可以在 S3 儲存貯體政策中使用aws:SecureTransport全域條件金鑰,以檢查請求是否透過 HTTPS (TLS) 傳送。與先前的範例不同,此條件不會檢查特定 TLS 版本。如需詳細資訊,請參閱限制僅 HTTPS 請求才能存取

範例使用aws:SecureTransport全域條件金鑰強制執行 HTTPS 的儲存貯體政策
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RestrictToTLSRequestsOnly", "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1", "arn:aws:s3:::amzn-s3-demo-bucket1/*" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }
以金鑰和更多範例為基礎的範例政策

您可以在一個政策的先前範例中使用這兩種類型的條件索引鍵。如需詳細資訊和其他強制執行方法,請參閱 AWS Storage 部落格文章使用 TLS1.2 或更新的 Amazon S3 強制執行傳輸中的加密。