Configurar logs do Amazon MQ for ActiveMQ - Amazon MQ

Configurar logs do Amazon MQ for ActiveMQ

Para permitir que o Amazon MQ publique logs no CloudWatch Logs, você deve adicionar uma permissão ao usuário do Amazon MQ e configurar uma política baseada em recursos para o Amazon MQ antes de criar ou reiniciar o agente.

nota

Quando você ativa os logs e publica mensagens pelo console web do ActiveMQ, o conteúdo da mensagem é enviado ao CloudWatch e exibido nos logs.

Veja a seguir a descrição das etapas para configurar o CloudWatch Logs para seus agentes do ActiveMQ.

Noções básicas de estrutura de registo no CloudWatch Logs

Você pode habilitar o registro geral e de auditoria quando configurar definições avançadas do agente na criação ou edição de um agente.

O registro geral habilita o nível de registro padrão INFO (não é compatível com o registro DEBUG) e publica activemq.log em um grupo de logs na sua conta do CloudWatch. O grupo de logs tem um formato semelhante ao seguinte:

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

O registro de auditoria permite o registro de ações de gerenciamento usando JMX ou usando o Console da Web ActiveMQ e publica audit.log em um grupo de logs na sua conta do CloudWatch. O grupo de logs tem um formato semelhante ao seguinte:

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

Dependendo se você tem um agente de instância única ou um agente ativo/em espera, o Amazon MQ cria uma ou duas transmissões de log dentro de cada grupo de logs. Os fluxos de log têm um formato semelhante ao seguinte:

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

Os sufixos -1 e -2 denotam instâncias individuais do agente. Para obter mais informações, consulte Como trabalhar com grupos de logs e transmissões de log no Manual do usuário do Amazon CloudWatch Logs.

Adicionar a permissão CreateLogGroup ao seu usuário do Amazon MQ

Para permitir que o Amazon MQ crie um grupo de logs do CloudWatch Logs, você deve verificar se o usuário que cria ou reinicializa o agente tem a permissão logs:CreateLogGroup.

Importante

Se você não adicionar a permissão CreateLogGroup ao seu usuário do Amazon MQ antes que ele crie ou reinicialize o agente, o Amazon MQ não criará o grupo de logs.

O exemplo a seguir Política baseada no IAM concede permissão para logs:CreateLogGroup para usuários aos quais esta política está anexada.

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

Aqui, o termo usuário se refere a Usuários e não a Usuários do Amazon MQ, que são criados quando um novo agente é configurado. Para obter mais informações sobre a configuração de usuários e de políticas do IAM, consulte a seção Visão geral do gerenciamento de identidade do Guia do usuário do IAM.

Para mais informações, consulte CreateLogGroup na Referência da API do Amazon CloudWatch Logs.

Configure uma política baseada em recursos para o Amazon MQ

Importante

Se você não configurar uma política baseada em recursos para o Amazon MQ, o agente não poderá publicar os logs no CloudWatch Logs.

Para permitir que o Amazon MQ publique logs no seu grupo de logs do CloudWatch Logs, configure uma política baseada em recursos para fornecer ao Amazon MQ o acesso às seguintes ações de API do CloudWatch Logs:

  • CreateLogStream — Cria um fluxo de logs do CloudWatch Logs para o grupo de logs especificado.

  • PutLogEvents — Envia eventos para o fluxo de logs do CloudWatch Logs especificado.

O seguinte exemplo de política com base em recursos concede permissão ao logs:CreateLogStream, e de 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 baseada em recursos deve ser configurada usando o AWS CLI como mostrado pelo comando a seguir. No exemplo, substitua us-east-1 com suas próprias informações.

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

Como esse exemplo usa o prefixo /aws/amazonmq/, você precisa configurar a política com base em recursos apenas uma vez por conta da AWS, por região.

Prevenção contra o ataque do “substituto confuso” em todos os serviços

“Confused deputy” é um problema de segurança no qual uma entidade sem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Na AWS, a personificação entre serviços pode resultar no problema do ‘confused deputy’. A personificação entre serviços pode ocorrer quando um serviço (o serviço de chamada) chama outro serviço (o serviço chamado). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.

Recomendamos usar as chaves de contexto de condição global aws:SourceArn e aws:SourceAccount na sua política baseada em recursos do Amazon MQ para limitar o acesso do CloudWatch Logs a um ou mais agentes especificados.

nota

Se você utilizar ambas as chaves de contexto de condição global, o valor aws:SourceAccount e a conta no valor aws:SourceArn deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.

O exemplo a seguir demonstra uma política baseada em recursos que limita o acesso do CloudWatch Logs a um único agente do 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" } } } ] }

Também é possível configurar a política baseada em recursos para limitar o acesso do CloudWatch Logs a todos os agentes em uma conta, conforme indicado a seguir.

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 obter mais informações sobre o problema de segurança de representante confuso, consulte O problema do representante confuso, no Guia do usuário.