In che modo è possibile risolvere l'errore "La policy contiene una istruzione con uno o più principali non validi" relativo alla policy delle chiavi AWS KMS?

Ultimo aggiornamento: 22-03-2022

Ho provato a modificare la mia policy delle chiavi di AWS Key Management Service (AWS KMS) e ho ricevuto un errore nella Console di gestione AWS simile al seguente:

"Richiesta PutKeyPolicy non riuscita

MalformedPolicyDocumentException:la policy contiene un'istruzione con uno o più principal non validi"

La policy delle chiavi AWS KMS non contiene l'Amazon Resource Name (ARN) e contiene un principale con un ID univoco simile a AIDACKCEVSQ6C2EXAMPLE.

Breve descrizione

La richiesta PutKeyPolicy della chiamata API di AWS KMS non riesce quando la richiesta viene rifiutata perché la policy delle chiavi specificata non è sintatticamente o semanticamente corretta.

Risoluzione

Sintassi JSON

Verifica che il tipo di risorsa del documento delle policy JSON sia valido. Per risolvere gli errori di sintassi JSON, incolla il documento della policy JSON in un JSON Beautifier per verificarne la formattazione. Rimuovi tutti i caratteri non necessari e aggiungi i caratteri mancanti. Verifica la presenza di elementi della policy JSON e valori SID duplicati e rimuoverli.

Principali non validi

Controlla l'elemento principale nella policy JSON e assicurati che esista l'entità AWS Identity and Access Management (IAM). Assicurati che l'identità IAM sia specificata correttamente con un ARN valido.

Nota: non è possibile utilizzare un carattere jolly nella parte dell'ARN che specifica il tipo di risorsa.

Quando crei identità IAM, assegna loro dei nomi descrittivi, come Bob o Developers. Per motivi di sicurezza, a queste entità IAM viene assegnato anche un ID univoco, ad esempio AIDACKCEVSQ6C2EXAMPLE.

Ad esempio, hai un utente IAM di nome Alice specificato in una policy delle chiavi AWS KMS. Poi Alice lascia l'azienda. Quindi, viene assunto un nuovo utente di nome Alice e viene creato un utente IAM con lo stesso nome. Gli ID univoci assicurano che la nuova Alice non possa ereditare le autorizzazioni concesse alla vecchia Alice.

Rimuovi gli ID univoci orfani dalla policy delle chiavi. Per ulteriori informazioni, consulta Utilizzo delle policy delle chiavi in AWS KMS.

Nota: se la policy delle chiavi AWS KMS dispone delle autorizzazioni per un altro account o principale, la policy delle chiavi è valida solo nella regione che ospita la chiave AWS KMS. Per ulteriori informazioni, consulta Panoramica delle policy delle chiavi.

Servizi AWS non validi

Se un servizio AWS è elencato come principale, assicurati che il servizio sia supportato da AWS KMS. L'entità principale deve essere l'entità IAM e kms:ViaService deve essere utilizzato per i servizi AWS che effettuano le richieste per conto dell'entità IAM.

Verifica se il servizio AWS effettua chiamate dirette ad AWS KMS. Non tutti i servizi AWS effettuano chiamate direttamente ad AWS KMS, ad esempio Amazon Elastic Compute Cloud (Amazon EC2). I servizi AWS come Amazon EC2 infatti effettuano chiamate per conto di un principale nell'account AWS. I servizi AWS che effettuano chiamate dirette ad AWS KMS come Amazon Simple Notification Service (Amazon SNS) devono avere l'entità del servizio nell'elemento principale.

Per ulteriori informazioni, consulta Servizi che supportano la chiave di condizione kms:ViaService.

Inclusione della regione AWS

Le chiavi AWS KMS condivise con un account AWS che non è incluso nella regione AWS in cui si trova la chiave all'interno dell'account del destinatario non sono valide per quella regione.

Assicurati che la regione AWS sia abilitata nell'account del destinatario o condividi un'altra chiave AWS KMS in una regione abilitata nell'account AWS e nell'account del destinatario. Per ulteriori informazioni, consulta l'argomento relativo alla gestione delle regioni AWS.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?