Ir para o conteúdo

Como resolvo o erro do CloudWatch: “Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints” quando tento criar um recurso da AWS?

3 minuto de leitura
0

Quando tento criar um recurso da AWS ou ativar o Amazon CloudWatch Logs para um serviço da AWS, recebo o erro “Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints.”

Breve descrição

As políticas de recursos do Amazon CloudWatch possuem um tamanho máximo permitido de 5.120 caracteres. Quando sua política excede 5.120 caracteres, você recebe um erro. É possível revisar os detalhes do erro no histórico de eventos do AWS CloudTrail.

Resolução

Para verificar suas políticas de recursos atuais e modificá-las, conclua as seguintes etapas:

  1. Execute o seguinte comando describe-resource-policies para verificar suas políticas de recursos atuais:

    aws logs describe-resource-policies --region REGION-NAME > resource.json

    Observação: substitua REGION_NAME pela sua região da AWS. Se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI. É possível usar somente o AWS CLI para verificar as políticas de recursos do CloudWatch.

  2. Salve a saída em um arquivo JSON chamado esource.json.

  3. Copie a política AWSLogDeliveryWrite20150319 de resource.json e cole a política em um editor de texto.

  4. Para reduzir o número de caracteres em sua política, faça o seguinte:
    Remova as entradas que você não usa, como recursos e fluxos de log.
    Substitua os nomes do recurso da Amazon (ARNs) pelo caractere curinga *.
    Anexe uma nova política de recursos que tenha as permissões necessárias.
    Exemplo de política de recursos:

    {
    "Version": "2012-10-17",
    "Statement": [
    { "Sid": "AWSLogDeliveryWrite",
    "Effect": "Allow",
    "Principal": {
    "Service": "delivery.logs.amazonaws.com"
    },
    "Action": [
    "logs:CreateLogStream", "logs:PutLogEvents"
    ],
    "Resource":
    [ "arn:aws:logs:us-east-1:869614222995:log-group:aws-waf-logs-albwafs:log-stream:xyz",
    "arn:aws:logs:us-east-1:869614222995:log-group:aws-s3:log-stream:abc"
    
    ],
    "Condition":
    { "StringEquals":
    { "aws:SourceAccount": "869614222995" },
    "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:869614222995:*"
    }
     }
    }
    ]
    }
    

    Observação: o exemplo mostra uma política com dois recursos. Quando a política de recursos excede o limite de 5120 caracteres, o CloudWatch adiciona automaticamente a entrada /aws/vendedlogs/* à política. Em seguida, você deve criar novos grupos de logs com o prefixo /aws/vendedlogs/. Se você quiser usar nomes de grupos de logs personalizados, edite a política para incluir seus nomes de recursos específicos. Certifique-se de respeitar o limite de caracteres.

  5. Execute o seguinte comando put-resource-policy para substituir a política de recursos AWSLogDeliveryWrite20150319 pela sua versão editada em resource.json:

    aws logs put-resource-policy --policy-document file://resource.json --policy-name AWSLogDeliveryWrite20150319

    Observação: substitua policy-name pelo nome da política de recursos que você deseja substituir.

Ao adicionar a nova política de recursos, você pode receber a seguinte mensagem de erro relacionada às cotas do CloudWatch:

“Error: creating CloudWatch Logs Resource Policy (name): operation error CloudWatch Logs: PutResourcePolicy, exceeded maximum number of attempts, https response error StatusCode: 400, RequestID: 3d123ce1-f123-4d12-12b8-abc1234ba1a9, LimitExceededException: Resource limit exceeded."

O CloudWatch permite no máximo 10 políticas de recursos do CloudWatch Logs em sua conta da AWS para cada região. Não é possível alterar essa cota.

Para remover uma política existente que você não usa, execute o seguinte comando delete-resource-policy:

aws logs delete-resource-policy --policy-name POLICY-NAME

Observação: substitua POLICY-NAME pelo nome da política de recursos que você deseja excluir.

Quando você tiver menos de 10 políticas de recursos em sua região, execute o comando put-resource-policy para criar uma nova política de recursos.

Informações relacionadas

Visualizando eventos de gerenciamento recentes com o console

Habilitar o registro dos serviços da AWS

AWS OFICIALAtualizada há 7 meses