Salta al contenuto

Perché ricevo l'errore "Invalid principal in policy" quando provo ad aggiornare la policy del mio bucket Amazon S3?

5 minuti di lettura
0

Quando provo ad aggiungere o modificare la policy del mio bucket Amazon Simple Storage Service (Amazon S3), ricevo l'errore Invalid principal in policy".

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.

Se la policy del bucket Amazon S3 contiene un valore non valido per l'elemento Principale, ricevi l'errore "Invalid principal in policy". Per risolverlo, segui questi passaggi.

Verifica che la policy del bucket utilizzi valori supportati per l'elemento Principal

Assicurati di specificare i seguenti valori supportati per l'elemento Principal nella policy del bucket S3:

Nota: se utilizzi il carattere jolly (\ *) come elemento Principal viene concesso l'accesso a tutti gli utenti autenticati e anonimi.

Verifica che il valore Principal sia formattato correttamente

Verifica che gli elementi Principal della policy del bucket siano formattati correttamente. Se l'elemento Principal include un utente, utilizza il seguente formato:

"Principal": {    "AWS": "arn:aws:iam::111111111111:user/user-name1"
}

Nota: sostituisci user-name1 con il nome del tuo utente IAM.

Se l'elemento Principal include più di un utente o un ruolo IAM, utilizza il seguente formato:

"Principal": {  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "arn:aws:iam::111111111111:role/role-name1"
  ]
}

Nota: sostituisci user-name1 con il nome del tuo utente IAM e role-name1 con il nome del tuo ruolo IAM.

Se l'elemento Principal include tutti gli utenti, utilizza il seguente formato:

{  "Principal": "*"
}

Nota: È consigliabile non utilizzare un carattere jolly (*) nell'elemento Principal di una policy basata sulle risorse con effetto Consenti. Utilizza il carattere jolly (\ *) solo per concedere un accesso pubblico o anonimo. Specifica i principali, i servizi o gli account AWS previsti nell'elemento Principal. Quindi utilizza l'elemento Condition per limitare l'accesso.

Nota: quando concedi l'accesso anonimo, chiunque può accedere al bucket. È consigliabile non concedere l'accesso anonimo in scrittura a un bucket S3. Per ulteriori informazioni, consulta Come funziona Amazon S3 con IAM.

Assicurati che l'utente o il ruolo IAM non sia stato eliminato

Se tenti di salvare la policy del bucket con un identificatore univoco come elemento Principal, viene visualizzato l'errore "Invalid principal in policy". Questo perché l'elemento Principal supporta solo ARN IAM validi. Per risolvere l'errore, devi rimuovere qualsiasi identificatore univoco dall'elemento Principal.

Se la policy del bucket include utenti o ruoli IAM nell'elemento Principal, verifica che tali identità IAM non siano state eliminate. Per identificare gli utenti e i ruoli IAM eliminati nella policy del bucket, specifica gli identificatori univoci anziché gli ARN completi nell'elemento Principal.

Esempio:

"Principal": {  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "AIDAJQABLZS4A3QDU576Q",
    "arn:aws:iam::111111111111:user/user-name2"
  ]
}

Nota: sostituisci user-name1 e user-name2 con i nomi dei tuoi utenti IAM.

Verifica che l'account del principale IAM abbia una Regione attivata

Quando applichi una policy di bucket S3, AWS verifica che nell'account del principale IAM siano disponibili le Regioni AWS richieste. Il bucket potrebbe trovarsi in una Regione AWS che AWS non attiva per impostazione predefinita. In tal caso, verifica di aver attivato la Regione nell'account del principale IAM. In uno scenario multi-account, attiva la Regione AWS per entrambi gli account AWS. Per ulteriori informazioni, consulta Abilita o disabilita Regioni AWS nel tuo account.

Utilizza lo strumento di analisi degli accessi AWS IAM per convalidare l'accesso al bucket

Per convalidare l'accesso al bucket S3 prima di distribuire le autorizzazioni, utilizza lo strumento di analisi degli accessi AWS Identity and Access Management. Puoi esaminare le policy di bucket S3 che ti concedono risorse da un altro account AWS.

Puoi anche utilizzare lo strumento di analisi degli accessi AWS IAM per analizzare gli eventi di AWS CloudTrail e generare una policy IAM basata su tale attività. Per ulteriori informazioni, consulta Generazione di policy per lo strumento di analisi degli accessi AWS IAM.

Per attivare lo strumento di analisi degli accessi AWS IAM, consulta Nozioni di base sullo strumento di analisi degli accessi AWS Identity and Access Management.

Nota: AWS ti addebita ogni mese le analisi degli accessi non utilizzate che crei. Per ulteriori informazioni, consulta Prezzi dello strumento di analisi degli accessi AWS IAM.

Per risolvere i problemi relativi alle autorizzazioni dello strumento di analisi degli accessi AWS IAM, consulta How do I resolve permission issues with policies generated from IAM Access Analyzer? (Come posso risolvere i problemi di autorizzazione con le policy generate dallo strumento di analisi degli accessi AWS IAM?)