如何針對我的 Amazon S3 儲存貯體強制執行 TLS 1.2 或更新版本?

2 分的閱讀內容
0

我的客戶使用舊版 TLS。當他們存取在我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的內容時,我想要強制他們使用最新的 TLS 版本。

簡短描述

最佳實務是對傳輸中的資料使用最新加密通訊協定。若為連線到 Amazon S3 要強制使用 TLS 1.2 版或更新版本,請更新儲存貯體的安全政策。

**注意:**客戶必須使用 TLS 1.2 版或更新版本,以存取存放在 S3 儲存貯體中的內容。

如需 AWS 的 TLS 棄用版本的相關資訊,請參閱 TLS 1.2 成為所有 AWS API 端點的最低 TLS 通訊協定層級

解決方法

使用連接至儲存貯體的資源型政策,以強制對 S3 儲存貯體的所有連線使用 TLS 1.2 或更新版本。

若要連接需要 TLS 1.2 版或更新版本的儲存貯體政策,請完成下列步驟:

  1. 開啟 Amazon S3 主控台

  2. 從清單中選取儲存貯體。

  3. 選擇權限標籤。

  4. 在儲存貯體政策下,選擇編輯

  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
            }
          }
        }
      ]
    }

    本政策強制執行 HTTPS 為傳輸中的資料提高安全性。

    如果您的工作負載需要傳送至 Amazon S3 的 HTTP 流量,請使用下列政策。此政策允許 HTTP 流量並封鎖低於 TLS 1.2 版本的 HTTPS 流量:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "UpdateTLSv12",
          "Effect": "Deny",
          "Principal": {
            "AWS": "*"
          },
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
          "Condition": {
            "Bool": {
              "aws:SecureTransport": "true"
            },
            "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 命令範例會傳回存取遭拒,因為 Amazon S3 偵測到您的請求未使用 TLS 1.2 版或更新版本。

注意: 依預設,curl 會傳送匿名請求。如果您的儲存貯體為私有,則您會收到任何 TLS 版本的 403 存取遭拒錯誤。使用 curl 進行測試時,請產生 Amazon S3 預先簽章的網址以取得對私有物件的存取權。

最佳實務是使用 AWS CloudTrail Lake 識別舊版 TLS 到 AWS 服務端點的連線。您可以設定 CloudTrail Lake 事件資料存放區,以擷取管理事件或資料事件。

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