

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

# 使用加密保護傳輸中的資料
<a name="UsingEncryptionInTransit"></a>

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 支援
<a name="UsingEncryptionInTransit.TLS-support"></a>

針對所有 的所有 API 端點，Amazon S3 支援 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](pqtls-how-to.md)。

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

## 監控 TLS 用量
<a name="UsingEncryptionInTransit.monitoring"></a>

您可以使用 Amazon S3 伺服器存取日誌或 AWS CloudTrail 來監控對 Amazon S3 儲存貯體的請求。兩個記錄選項都會記錄每個請求中使用的 TLS 版本和密碼套件。
+ **Amazon S3 伺服器存取日誌** – 伺服器存取日誌提供對儲存貯體提出之請求的詳細記錄。舉例來說，存取記錄資訊在安全與存取稽核中相當實用。如需詳細資訊，請參閱[Amazon S3 伺服器存取日誌格式](LogFormat.md)。
+ **AWS CloudTrail** – [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) 是一種服務，可提供使用者、角色或服務所採取動作的記錄 AWS 。CloudTrail 會將 Amazon S3 的所有 API 呼叫當做事件來擷取。如需詳細資訊，請參閱[Amazon S3 CloudTrail 事件](cloudtrail-logging-s3-info.md)。

## 強制執行傳輸中的加密
<a name="UsingEncryptionInTransit.enforcement"></a>

強制執行傳輸到 Amazon S3 的資料加密是安全最佳實務。您可以透過各種政策機制，強制執行僅限 HTTPS 的通訊或使用特定 TLS 版本。其中包括 S3 儲存貯體 ([儲存貯體政策](bucket-policies.md))、[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCPs)、資源[控制政策 (RCP) 和 VPC 端點政策的 IAM 資源](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)[型政策](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。 RCPs

### 用於強制執行傳輸中加密的儲存貯體政策範例
<a name="UsingEncryptionInTransit.bucket-policy-example"></a>

您可以使用 [S3 條件金鑰](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)，根據用戶端使用的 TLS 版本`s3:TlsVersion`來限制對 Amazon S3 儲存貯體的存取。如需詳細資訊，請參閱[範例 6：需要最低 TLS 版本](amazon-s3-policy-keys.md#example-object-tls-version)。

**Example 使用 `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://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)，以檢查請求是否已透過 HTTPS (TLS) 傳送。與先前的範例不同，此條件不會檢查特定 TLS 版本。如需詳細資訊，請參閱[限制僅 HTTPS 請求才能存取](example-bucket-policies.md#example-bucket-policies-use-case-HTTP-HTTPS-1)。

**Example 使用`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 強制執行傳輸中的加密。](https://aws.amazon.com/blogs/storage/enforcing-encryption-in-transit-with-tls1-2-or-higher-with-amazon-s3/)