

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置 Amazon MQ for ActiveMQ 日志
<a name="configure-logging-monitoring-activemq"></a>

要允许 Amazon MQ 将日志发布到 CloudWatch 日志，您必须[向您的 Amazon MQ 用户添加权限](#security-logging-monitoring-configure-cloudwatch-permissions)，[并在创建或重启代理之前为 Amazon MQ 配置基于资源的](#security-logging-monitoring-configure-cloudwatch-resource-permissions)策略。

**注意**  
当您打开日志并从 ActiveMQ Web 控制台发布消息时，消息内容将发送 CloudWatch 到日志并显示在日志中。

以下介绍为 ActiveMQ 代理配置 CloudWatch 日志的步骤。

**Topics**
+ [了解 CloudWatch 日志中登录的结构](#security-logging-monitoring-configure-cloudwatch-structure)
+ [向 Amazon MQ 用户添加 `CreateLogGroup` 权限](#security-logging-monitoring-configure-cloudwatch-permissions)
+ [为 Amazon MQ 配置基于资源的策略。](#security-logging-monitoring-configure-cloudwatch-resource-permissions)
+ [防止跨服务混淆座席](#security-logging-monitoring-configure-cloudwatch-confused-deputy)

## 了解 CloudWatch 日志中登录的结构
<a name="security-logging-monitoring-configure-cloudwatch-structure"></a>

您可以在创建代理时配置高级代理设置，或在编辑代理时启用*常规*和*审计*日志记录。

常规日志记录启用默认`INFO`日志级别（不支持`DEBUG`日志记录），并发布`activemq.log`到您 CloudWatch 账户中的日志组。日志组的格式如下所示：

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

[审核日志](http://activemq.apache.org/audit-logging.html)允许记录使用 JMX 或 ActiveMQ Web 控制台执行的管理操作，并将其`audit.log`发布到您账户中的日志组。 CloudWatch 日志组的格式如下所示：

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

根据您是具有[单实例代理](amazon-mq-broker-architecture.md#single-broker-deployment)还是[主动/备用代理](amazon-mq-broker-architecture.md#active-standby-broker-deployment)，Amazon MQ 将在每个日志组中创建一个或两个日志流。日志流的格式如下所示。

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

`-1` 和 `-2` 后缀表示单个代理实例。有关更多信息，请参阅 *[Amazon 日志用户指南中的使用日志组和 CloudWatch 日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/)*[流](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html)。

## 向 Amazon MQ 用户添加 `CreateLogGroup` 权限
<a name="security-logging-monitoring-configure-cloudwatch-permissions"></a>

要允许 Amazon MQ 创建 CloudWatch 日志组，您必须确保创建或重启代理的用户拥有该权限。`logs:CreateLogGroup`

**重要**  
如果您未在 Amazon MQ 用户创建或重启代理之前将 `CreateLogGroup` 权限添加给 Amazon MQ 用户，则 Amazon MQ 不会创建日志组。

以下示例介绍[基于 IAM 的策略](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#identity-based-policies-cwl)为附加此策略的用户授予 `logs:CreateLogGroup` 权限。

------
#### [ JSON ]

****  

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

------

**注意**  
此处，术语“用户”是指*用户*而不是 *Amazon MQ 用户*，后者是在配置新的代理程序时创建的。有关设置用户和配置 IAM policy 的更多信息，请参阅《IAM 用户指南》中的[身份管理概述](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html)部分。

有关更多信息，请参阅 *Amazon CloudWatch 日志 API 参考`[CreateLogGroup](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)`*中的。

## 为 Amazon MQ 配置基于资源的策略。
<a name="security-logging-monitoring-configure-cloudwatch-resource-permissions"></a>

**重要**  
如果您没有为 Amazon MQ 配置基于资源的策略，则代理无法将日志发布到日志 CloudWatch 。

要允许 Amazon MQ 将日志发布到您的日志 CloudWatch 日志组，请配置基于资源的策略以授予 Amazon MQ 访问以下日志 API 操作的权限： CloudWatch 
+ `[CreateLogStream](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)`— 为指定的 CloudWatch 日志组创建日志日志流。
+ `[PutLogEvents](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)`— 将事件传送到指定的 CloudWatch 日志日志流。

以下基于资源的策略授予对`logs:CreateLogStream`和的权限`logs:PutLogEvents`。 AWS

------
#### [ JSON ]

****  

```
{ 
                            "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 账户、每个区域配置一次基于资源的策略。

## 防止跨服务混淆座席
<a name="security-logging-monitoring-configure-cloudwatch-confused-deputy"></a>

 混淆代理问题是一个安全性问题，即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在中 AWS，跨服务模仿可能会导致混乱的副手问题。一个服务（*呼叫服务*）调用另一项服务（*所谓的服务*）时，可能会发生跨服务模拟。可以操纵调用服务以使用其权限对另一个客户的资源进行操作，否则该服务不应有访问权限。为了防止这种情况，我们 AWS 提供了一些工具，帮助您保护所有服务的数据，这些服务委托人已被授予访问您账户中资源的权限。

 我们建议在基于资源的 Amazon MQ 策略中使用`[aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)`和`[aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)`全局条件上下文密钥来限制一个或多个指定代理访问 CloudWatch 日志。

**注意**  
 如果使用两个全局条件上下文键，在同一策略语句中使用时，`aws:SourceAccount` 值和 `aws:SourceArn` 值中的账户必须使用相同的账户 ID。

 以下示例演示了一种基于资源的策略，该策略将 CloudWatch 日志访问权限限制为单个 Amazon MQ 代理。

------
#### [ JSON ]

****  

```
{
                        "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-west-1:123456789012:broker:my-broker:123456789012"
                                }
                            }
                            }
                        ]
                        }
```

------

 您还可以将基于资源的策略配置为限制账户中所有经纪人的 CloudWatch 日志访问权限，如下所示。

------
#### [ JSON ]

****  

```
{
                            "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"
                                }
                                }
                            }
                            ]
                        }
```

------

有关混淆代理人安全问题的更多信息，请参阅《用户指南》**中的[混淆代理人问题](https://docs.aws.amazon.com/hIAM/latest/UserGuide/confused-deputy.html)。