Amazon SNS 主題的許可 - AWS Config

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

Amazon SNS 主題的許可

本主題說明如何設定 AWS Config 交付由不同帳戶擁有的 Amazon SNS 主題。 AWS Config 必須具有必要的許可才能將通知發送到 Amazon SNS 主題。對於同一帳戶設置,當 AWS Config 控制台創建一個 Amazon SNS 主題,或者您從自己的帳戶中選擇一個 Amazon SNS 主題, AWS Config 確保 Amazon SNS 主題包含必要的許可,並遵循安全最佳實務。

注意

AWS Config 目前僅支援相同區域和跨帳戶的存取。SNS用於修正的主題 AWS Systems Manager (SSM) 文件或記錄器傳送通道不能跨區域。

使用IAM角色時 Amazon SNS 主題所需的許可

您可以將許可政策附加到不同帳戶擁有的 Amazon SNS 主題。如果您想使用其他帳戶中的 Amazon SNS 主題,請確保將以下政策附加到現有的 Amazon SNS 主題。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:region:account-id:myTopic", "Principal": { "AWS": [ "account-id1", "account-id2", "account-id3" ] } } ] }

對於Resource鑰匙,account-id 是 AWS 主題擁有者的帳號。用於 account-id1, account-id2account-id3,使用 AWS 帳戶 將數據發送到 Amazon SNS 主題。您可以取代適當的值 region 以及 myTopic.

當 AWS Config 向 Amazon SNS 主題發送通知,它首先嘗試使用該IAM角色,但如果該角色或 AWS 帳戶 沒有發佈至主題的權限。在這次活動中, AWS Config 再次發送通知,這次是 AWS Config 服務主要名稱 (SPN)。發布成功之前,主題的存取政策必須授與 config.amazonaws.com 主體名稱的 sns:Publish 存取權。您必須將存取政策 (如下一節所述) 附加到 Amazon 主SNS題才能授予 AWS Config 如果IAM角色沒有發佈SNS主題的權限,則存取 Amazon 主題。

使用服務連結角色時,Amazon SNS 主題的必要許可

所以此 AWS Config 服務連結角色沒有存取 Amazon SNS 主題的權限。所以,如果你設置 AWS Config 使用服務連結角色 (SLR) AWS Config 將發送信息作為 AWS Config 服務主體而不是。您需要將下面提到的訪問策略附加到 Amazon 主SNS題才能授予 AWS Config 訪問將信息發送到 Amazon SNS 主題。

對於同一帳戶設置,當 Amazon SNS 主題和SLR在同一帳戶中並且 Amazon SNS 政策授予 sns:Publish「SLR」許可時,您無需使用 AWS Config SPN。以下許可政策和安全性最佳實務建議適用於跨帳戶設定。

授予 AWS Config 訪問 Amazon SNS 主題。

此政策允許 AWS Config 向 Amazon SNS 主題發送通知。授予 AWS Config 從另一個帳戶訪問 Amazon SNS 主題,您將需要附加以下許可政策。

注意

作為安全性最佳實務,強烈建議您確定 AWS Config 只有限制對AWS:SourceAccount條件中列出的帳號的存取權,才代表預期的使用者存取資源。

{ "Id": "Policy_ID", "Statement": [ { "Sid": "AWSConfigSNSPolicy", "Effect": "Allow", "Principal": { "Service": "config.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:myTopic", "Condition" : { "StringEquals": { "AWS:SourceAccount": [ "account-id1", "account-id2", "account-id3" ] } } } ] }

對於Resource鑰匙,account-id 是 AWS 主題擁有者的帳號。用於 account-id1, account-id2account-id3,使用 AWS 帳戶 將數據發送到 Amazon SNS 主題。您可以取代適當的值 region 以及 myTopic.

您可以使用上一個 Amazon SNS 主題政策中的AWS:SourceAccount條件來限制 AWS Config 服務主體名稱 (SPN) 代表特定帳戶執行操作時,僅與 Amazon SNS 主題互動。

AWS Config 還支AWS:SourceArn持限制了 AWS Config 代表特定執行操作時,僅與 S3 儲存貯體互動的服務主體名稱 (SPN) AWS Config 交付渠道。使用時 AWS Config 服務主體名稱 (SPN),AWS:SourceArn屬性將永遠設定為arn:aws:config:sourceRegion:sourceAccountID:*其中sourceRegion是傳送通道的區域,並且sourceAccountID是包含傳遞通道的帳戶 ID。如需關於 AWS Config 交付管道,請參閱管理交付管道。例如,新增下列條件以限制 AWS Config 服務主體名稱 (SPN),僅代表帳戶中us-east-1區域中的交付通道與 S3 儲存貯體互動123456789012"ArnLike": {"AWS:SourceArn": "arn:aws:config:us-east-1:123456789012:*"}

Amazon SNS 主題的故障排除

AWS Config 必須具有向 Amazon SNS 主題發送通知的許可。如果 Amazon SNS 主題無法收到通知,請確認該IAM角色具有 AWS Config 假設具有所需的sns:Publish權限。