如何為我的 Amazon S3 儲存貯體強制使用 TLS 1.2 或更高版本?

1 分的閱讀內容
0

我的客戶使用舊版 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 或更高版本的儲存貯體政策

  1. 前往 S3 主控台
  2. 從清單中選取儲存貯體。
  3. 導覽至 Permissions (許可) 標籤。
  4. 在儲存貯體政策下,選擇Edit (編輯)。
  5. 新增政策以拒絕您要防止對加密通訊協定的存取。例如,使用以下政策拒絕所有使用 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。


AWS 官方
AWS 官方已更新 5 個月前