我可以使用什麼 S3 儲存貯體政策才能符合 AWS Config 規則 s3-bucket-ssl-requests-only 的規定?

1 分的閱讀內容
0

我已啟用 AWS Config 規則 “s3-bucket-ssl-requests-only”,以供 Amazon Simple Storage Service (Amazon S3) 儲存貯體政策在資料傳輸期間要求加密。我想確保我的儲存貯體政策遵守此規則。

解決方法

**注意:**Amazon S3 提供傳輸中加密和靜態加密。傳輸中加密是指 HTTPS,而靜態加密是指用戶端伺服器端加密

Amazon S3 允許 HTTP 和 HTTPS 請求。依預設,Amazon S3 會透過 AWS 管理主控台、AWS Command Line Interface (AWS CLI) 或 HTTPS 提出請求。

若要遵守 s3-bucket-ssl-requests-only 規則,請確認您的儲存貯體政策明確拒絕存取 HTTP 請求。允許 HTTPS 請求但未明確拒絕 HTTP 請求的儲存貯體政策可能不符合規則。

若要判斷儲存貯體政策中的 HTTP 或 HTTPS 請求,請使用檢查金鑰 **"aws:SecureTransport"**的條件。當此金鑰為 true時,則 Amazon S3 會透過 HTTPS 傳送請求。若要遵守 s3-bucket-ssl-requests-only 規則,請建立儲存貯體政策,以在要求符合條件 **"aws:SecureTransport": "false"**時,明確拒絕存取。此政策明確拒絕存取 HTTP 請求。

遵守 s3-bucket-ssl-requests-only 規則的儲存貯體政策

此範例儲存貯體政策遵守 s3-bucket-ssl-requests-only 規則。當請求符合條件 **"aws:SecureTransport": "false"**時,政策會明確拒絕儲存貯體和物件上的所有操作:

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowSSLRequestsOnly",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

未遵守 s3-bucket-ssl-requests-only 規則的儲存貯體政策

此儲存貯體政策未遵守 s3-bucket-ssl-requests-only 規則。此原則不明確拒絕陳述式,而是允許存取符合條件 **"aws:SecureTransport": "true"**的請求。如果請求使用 HTTPS,此陳述式會允許對儲存貯體中所有物件的 s3:GetObject 進行匿名存取。除非您的使用案例需要透過 HTTPS 進行匿名存取,否則請避免使用此類型的儲存貯體政策:

{
  "Id": "ExamplePolicy",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "NOT-RECOMMENDED-FOR__AWSCONFIG-Rule_s3-bucket-ssl-requests-only",
      "Action": "s3:GetObject",
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}

相關資訊

如何使用儲存貯體政策並套用深度防禦以協助保護您的 Amazon S3 資料

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