Cuando intento crear un recurso de AWS, recibo el error de Registros de Amazon CloudWatch «Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints».
Descripción corta
Al activar Registros de CloudWatch para los servicios de AWS o crear un nuevo recurso de AWS, es posible que aparezca el siguiente mensaje de error:
«Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints»
Las políticas de recursos de CloudWatch tienen una longitud máxima permitida de 5120 caracteres. Cuando tu política tiene más de 5120 caracteres, aparece el error anterior. Puedes revisar los detalles del error en el historial de eventos de AWS CloudTrail.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Solo puedes usar la AWS CLI para comprobar las políticas de recursos de CloudWatch.
Para comprobar tus políticas de recursos actuales y modificarlas, sigue estos pasos:
-
Ejecuta el comando describe-resource-policies de la AWS CLI para comprobar tus políticas de recursos actuales de CloudWatch:
aws logs describe-resource-policies --REGION-NAME > resource.json
Nota: Sustituye REGION_NAME por tu región de AWS.
-
Guarda el resultado en un archivo JSON denominado resource.json.
-
Copia la política AWSLogDeliveryWrite20150319 de resource.json y, a continuación, pégala en un editor de texto.
-
Para reducir la cantidad de caracteres de su política, haz lo siguiente:
Elimina las entradas que no utilices, como los recursos y las secuencias de registro.
Sustituye los nombres de recursos de Amazon (ARN) de los recursos por el carácter comodín *.
Adjunta una nueva política de recursos que tenga los permisos necesarios.
Ejemplo 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:*"
}
}
}
]
}
Nota: El ejemplo muestra una política con dos recursos. Cuando la política de recursos supera el límite de 5120 caracteres, CloudWatch agrega automáticamente la entrada /aws/vendedlogs/* a la política. A continuación, debes crear nuevos grupos de registro con el prefijo /aws/vendedlogs/. Si deseas usar nombres de grupos de registro personalizados, modifica la política para incluir los nombres de tus recursos específicos. Asegúrate de mantenerte dentro del límite de caracteres.
-
Ejecuta el comando put-resource-policy de la AWS CLI para reemplazar la política de recursos AWSLogDeliveryWrite20150319 por la versión editada en resource.json:
aws logs put-resource-policy --policy-document file://resource.json --POLICY-NAME AWSLogDeliveryWrite20150319
Nota: Sustituye POLICY-NAME por el nombre de la política de recursos que deseas reemplazar.
Al agregar la nueva política de recursos, es posible que recibas el siguiente mensaje de error relacionado con las cuotas de 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».
Puedes tener un máximo de 10 políticas de recursos de Registros de CloudWatch en tu cuenta de AWS para cada región. No puedes modificar esta cuota. Para resolver este problema, ejecuta el comando delete-resource-policy de la AWS CLI para eliminar una política existente:
aws logs delete-resource-policy --policy-name POLICY-NAME
Nota: Sustituye POLICY-NAME por el nombre de la política de recursos que deseas eliminar.
Si tiene menos de 10 políticas de recursos en tu región, puedes crear una nueva política de recursos.
Información relacionada
Visualización de los eventos de administración recientes con la consola
Cuotas de Registros de CloudWatch
Habilitación de los registros desde los servicios de AWS