我的客戶使用舊版 TLS。當他們存取存放在我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的內容時,我想要強制他們使用最新的 TLS 版本。如何為我的 Amazon S3 儲存貯體強制使用 TLS 1.2 或更高版本?
簡短描述
最佳實務是針對傳輸中的資料使用最新加密通訊協定。您可以透過更新儲存貯體的安全政策以為連線到 Amazon S3 強制使用 TLS 1.2 或更高版本。
**注意:**如果您的客戶不使用 TLS 1.2 或更高版本,則他們無法存取存放在 S3 儲存貯體中的內容。
解決方案
您可以使用連接至儲存貯體的資源型政策,以強制對 S3 儲存貯體的所有連線使用 TLS 1.2 或更高版本。
若要設定需要 TLS 1.2 或更高版本的儲存貯體政策:
- 前往 S3 主控台。
- 從清單中選取儲存貯體。
- 導覽至 Permissions (許可) 標籤。
- 在儲存貯體政策下,選擇Edit (編輯)。
- 新增政策以拒絕您要防止對加密通訊協定的存取。例如,使用以下政策拒絕所有使用 TLS 版本低於 1.2 的 HTTPS 請求:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceTLSv12orHigher",
"Principal": {
"AWS": "*"
},
"Action": ["s3:*"],
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET"
],
"Condition": {
"NumericLessThan": {
"s3:TlsVersion": 1.2
}
}
}
]
}
請確認您使用的是適用於 S3 的最新加密通訊協定
若要測試新政策,請使用下列範例的 curl 命令,即可使用特定的舊版通訊協定發出 HTTPS 請求:
curl https://${BUCKET_NAME}.s3.us-east-1.amazonaws.com/image.png -v --tlsv1.0 --tls-max 1.0
範例 curl 命令會傳回 Access Denied (拒絕存取),因為 Amazon S3 偵測到您的請求未使用 TLS 1.2 或更高版本。
最佳實務是使用 AWS CloudTrail Lake 來識別舊版 TLS 到 AWS 服務端點的連線。您可以設定 CloudTrail Lake 事件資料存放區,以擷取管理事件或資料事件。CloudTrail Lake 中對應的 CloudTrail 事件顯示 TLS 版本 1.2,確認您的客戶使用最新的安全政策連線到 Amazon S3。