Salta al contenuto

Come posso risolvere l'errore di CloudWatch "Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints" che ricevo quando provo a creare una risorsa AWS?

3 minuti di lettura
0

Quando provo a creare una risorsa AWS o ad attivare Amazon CloudWatch Logs per un servizio AWS, ricevo l'errore "Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints."

Breve descrizione

Le policy delle risorse di Amazon CloudWatch hanno una lunghezza massima consentita di 5.120 caratteri. Quando la policy supera i 5.120 caratteri, ricevi un errore. Puoi esaminare i dettagli dell'errore nella cronologia degli eventi di AWS CloudTrail.

Risoluzione

Per verificare le policy delle risorse attuali e modificarle, completa i seguenti passaggi:

  1. Esegui questo comando describe-resource-policies per verificare le policy delle risorse attuali:

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

    Nota: sostituisci REGION_NAME con la tua Regione AWS. Se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI. Per controllare le policy delle risorse di CloudWatch, puoi utilizzare solo AWS CLI.

  2. Salva l'output in un file JSON denominato resource.json.

  3. Copia la policy AWSLogDeliveryWrite20150319 da resource.json, quindi incolla la policy in un editor di testo.

  4. Per ridurre il numero di caratteri della policy, procedi come segue:
    Rimuovi le voci che non utilizzi, come risorse e flussi di log.
    Sostituisci i nomi della risorsa Amazon (ARN) delle risorse con il carattere jolly *.
    Collega una nuova policy delle risorse che ha le autorizzazioni richieste.
    Esempio di policy delle risorse:

    {
    "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: l'esempio mostra una policy con due risorse. Quando la policy delle risorse supera il limite di 5.120 caratteri, CloudWatch aggiunge automaticamente la voce /aws/vendedlogs/* alla policy. Quindi devi creare nuovi gruppi di log con il prefisso /aws/vendedlogs/. Se desideri utilizzare nomi di gruppi di log personalizzati, modifica la policy per includere i nomi delle risorse specifici. Assicurati di rimanere entro il limite di caratteri.

  5. Esegui questo comando put-resource-policy per sostituire la policy delle risorse AWSLogDeliveryWrite20150319 con la versione modificata in resource.json:

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

    Nota: sostituisci policy-name con il nome della policy delle risorse che desideri sostituire.

Quando aggiungi la nuova policy delle risorse, potresti ricevere il seguente messaggio di errore relativo alle quote di 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."

CloudWatch consente un massimo di 10 policy delle risorse di CloudWatch Logs in un account AWS per ogni Regione. La quota non è modificabile.

Per rimuovere una policy esistente che non utilizzi, esegui questo comando delete-resource-policy:

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

Nota: sostituisci POLICY-NAME con il nome della policy delle risorse che desideri eliminare.

Quando hai meno di 10 policy delle risorse nella Regione, esegui il comando put-resource-policy per creare una nuova policy delle risorse.

Informazioni correlate

Visualizzazione degli eventi di gestione recenti con la console

Abilita la registrazione dai servizi AWS