Amazon SNS 安全最佳實踐 - Amazon Simple Notification Service

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

Amazon SNS 安全最佳實踐

AWS 為 Amazon 提供了許多安全功能SNS。在您自己的安全政策內容中檢閱這些安全功能。

注意

這些安全功能的指引適用於一般使用案例和實作。我們建議您在特定使用案例、架構和威脅模型的內容中檢閱這些最佳實務。

預防性最佳實務

以下是 Amazon SNS 的預防性安全最佳實務。

確保主題無法公開存取

除非您明確要求互聯網上的任何人都能夠讀取或寫入您的 Amazon SNS 主題,否則應確保您的主題不可公開訪問(世界上的每個人或任何經過身份驗證的 AWS 用戶都可以訪問)。

  • 避免建立 Principal 設定為 "" 的政策。

  • 避免使用萬用字元 (*)。請改為命名特定使用者或使用者。

實作最低權限存取

授與權限時,您可以決定誰接收這些權限、權限適用的主題,以及您要允許這些主題API執行的特定動作。實作最低權限原則對於降低安全風險非常重要。它還有助於減少錯誤或惡意意圖的負面影響。

遵循授與最低權限的標準安全建議。也就是說,只授與執行特定工作所需的許可。您可以使用與使用者存取相關的安全政策組合來實作最低權限。

Amazon SNS 使用發佈商-訂閱者模式,需要三種類型的使用者帳戶存取權:

  • 管理員 – 建立、修改和刪除主題的存取權。管理員也會控制主題政策。

  • 發布者 – 傳送訊息至主題的存取權。

  • 訂閱者 – 訂閱主題的存取權。

如需詳細資訊,請參閱下列章節:

針對需要 Amazon SNS 存取IAM權的應用程式和 AWS 服務使用角色

若要存取 Amazon SNS 主題之類的應用程式或 AWS 服務EC2,他們必須在 AWS API請求中使用有效的 AWS 登入資料。由於這些認證不會自動輪替,因此您不應將 AWS 認證直接儲存在應用程式或EC2執行個體中。

您應該使用IAM角色來管理需要存取 Amazon 之應用程式或服務的臨時登入資料SNS。使用角色時,您不需要將長期認證 (例如使用者名稱、密碼和存取金鑰) 散發給EC2執行個體或 AWS 服務,例如 AWS Lambda. 相反地,該角色會提供應用程式在呼叫其他 AWS 資源時可以使用的暫存權限。

如需詳細資訊,請參閱IAM《使用指南》中的角色和角色的一般案例:使用IAM者、應用程式和服務

實作伺服器端加密

若要減輕資料外洩問題,請使用靜態加密,並利用與訊息儲存在不同位置的金鑰來加密訊息。伺服器端加密 (SSE) 提供靜態資料加密。Amazon SNS 會在資料儲存時在訊息層級加密資料,並在您存取訊息時為您解密訊息。SSE使用中管理的金鑰 AWS Key Management Service。當您驗證請求並具備存取許可時,存取加密與未加密主題的方式並無不同。

如需更多詳細資訊,請參閱 使用伺服器端加密保護 Amazon SNS 資料管理 Amazon SNS 加密金鑰和成本

強制加密傳輸中的資料

您可以使用,但不建議您發佈在傳輸過程中未加密的郵件HTTP。但是,當使用靜態對主題進行加密時 AWS KMS,需要將其用HTTPS於發佈訊息,以確保靜態和傳輸中的加密。雖然主題不會自動拒絕HTTP郵件,但必須使HTTPS用才能維護安全性標準。

AWS 建議您使用HTTPS而不是HTTP. 使用時HTTPS,即使SNS主題本身並未加密,訊息在傳輸期間也會自動加密。如果沒有HTTPS,基於網絡的攻擊者可以竊聽網絡流量或使用類似的攻擊來操縱網絡流量。 man-in-the-middle

若只要強制執行加密連線HTTPS,請在附加至未加密SNS主題的IAM原則中新增aws:SecureTransport條件。這會強制郵件發佈者使用,HTTPS而非使用HTTP。您可使用以下範例政策做為指南:

{ "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPublishThroughSSLOnly", "Action": "SNS:Publish", "Effect": "Deny", "Resource": [ "arn:aws:sns:us-east-1:1234567890:test-topic" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] }

考慮使用VPC端點訪問 Amazon SNS

如果您擁有必須能夠與之互動的主題,但這些主題絕對不能公開給網際網路,請使用VPC端點來限制只有特定主機的主題存取權VPC。您可以使用主題政策來控制來自特定 Amazon VPC 端點或特定主題的存取VPCs。

Amazon SNS VPC 端點提供兩種方式來控制訊息的存取:

  • 您可以控制透過特定VPC端點允許的要求、使用者或群組。

  • 您可以使用主題策略控制哪些VPCsVPC端點可以存取您的主題。

如需詳細資訊,請參閱 建立端點為 Amazon 創建 Amazon VPC 端點策略 SNS

確保訂閱未設定為傳遞至原始 http 端點

避免將訂閱設定為傳遞至原始 http 端點。永遠有訂閱傳遞至端點網域名稱。例如,設定為傳遞至端點的訂閱 http://1.2.3.4/my-path,應該更改為http://my.domain.name/my-path