Come posso risolvere gli errori "MalformedPolicyDocument" in AWS CloudFormation?

3 minuti di lettura
0

Quando provo a creare o aggiornare uno stack di AWS CloudFormation, ricevo il messaggio di errore "MalformedPolicyDocument". L'errore persiste anche dopo la convalida del modello.

Breve descrizione

L'API ValidateTemplate in AWS CloudFormation può convalidare solo la sintassi del modello. L'API non può convalidare i valori delle proprietà specificati per una risorsa. Poiché il documento della policy è configurato come parte del valore della proprietà, la validità della policy non viene verificata.

Quando il documento della policy non è sintatticamente o semanticamente corretto secondo la grammatica del linguaggio della policy, viene visualizzato l'errore "MalformedPolicyDocument".

Per risolvere questo errore, occorre verificare che il documento della policy sia valido per il tipo di risorsa specifico di cui fa parte.

Soluzione

Cerca i dettagli dei messaggi di errore negli eventi dello stack

  1. Apri la console AWS CloudFormation.
  2. Dal riquadro di navigazione, scegli Stack.
  3. Scegli lo stack che ha restituito l'errore, quindi seleziona la scheda Eventi.
  4. Cerca nella colonna Motivo dello stato un messaggio che spieghi la causa dell'errore.

Se la causa dell'errore resta ancora sconosciuta, completa i passaggi nella sezione Ottieni ulteriori informazioni sull'evento AWS CloudTrail che ha causato l'errore.

Ottieni ulteriori informazioni sull'evento AWS CloudTrail che ha causato l'errore

Puoi ottenere ulteriori informazioni controllando la proprietà errorMessage dell'evento CloudTrail per l'operazione sul tipo di risorsa che ha causato l'errore.

Ad esempio, se da un errore in una policy inline collegata a un ruolo AWS Identity and Access Management (IAM) ottieni "MalformedPolicyDocument", completa i seguenti passaggi:

  1. Apri la console AWS CloudTrail.
  2. Nel riquadro di navigazione, scegli Cronologia eventi.
  3. Nella casella di ricerca Filtro, seleziona Nome evento come attributo di ricerca, quindi inserisci PutRolePolicy nella casella di testo corrispondente.
  4. In Intervallo di tempo, imposta l'ora dell'evento CloudTrail sull'ora riportata nel messaggio di errore mostrato negli eventi di AWS CloudFormation.
  5. Nella colonna Nome evento, scegli l’evento.
  6. In Record evento, controlla il valore della proprietà errorMessage per un messaggio dettagliato.

Convalida la policy approvata nell'evento CloudTrail

L'evento CloudTrail per l'azione a livello di API sulla risorsa che causa l'errore contiene in genere la forma del documento della policy risolta. Puoi copiare tale documento della policy risolto e quindi creare una nuova policy direttamente nella console di gestione AWS per quella risorsa specifica.

Ad esempio, se ottieni "MalformedPolicyDocument" da un errore in una policy inline collegata a un ruolo IAM, completa i seguenti passaggi:

  1. Apri la console CloudTrail.
  2. Nel riquadro di navigazione, scegli Cronologia eventi.
  3. Nella casella di ricerca Filtro, seleziona Nome evento come attributo di ricerca, quindi inserisci PutRolePolicy nella casella di testo corrispondente.
  4. In Intervallo di tempo, imposta l'ora dell'evento CloudTrail sull'ora riportata nel messaggio di errore mostrato negli eventi di AWS CloudFormation.
  5. Nella colonna Nome evento, scegli l’evento.
  6. Da Record eventi, copia il valore della proprietà policyDocument in requestParameters.
  7. In un editor di testo, rimuovi tutti i caratteri di escape "" dal documento della policy.
  8. Apri la console IAM.
  9. Nel riquadro di navigazione, scegli Policy.
  10. Scegli Crea policy, quindi seleziona la scheda JSON.
  11. Inserisci il documento della policy che hai copiato al passaggio 6, quindi scegli Rivedi la policy.
  12. Controlla il contenuto del messaggio di errore visualizzato nella finestra di dialogo rossa a inizio pagina. Il messaggio di errore fornisce una spiegazione più dettagliata dell'errore nella convalida della policy.

Informazioni correlate

Sintassi del linguaggio della policy JSON IAM

Riferimento agli elementi delle policy JSON IAM

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa