設定 Amazon MQ for ActiveMQ 日誌 - Amazon MQ

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

設定 Amazon MQ for ActiveMQ 日誌

若要允許 Amazon MQ 將日誌發佈到日 CloudWatch 誌,您必須在建立或重新啟動代理程式之前,為 Amazon MQ 新增許可,並為 Amazon MQ 設定以資源為基礎的政策

注意

當您從 ActiveMQ Web 主控台開啟記錄檔並發佈訊息時,訊息內容會傳送至記錄檔 CloudWatch 並顯示在記錄檔中。

以下說明為您的 ActiveMQ 代理程式設定 CloudWatch 記錄檔的步驟。

了解日誌記 CloudWatch 錄的結構

當您設定進階代理程式設定、當您建立代理程式,或當您編輯代理程式時,您可以啟用一般稽核記錄。

一般記錄會啟用預設INFO記錄層級 (不支援DEBUG記錄),並發佈activemq.log至您 CloudWatch 帳戶中的記錄群組。日誌群組具有如下的格式:

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/general

稽核記錄可記錄使用 JMX 或使用 ActiveMQ Web 主控台所採取的管理動作,並發佈audit.log至您帳戶中的記錄群組。 CloudWatch 日誌群組具有如下的格式:

/aws/amazonmq/broker/b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9/audit

根據您具有單一執行個體代理程式,還是作用中/待命代理程式,Amazon MQ 會在每個日誌群組內建立一或兩個日誌串流。日誌串流具有如下的格式。

activemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.log activemq-b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-2.log

-1-2 尾碼表示個別的代理程式執行個體。如需詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的使用日誌群組和日誌串流

CreateLogGroup 許可新增至 Amazon MQ 使用者

若要允許 Amazon MQ 建立 CloudWatch 日誌記錄群組,您必須確保建立或重新啟動代理程式的使用者具有權限。logs:CreateLogGroup

重要

在使用者建立或重新啟動代理程式之前,如果您未將 CreateLogGroup 許可新增至 Amazon MQ 使用者,則 Amazon MQ 不會建立日誌群組。

下列範例 以 IAM 為基礎的政策logs:CreateLogGroup 的許可授予此政策附加至的使用者。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ] }
注意

在此,使用者一詞是指使用者,而不是 Amazon MQ 使用者,後者是在設定新代理程式時建立的使用者。如需有關設定使用者和設定 IAM 政策的詳細資訊,請參閱《IAM 使用者指南》中的身分管理概觀一節。

如需詳細資訊,請參閱 Amazon CloudWatch 日誌 API 參考CreateLogGroup中的。

為 Amazon MQ 設定資源型政策。

重要

如果您未為 Amazon MQ 設定以資源為基礎的政策,代理程式將無法將日誌發佈到 CloudWatch 日誌。

若要允許 Amazon MQ 將日誌發佈到您的日 CloudWatch 誌日誌群組,請設定以資源為基礎的政策,讓 Amazon MQ 能夠存取下列 CloudWatch 日誌 API 動作:

  • CreateLogStream— 為指定的 CloudWatch 防護記錄群組建立防護記錄資料流。

  • PutLogEvents— 將事件傳遞至指定的 CloudWatch 記錄檔記錄串流。

下列以資源為基礎的政策會授予logs:CreateLogStreamlogs:PutLogEvents權限。 AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mq.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*" } ] }

此以資源 AWS CLI 為基礎的策略必須使用如下面的命令所示進行配置。在此範例中,以自己的資訊取代 us-east-1

aws --region us-east-1 logs put-resource-policy --policy-name AmazonMQ-logs \ --policy-document "{\"Version\": \"2012-10-17\", \"Statement\":[{ \"Effect\": \"Allow\", \"Principal\": { \"Service\": \"mq.amazonaws.com\" }, \"Action\": [\"logs:CreateLogStream\", \"logs:PutLogEvents\"], \"Resource\": \"arn:aws:logs:*:*:log-group:\/aws\/amazonmq\/*\" }]}"
注意

由於此範例使用前置/aws/amazonmq/詞,因此每個 AWS 帳戶每個區域只需設定一次以資源為基礎的策略。

預防跨服務混淆代理人

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

我們建議您在 Amazon MQ 資源型政策中使用aws:SourceArnaws:SourceAccount全域條件上下文金鑰,將 CloudWatch 日誌存取限制為一或多個指定代理程式。

注意

如果同時使用全域條件內容索引鍵,則在相同政策陳述式中使用 aws:SourceAccount 值和 aws:SourceArn 值中的帳戶時,必須使用相同的帳戶 ID。

下列範例示範以資源為基礎的政策,該政策限制了對單一 Amazon MQ 代理程式的 CloudWatch 日誌存取。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mq.amazonaws.com" }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012", "aws:SourceArn": "arn:aws:mq:us-east-2:123456789012:broker:MyBroker:b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9" } } } ] }

您也可以設定以資源為基礎的政策,以限制對帳戶中所有代理程式的 CloudWatch 記錄存取,如下所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "mq.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/amazonmq/*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:mq:*:123456789012:broker:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

如需混淆代理安全問題的詳細資訊,請參閱《IAM 使用者指南》中的混淆代理問題

疑難排解 CloudWatch 記錄檔

在某些情況下, CloudWatch 記錄檔可能無法一律如預期般運作。本節會提供常見問題的概觀,並說明如何解決問題。

記錄群組未出現在 CloudWatch

將 CreateLogGroup 許可新增至 Amazon MQ 使用者,然後重新啟動代理程式。如此便允許 Amazon MQ 建立日誌群組。

記錄資料流不會出現在 CloudWatch 記錄群組中

為 Amazon MQ 設定資源型政策。這可讓代理程式發佈其日誌。