授予 Amazon Managed Service for Prometheus 的權限,以便將訊息傳送到您的 Amazon SNS 主題 - Amazon Managed Service for Prometheus

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

授予 Amazon Managed Service for Prometheus 的權限,以便將訊息傳送到您的 Amazon SNS 主題

您必須授予 Amazon Managed Service for Prometheus 權限,以便將訊息傳送到您的 Amazon SNS 主題。以下的政策聲明包括一個 Condition 聲明,以幫助防止混淆代理人安全問題。Condition 聲明限制 Amazon SNS 主題的存取權,以便僅允許來自此特定帳戶和 Amazon Managed Service for Prometheus 工作區的作業。如需有關混淆代理人問題的詳細資訊,請參閱 預防跨服務混淆代理人

授予 Amazon Managed Service for Prometheus 的許可,以訊息傳送到您的 Amazon SNS 主題
  1. https://console.aws.amazon.com/sns/v3/home 開啟 Amazon SNS 主控台。

  2. 在導覽窗格中,選擇主題

  3. 選擇您與 Amazon Managed Service for Prometheus 搭配使用的主題名稱。

  4. 選擇 [編輯]

  5. 選擇存取政策,然後將下列政策陳述式新增至現有政策。

    { "Sid": "Allow_Publish_Alarms", "Effect": "Allow", "Principal": { "Service": "aps.amazonaws.com" }, "Action": [ "sns:Publish", "sns:GetTopicAttributes" ], "Condition": { "ArnEquals": { "aws:SourceArn": "workspace_ARN" }, "StringEquals": { "AWS:SourceAccount": "account_id" } }, "Resource": "arn:aws:sns:region:account_id:topic_name" }

    [選用] 如果您的 SNS 主題已啟用服務端加密 (SSE),則需要將下列權限新增至 "Action" 區塊中的 KMS 金鑰政策。如需詳細資訊,請參閱 SNS 主題的AWS KMS 許可

    kms:GenerateDataKey kms:Decrypt
  6. 選擇「Save changes (儲存變更)」。

注意

依預設,Amazon SNS 在於 AWS:SourceOwner 上建立含條件的存取政策。如需詳細資訊,請參閱 SNS 存取政策

注意

IAM 遵循最嚴格的政策第一條規則。在您的 SNS 主題中,如果政策區塊的限制比記錄的 Amazon SNS 政策區塊更嚴格,則不會授予主題政策的權限。若要評估您的原則並找出已授與的項目,請參閱政策評估邏輯

預防跨服務混淆代理人

混淆代理人問題屬於安全性問題,其中沒有執行動作許可的實體可以強制具有更多許可的實體執行該動作。在中 AWS,跨服務模擬可能會導致混淆的副問題。在某個服務 (呼叫服務) 呼叫另一個服務 (被呼叫服務) 時,可能會發生跨服務模擬。可以操縱呼叫服務來使用其許可,以其不應有存取許可的方式對其他客戶的資源採取動作。為了防止這種情況發生, AWS 提供的工具可協助您透過已授予您帳戶中資源存取權的服務主體來保護所有服務的資料。

我們建議在資源政策中使用 aws:SourceArnaws:SourceAccount 全域條件內容索引鍵,來限制 Amazon Managed Service for Prometheus 給予 Amazon SNS 對資源的許可。如果同時使用全域條件內容索引鍵,則在相同政策陳述式中使用 aws:SourceAccount 值和 aws:SourceArn 值中的帳戶時,必須使用相同的帳戶 ID。

aws:SourceArn 的值必須是 Amazon Managed Service for Prometheus 工作區的 ARN。

防範混淆代理人問題最有效的方法,是使用 aws:SourceArn 全域條件內容金鑰,以及資源的完整 ARN。如果不知道資源的完整 ARN,或者如果您指定了多個資源,請使用 aws:SourceArn 全域條件內容金鑰,同時使用萬用字元 (*) 表示 ARN 的未知部分。例如 arn:aws:servicename::123456789012:*

授予 Amazon Managed Service for Prometheus 的權限,以便將訊息傳送到您的 Amazon SNS 主題 中顯示的政策會顯示您可在 Amazon Managed Service for Prometheus 中使用 aws:SourceArnaws:SourceAccount 全域條件內容索引鍵防止混淆代理人問題。