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 存取權。如果IAM角色沒有發佈至SNS主題的許可,您必須將存取政策附加至 Amazon SNS主題,以授予對 Amazon 主題的 AWS Config 存取權。

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

AWS Config 服務連結角色沒有存取 Amazon SNS主題的許可。因此,如果您 AWS Config 使用服務連結角色 (SLR) 設定 , AWS Config 會改為以 AWS Config 服務主體身分傳送資訊。您需要將下列存取政策連接至 Amazon SNS主題,以授予將資訊傳送至 Amazon SNS主題的 AWS Config 存取權。

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

授予 Amazon SNS主題的 AWS Config 存取權。

此政策允許將通知 AWS Config 傳送至 Amazon SNS主題。若要從另一個帳戶授予對 Amazon SNS主題的 AWS Config 存取權,您需要連接下列許可政策。

注意

作為安全最佳實務,強烈建議您僅透過限制對AWS:SourceAccount條件中列出的帳戶的存取,來確保僅代表預期的使用者 AWS Config 存取資源。

{ "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 Config (SPN) 在代表特定 AWS Config 交付管道執行操作時僅與 S3 儲存貯體互動AWS:SourceArn的條件。使用 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 AWS Config SNS主題無法接收通知,請確認擔任IAM的角色具有必要的sns:Publish許可。