Configuración de registros de Amazon MQ para ActiveMQ - Amazon MQ

Configuración de registros de Amazon MQ para ActiveMQ

Para permitir que Amazon MQ publique registros en CloudWatch Logs, debe agregar un permiso a su usuario de Amazon MQ y configurar una política basada en recursos para Amazon MQ antes de crear o reiniciar el agente.

nota

Al activar los registros y publicar mensajes desde la consola web ActiveMQ, el contenido del mensaje se envía a CloudWatch y se muestra en dichos registros.

A continuación, se describen los pasos para configurar los registros de CloudWatch para sus agentes de ActiveMQ.

Comprensión de la estructura de registros en CloudWatch Logs

Puede habilitar registros generales y de auditoría cuando defina las opciones de configuración avanzada del agente o cuando edite un agente.

El registro general habilita el nivel de registro INFO predeterminado (no se admite el registro de DEBUG) y publica activemq.log en un grupo de registros en su cuenta de CloudWatch. El grupo de registros tiene un formato similar al siguiente:

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

El registro de auditoría habilita el registro de acciones de administración realizadas con JMX o a través de la consola web de ActiveMQ, y publica audit.log en un grupo de registros en su cuenta de CloudWatch. El grupo de registros tiene un formato similar al siguiente:

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

Dependiendo de si tiene un agente de una sola instancia o un agente activo/en espera, Amazon MQ crea uno o dos flujos de registro en cada grupo de registros. Los flujos de registros tienen un formato similar al siguiente.

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

Los sufijos -1 y -2 indican instancias de agentes individuales. Para obtener más información, consulte Uso de grupos de registros y flujos de registro en la Guía del usuario de Amazon CloudWatch Logs.

Agregar el permiso CreateLogGroup a su usuario de Amazon MQ

Para permitir que Amazon MQ cree un grupo de registros de CloudWatch Logs, debe asegurarse de que el usuario que crea o reinicia el agente tenga el permiso logs:CreateLogGroup.

importante

Si no agrega el permiso CreateLogGroup a su usuario de Amazon MQ antes de que el usuario cree o reinicie el agente, Amazon MQ no crea el grupo de registros.

El siguiente ejemplo de política basada en IAM concede permiso paralogs:CreateLogGroup a los usuarios a los que se les asocia esta política.

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

Aquí, el término usuario se refiere a usuarios, no a usuarios de Amazon MQ, que se crean cuando se configura un nuevo agente. Para obtener más información acerca de la configuración de usuarios y de políticas de IAM, consulte la sección Información general sobre administración de identidades de la Guía del usuario de IAM.

Para obtener más información, consulte CreateLogGroup en la Referencia de la API de Amazon CloudWatch Logs.

Configurar una política basada en recursos para Amazon MQ.

importante

Si no configura una política basada en recursos para Amazon MQ, el agente no puede publicar los registros en CloudWatch Logs.

Para permitir que Amazon MQ publique registros en su grupo de registros de CloudWatch Logs, configure una política basada en recursos para que Amazon MQ pueda acceder a las siguientes acciones de la API de CloudWatch Logs:

  • CreateLogStream: crea un flujo de registro de CloudWatch Logs para el grupo de registros especificado.

  • PutLogEvents: envía eventos al flujo de registros de CloudWatch Logs especificado.

La siguiente política basada en recursos concede permisos de logs:CreateLogStream y logs:PutLogEvents a 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/*" } ] }

Esta política basada en recursos se debe configurar a través de la AWS CLIcomo se muestra en el siguiente comando. En el ejemplo, reemplace us-east-1 por su propia información.

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\/*\" }]}"
nota

Dado que este ejemplo utiliza el prefijo /aws/amazonmq/, necesita configurar la política basada en recursos solo una vez por cada cuenta de AWS y región.

Prevención del suplente confuso entre servicios

El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación entre servicios puede dar lugar al problema de la sustitución confusa. La suplantación entre servicios puedes producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puedes manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que lo ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.

Recomendamos utilizar las claves de contexto de condición global aws:SourceArn y aws:SourceAccount en la política basada en recursos de Amazon MQ para limitar el acceso de CloudWatch Logs a uno o varios agentes especificados.

nota

Si se utilizan ambas claves de contexto de condición global, el valor aws:SourceAccount y la cuenta del valor aws:SourceArn deben utilizar el mismo ID de cuenta cuando se utilicen en la misma declaración de política.

En el siguiente ejemplo, se muestra una política basada en recursos que limita el acceso de CloudWatch Logs a un único agente de 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" } } } ] }

También se puede configurar la política basada en recursos para limitar el acceso de CloudWatch Logs a todos los agentes de una cuenta, como se muestra a continuación.

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

Para obtener más información sobre el problema de seguridad del suplente confuso, consulte El problema del suplente confuso en la Guía del usuario.