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, ricevo l'errore di Amazon CloudWatch Logs "Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints".

Breve descrizione

Quando attivi CloudWatch Logs per i servizi AWS o crei una nuova risorsa AWS, potresti ricevere il seguente messaggio di errore:

"Unable to enable logging. Policy document length breaking CloudWatch Logs Constraints"

Le policy delle risorse di CloudWatch hanno una lunghezza massima consentita di 5.120 caratteri. Quando la policy è composta da più di 5.120 caratteri, viene visualizzato l'errore precedente. Puoi esaminare i dettagli dell'errore nella Cronologia eventi di AWS CloudTrail.

Risoluzione

Nota: 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 l'Interfaccia della linea di comando di AWS.

Per verificare le politiche delle risorse correnti e modificarle, completa i seguenti passaggi:

  1. Esegui il comando AWS CLI describe-resource-policies per verificare le policy delle risorse di CloudWatch correnti:

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

    Nota: sostituisci REGION_NAME con la tua Regione AWS.

  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 gli ARN (nome della risorsa Amazon) 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 il comando AWS CLI 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."

Nell'account AWS puoi avere al massimo 10 policy delle risorse di CloudWatch Logs per ogni Regione. La quota non è modificabile. Per risolvere il problema, esegui il comando AWS CLI delete-resource-policy per rimuovere una policy esistente:

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 tua Regione, ne puoi creare una nuova.

Informazioni correlate

Visualizzazione degli eventi di gestione recenti con la console

Quote di CloudWatch Logs

Abilita la registrazione dai servizi AWS