Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risolvi i problemi relativi IAM alle politiche
Una politica è un'entità in AWS che, se associata a un'identità o a una risorsa, ne definisce le autorizzazioni. AWS valuta queste politiche quando un principale, ad esempio un utente, effettua una richiesta. Le autorizzazioni nelle policy determinano l'approvazione o il rifiuto della richiesta. Le politiche sono archiviate in AWS come JSON documenti allegati ai principali come politiche basate sull'identità o alle risorse come politiche basate sulle risorse. È possibile allegare una politica basata sull'identità a un principale (o identità), ad esempio un gruppo, un utente o un ruolo. IAM Le politiche basate sull'identità includono AWS politiche gestite, politiche gestite dai clienti e politiche in linea. È possibile creare e modificare le politiche gestite dai clienti in AWS Management Console utilizzando sia le opzioni Visual che quelle JSONdell'editor. Quando si visualizza una politica in AWS Management Console, è possibile visualizzare un riepilogo delle autorizzazioni concesse da tale politica. È possibile utilizzare l'editor visivo e i riepiloghi delle politiche per diagnosticare e correggere gli errori più comuni riscontrati durante la gestione delle politiche. IAM
Tieni presente che tutte le IAM politiche vengono archiviate utilizzando una sintassi che inizia con le regole di JavaScript Object Notation
Risoluzione dei problemi della policy degli argomenti IAM
Risoluzione dei problemi tramite l'editor visivo
Quando si crea o si modifica una policy gestita dal cliente, è possibile utilizzare le informazioni nell'editor Visivo per semplificare la risoluzione degli errori della policy. Per visualizzare un esempio dell'editor visivo per creare una policy, consultare Controllo dell'accesso alle identità.
Modifica della struttura delle policy
Quando si crea una politica, AWS convalida, elabora e trasforma la policy prima di archiviarla. Quando la policy viene recuperata, AWS la trasforma nuovamente in un formato leggibile dall'uomo senza modificare le autorizzazioni. Ciò può comportare differenze in ciò che viene visualizzato nell'editor visivo o nella scheda delle politiche. JSON
-
I blocchi di autorizzazione dell'editor visivo possono essere aggiunti, rimossi o riordinati e il contenuto all'interno di un blocco può essere ottimizzato.
-
Nella JSONscheda, è possibile rimuovere spazi bianchi insignificanti e riordinare gli elementi all'interno delle JSON mappe. Inoltre, Account AWS IDsall'interno degli elementi principali può essere sostituito dall'Amazon Resource Name (ARN) del Utente root dell'account AWS.
A causa di queste possibili modifiche, non dovresti confrontare i documenti relativi alle JSON policy come stringhe.
Quando si crea una politica gestita dai clienti in AWS Management Console, puoi scegliere di lavorare interamente nell'JSONeditor. Se non modifichi mai la policy nell'editor Visual e scegli Avanti dall'JSONeditor, è meno probabile che la policy venga ristrutturata. Quando si utilizza l'editor Visual, è IAM possibile ristrutturare la politica per ottimizzarne l'aspetto. Questa ristrutturazione esiste solo nella sessione di modifica e non viene salvata automaticamente.
Se la politica viene ristrutturata durante la sessione di modifica, IAM determina se salvare la ristrutturazione in base alle seguenti situazioni:
Utilizzo di questa opzione dell'editor | Se si modifica la policy | Quindi scegli Successivo da questa scheda | Quando si sceglie Save changes (Salva modifiche) |
---|---|---|---|
Visivo | Modificata | Visivo | La policy viene ristrutturata |
Visivo | Modificata | JSON | La policy viene ristrutturata |
Visivo | Non modificata | Visivo | La policy viene ristrutturata |
JSON | Modificata | Visivo | La policy viene ristrutturata |
JSON | Modificata | JSON | La struttura della policy non viene modificata |
JSON | Non modificata | JSON | La struttura della policy non viene modificata |
IAMpotrebbe ristrutturare politiche complesse o politiche che prevedono blocchi di autorizzazione o istruzioni che consentono più servizi, tipi di risorse o chiavi di condizione.
Scelta di una risorsa ARN nell'editor visuale
Quando si crea o si modifica una policy utilizzando l'editor visivo, è necessario prima selezionare un servizio, quindi selezionare operazioni da quel servizio. Se il servizio e le operazioni selezionate supportano la scelta di risorse specifiche, l'editor visivo elenca i tipi di risorse supportati. Puoi quindi scegliere Aggiungi ARN per fornire i dettagli sulla tua risorsa. Puoi scegliere tra le seguenti opzioni per aggiungerne una ARN per un tipo di risorsa.
-
Usa il ARN generatore: potresti vedere diversi campi da creare in ARN base al tipo di risorsa. È anche possibile selezionare Any (Qualsiasi) per fornire le autorizzazioni per qualsiasi valore per l'impostazione specificata. Ad esempio, se hai selezionato il gruppo di livelli di accesso Amazon EC2 Read, le azioni previste dalla tua politica supportano il tipo di
instance
risorsa. Fornisci la regione, l'account e InstanceIdi valori per la tua risorsa. La politica concede le autorizzazioni a qualsiasi istanza del tuo account se fornisci l'ID dell'account e scegli Qualsiasi per la regione e l'ID dell'istanza. -
Digita o incolla il ARN: puoi specificare le risorse in base al loro Amazon Resource Name (ARN). Puoi includere un carattere jolly (
*
) in qualsiasi campo di ARN (tra ogni coppia di due punti). Per ulteriori informazioni, consulta IAMJSONelementi politici: Resource.
Autorizzazioni nell'editor visivo
Per impostazione predefinita, la policy creata tramite l'editor visuale permette le operazioni scelte. Per rifiutare invece le operazioni scelte, selezionare Switch to deny permissions (Passa a rifiuto autorizzazioni). Poiché le richieste vengono rifiutate per impostazione predefinita, ti consigliamo di concedere le autorizzazioni solo per le azioni e le risorse di cui un utente ha bisogno. È consigliabile creare una dichiarazione di rifiuto solo se si desidera ignorare separatamente un'autorizzazione consentita da un'altra dichiarazione o politica. Si consiglia di limitare al minimo il numero di autorizzazioni di rifiuto perché possono aumentare la difficoltà di risoluzione dei problemi relative alle autorizzazioni. Per ulteriori informazioni su come IAM valuta la logica delle politiche, vedere. Logica di valutazione delle policy
Nota
Per impostazione predefinita, solo Utente root dell'account AWS ha accesso a tutte le risorse di quell'account. Pertanto, se non è stato effettuato l'accesso come utente root, è necessario disporre delle autorizzazioni concesse da una policy.
Specifica di più servizi nell'editor visivo
Quando si utilizza l'editor visivo per creare una policy, è possibile selezionare solo un servizio alla volta. Si tratta di una best practice consigliata in quanto l'editor visivo consente in questo modo di selezionare tra le operazioni per tale singolo servizio. Quindi si sceglie tra le risorse supportate da tale servizio e le operazioni selezionate. Ciò semplifica la creazione e la risoluzione dei problemi della policy.
È inoltre possibile utilizzare un carattere jolly (*) per specificare manualmente più servizi. Ad esempio, digitare Code*
per fornire le autorizzazioni per tutti i servizi che iniziano con Code
, ad esempio CodeBuild
e CodeCommit
. Tuttavia, è necessario quindi digitare le azioni e le risorse ARNs per completare la politica. Inoltre, quando si salva la policy, potrebbe venire ristrutturata per includere ciascun servizio in un blocco di autorizzazioni separate.
In alternativa, per utilizzare la JSON sintassi (ad esempio i caratteri jolly) per i servizi, crea, modifica e salva la politica utilizzando l'opzione dell'JSONeditor.
Riduzione delle dimensioni della policy nell'editor visivo
Quando utilizzi l'editor visivo per creare una policy, IAM crea un JSON documento per archiviare la policy. È possibile visualizzare questo documento passando all'opzione dell'JSONeditor. Se questo JSON documento supera il limite di dimensione di una politica, l'editor visivo visualizza un messaggio di errore. Non sarà possibile rivedere e salvare la politica. Per visualizzare la IAM limitazione delle dimensioni di una policy gestita, consultaIAMe limiti di STS caratteri.
Per ridurre le dimensioni delle policy nell'editor visivo, modificare la policy o spostare blocchi di autorizzazioni in un'altra policy. Il messaggio di errore include il numero di caratteri contenuti nel documento di policy. È possibile utilizzare queste informazioni per ridurre le dimensioni della politica.
Correzione di servizi, operazioni o tipi di risorse non riconosciuti nell'editor visivo
Nell'editor visivo potresti visualizzare un avviso indicante che la tua policy include un servizio, un'azione o un tipo di risorsa non riconosciuto.
Nota
IAMesamina i nomi dei servizi, le azioni e i tipi di risorse per i servizi che supportano i riepiloghi delle politiche. Tuttavia, il riepilogo della policy può includere un valore di risorse o una condizione che non esiste. Esegui sempre un test delle policy tramite il simulatore di policy.
Se la policy include servizi, operazioni o tipi di risorse non riconosciuti, si è verificato uno dei seguenti errori:
-
Servizio di anteprima: i servizi in anteprima non supportano l'editor visivo. Se si partecipa all'anteprima, è necessario digitare manualmente le azioni e le risorse ARNs per completare la politica. Puoi ignorare qualsiasi avviso e continuare. In alternativa, puoi scegliere l'opzione dell'JSONeditor per digitare o incollare un documento di JSON policy.
-
Servizio personalizzato: i servizi personalizzati non supportano l'editor visivo. Se si utilizza un servizio personalizzato, è necessario digitare manualmente le azioni e le risorse ARNs per completare la politica. Puoi ignorare qualsiasi avviso e continuare. In alternativa, puoi scegliere l'opzione dell'JSONeditor per digitare o incollare un documento di JSON policy.
-
Il servizio non supporta l'editor visivo: se la politica include un servizio a disponibilità generale (GA) che non supporta l'editor visivo, è necessario digitare manualmente le azioni e le risorse ARNs per completare la politica. È possibile ignorare qualsiasi avviso e continuare. In alternativa, puoi scegliere l'opzione dell'JSONeditor per digitare o incollare un documento di JSON policy.
I servizi disponibili a livello generale sono servizi che vengono rilasciati per il pubblico e non sono servizi di anteprima o personalizzati. Se un servizio non riconosciuto è disponibile a livello generale e il nome è scritto correttamente, significa che il servizio non supporta l'editor visivo. Per informazioni su come richiedere supporto per l'editor visivo o per il riepilogo della policy per un servizio con disponibilità generale, consultare Il servizio non supporta i riepiloghi delle politiche IAM.
-
L'azione non supporta l'editor visivo: se la politica include un servizio supportato con un'azione non supportata, è necessario digitare manualmente le azioni e le risorse ARNs per completare la politica. Puoi ignorare qualsiasi avviso e continuare. In alternativa, puoi scegliere l'opzione dell'JSONeditor per digitare o incollare un documento di JSON policy.
Se la policy include un servizio supportato con un'operazione non supportata, il servizio non supporta completamente l'editor visivo. Per informazioni su come richiedere supporto per l'editor visivo o per il riepilogo della policy per un servizio con disponibilità generale, consultare Il servizio non supporta i riepiloghi delle politiche IAM.
-
Il tipo di risorsa non supporta l'editor visivo: se la policy include un'operazione supportata con un tipo di risorsa non supportato, è possibile ignorare l'avviso e continuare. Tuttavia, IAM non puoi confermare di aver incluso risorse per tutte le azioni selezionate e potresti visualizzare ulteriori avvisi.
-
Refuso: quando si digita manualmente un servizio, un'operazione o una risorsa nell'editor visivo, è possibile che venga creata una policy che include un errore di battitura. Ti consigliamo di utilizzare l'editor visivo selezionando dall'elenco di servizi e azioni. Quindi, completa la sezione delle risorse in base alle istruzioni. Se un servizio non supporta completamente l'editor visivo, potrebbe essere necessario digitare manualmente parti della politica.
Se si è certi che la policy non contenga nessuno degli errori sopra riportati, è possibile che includa un refuso. Verifica i problemi seguenti:
-
Nomi di servizi, azioni e tipi di risorse scritti in modo errato, ad esempio
s2
invece dis3
oListMyBuckets
al posto diListAllMyBuckets
-
Inserimento di testo non necessarioARNs, ad esempio
arn:aws:s3: : :*
-
Coloni mancanti nelle azioni, ad esempio
iam.CreateUser
È possibile valutare una politica che potrebbe includere errori di battitura scegliendo Avanti per esaminare il riepilogo della politica. Quindi, conferma se la politica fornisce le autorizzazioni previste.
-
Risolvi i problemi con i riepiloghi delle politiche
È possibile individuare e risolvere i problemi relativi ai riepiloghi delle policy.
Riepilogo della policy mancante
La IAM console include tabelle di riepilogo delle politiche che descrivono il livello di accesso, le risorse e le condizioni consentite o negate per ogni servizio incluso in una policy. Le policy sono riassunte in tre tabelle: riepilogo della policy, riepilogo del servizio e riepilogo dell'operazione. La tabella riepilogo della policy include un elenco di servizi e riepiloghi delle autorizzazioni definite dalla policy scelta. È possibile visualizzare il riepilogo delle policy per qualsiasi policy associata a un'entità nella pagina Dettagli della policy relativa a tale policy. È possibile visualizzare il riepilogo della policy per le policy gestite nella pagina Policies (Policy). Se AWS non è in grado di visualizzare un riepilogo di una politica, verranno visualizzati il documento relativo alla JSON policy e il seguente errore:
Impossibile generare un riepilogo per questa policy. È ancora possibile visualizzare o modificare il documento JSON di policy.
Se la policy non include un riepilogo, si è verificato uno dei seguenti errori:
-
Elemento di policy non supportato: IAM non supporta la generazione di riepiloghi di policy per policy che includono uno dei seguenti elementi di policy:
-
Principal
-
NotPrincipal
-
NotResource
-
-
Nessuna autorizzazione di policy: se una policy non fornisce le autorizzazioni valide, non è possibile generare il riepilogo della policy. Ad esempio, se una policy include una singola istruzione con l'elemento
"NotAction": "*"
, si permette l'accesso a tutte le operazioni ad eccezione di "tutte le operazioni" (*). Questo significa che concede accessoDeny
oAllow
a nulla.Nota
Fai attenzione quando usi questi elementi di policy come
NotPrincipal
NotAction
, e.NotResource
Per ulteriori informazioni sull'utilizzo degli elementi delle policy, consultare IAMJSONriferimento all'elemento della politica.Se fornisci servizi e risorse non corrispondenti, puoi creare una politica che non fornisca autorizzazioni efficaci. Ciò può verificarsi quando si specificano azioni in un servizio e risorse di un altro servizio. In questo caso, viene visualizzato il riepilogo della policy. L'unica indicazione che si è verificato un problema è che la colonna delle risorse nel riepilogo può includere una risorsa di un servizio diverso. Se questa colonna include una risorsa non corrispondente, è necessario verificare se ci sono errori nella policy. Testa le tue politiche con il simulatore di policy per comprenderle meglio.
Il riepilogo della policy include servizi, operazioni o tipi di risorse non riconosciuti
Nella IAM console, se un riepilogo delle policy include un simbolo di avviso ( ), la policy potrebbe includere un servizio, un'azione o un tipo di risorsa non riconosciuto. Per ulteriori informazioni sulle avvertenze in un riepilogo della policy, consultare Riepilogo della policy (elenco di servizi).
Nota
IAMesamina i nomi dei servizi, le azioni e i tipi di risorse per i servizi che supportano i riepiloghi delle politiche. Tuttavia, il riepilogo della policy può includere un valore di risorse o una condizione che non esiste. Esegui sempre un test delle policy tramite il simulatore di policy.
Se la policy include servizi, operazioni o tipi di risorse non riconosciuti, si è verificato uno dei seguenti errori:
-
Servizio di anteprima: i servizi in anteprima non supportano i riepiloghi di policy.
-
Servizio personalizzato: i servizi personalizzati non supportano i riepiloghi di policy.
-
Il servizio non supporta riepiloghi: se la policy include un servizio disponibile a livello generale (GA) che non supporta riepiloghi di policy, allora il servizio viene incluso nella sezione Servizi non riconosciuti della tabella di riepilogo della policy. I servizi disponibili a livello generale sono servizi che vengono rilasciati per il pubblico e non sono servizi di anteprima o personalizzati. Se un servizio non riconosciuto è generalmente disponibile e il nome è digitato correttamente, il servizio non supporta IAM i riepiloghi delle politiche. Per informazioni su come richiedere supporto per il riepilogo della policy per un servizio con disponibilità generale, consultare Il servizio non supporta i riepiloghi delle politiche IAM.
-
L'operazione non supporta i riepiloghi: se la policy include un servizio supportato con un'operazione non supportata, allora l'operazione viene inclusa nella sezione Operazioni non riconosciute della tabella di riepilogo del servizio. Per ulteriori informazioni sulle avvertenze in un riepilogo di servizio, consultare Riepilogo del servizio (elenco di operazioni).
-
Il tipo di risorsa non supporta i riepiloghi: se la policy include un'operazione supportata con un tipo di risorsa non supportato, allora la risorsa viene inclusa nella sezione Tipi di risorse non riconosciuti della tabella di riepilogo del servizio. Per ulteriori informazioni sulle avvertenze in un riepilogo di servizio, consultare Riepilogo del servizio (elenco di operazioni).
-
Errore di battitura: AWS verifica che JSON sia sintatticamente corretto e che il criterio non includa errori di battitura o altri errori come parte della convalida della politica.
Nota
Come best practice, si consiglia di utilizzare IAM Access Analyzer per convalidare le IAM policy e garantire autorizzazioni sicure e funzionali. Consigliamo di aprire le policy esistenti e rivedere e risolvere eventuali suggerimenti di convalida della policy.
Il servizio non supporta i riepiloghi delle politiche IAM
È possibile che i riepiloghi delle IAM politiche o l'editor visivo non supportino un servizio o un'azione generalmente disponibile (GA). I servizi disponibili a livello generale sono servizi che vengono rilasciati per il pubblico e che non sono servizi di anteprima o personalizzati. Se un servizio non riconosciuto è disponibile a livello generale e il nome è scritto correttamente, significa che il servizio non supporta queste caratteristiche. Se la politica include un servizio supportato con un'azione non supportata, il servizio non supporta completamente i riepiloghi delle IAM politiche.
Per richiedere un servizio, aggiungi il riepilogo delle IAM politiche o il supporto dell'editor visuale
Accedi al AWS Management Console e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. -
Individuare la policy che include il servizio non supportati:
-
Se la policy è una policy gestita, selezionare Policies (Policy) nel riquadro di navigazione. Nell'elenco delle policy, selezionare il nome della policy che si desidera modificare.
-
Se la policy è una policy inline collegata all'utente, selezionare Users (Utenti) nel riquadro di navigazione. Nell'elenco di utenti, selezionare il nome dell'utente la cui policy si desidera visualizzare. Nella tabella di policy per l'utente, espandere l'intestazione per il riepilogo della policy che si desidera visualizzare.
-
-
Nella parte sinistra del AWS Management Console a piè di pagina, scegli Feedback. Nella IAM casella Feedback per, digitate
I request that the <ServiceName> service add support for IAM policy summaries and the visual editor
. Se si desidera che più di un servizio supporti i riepiloghi, digitareI request that the <ServiceName1>, <ServiceName2>, and <ServiceName3> services add support for IAM policy summaries and the visual editor
.
Per richiedere un servizio, aggiungi il riepilogo IAM delle politiche (supporto per un'azione mancante).
Accedi al AWS Management Console e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/
. -
Individuare la policy che include il servizio non supportati:
-
Se la policy è una policy gestita, selezionare Policies (Policy) nel riquadro di navigazione. Nell'elenco delle policy, selezionare il nome della policy che si desidera modificare.
-
Se la policy è una policy inline collegata all'utente, selezionare Users (Utenti) nel riquadro di navigazione. Nell'elenco di utenti, selezionare il nome dell'utente la cui policy si desidera visualizzare. Nella tabella delle policy per l'utente, selezionare il nome della policy che cui si desidera visualizzare per espandere il riepilogo della policy.
-
-
Nel riepilogo della policy, selezionare il nome del servizio che include un'operazione non supportata.
-
Nella parte sinistra del AWS Management Console a piè di pagina, scegli Feedback. Nella IAM casella Feedback per, digitate
I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName> action
. Se si desidera segnalare più di un'operazione non supportata, digitareI request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName1>, <ActionName2>, and <ActionName3> actions
.
Per richiedere che un altro servizio includa operazioni mancanti, ripetere gli ultimi tre passaggi.
La policy non concede le autorizzazioni previste
Per assegnare le autorizzazioni a un utente, gruppo, ruolo o risorsa, è necessario creare una policy, ovvero un documento che definisca le autorizzazioni. Il documento della policy include i seguenti elementi:
-
Effetto: indica se la policy consente o nega l'accesso
-
Azione: l'elenco delle operazioni consentite o rifiutate dalla policy
-
Risorsa: l'elenco delle risorse in cui possono essere eseguite le operazioni
-
Condizione (facoltativo): le circostanze in base alle quali la policy concede l'autorizzazione
Per informazioni su questi elementi di policy, consultare IAMJSONriferimento all'elemento della politica.
Per garantire l'accesso, la policy deve definire un'operazione con una risorsa supportata. Se la policy include anche una condizione, tale condizione deve includere una chiave di condizione globale o deve essere applicata all'operazione. Per sapere quali risorse sono supportate da un'azione, consulta la AWS documentazione per il tuo servizio. Per sapere quali condizioni sono supportate da un'azione, consulta Azioni, risorse e chiavi di condizione per AWS Servizi.
Verifica se la tua politica definisce un'azione, una risorsa o una condizione che non concede autorizzazioni. Visualizza il riepilogo delle policy relative alla tua policy utilizzando la IAM console all'indirizzo https://console.aws.amazon.com/iam/
Esistono diversi motivi per cui un elemento potrebbe non concedere le autorizzazioni nonostante sia definito nella IAM policy:
Per visualizzare esempi di riepiloghi di policy che includono avvisi, consultare Riepilogo della policy (elenco di servizi).
Un'operazione è definita senza una risorsa applicabile
La policy di seguito definisce tutte le operazioni ec2:Describe*
e definisce una risorsa specifica. Nessuna delle operazioni ec2:Describe
viene permessa perché nessuna di tali operazioni supporta le autorizzazioni a livello di risorsa. Le autorizzazioni a livello di risorsa indicano che l'azione supporta l'utilizzo ARNsdi risorse nell'elemento della politica. Resource Se un'operazione non supporta le autorizzazioni a livello di risorsa, tale istruzione della policy deve utilizzare un carattere jolly (*
) nell'elemento Resource
. Per scoprire i servizi che supportano le autorizzazioni a livello di risorsa, consultare AWS servizi che funzionano con IAM.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "arn:aws:ec2:us-east-2:ACCOUNT-ID:instance/*
"
}]
}
Questa policy non fornisce alcuna autorizzazione e il riepilogo della policy include il seguente errore:
This policy does not grant any permissions. To grant access, policies must have
an action that has an applicable resource or condition.
Per correggere la policy, è necessario utilizzare *
nell'elemento Resource
.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
}]
}
Una risorsa è definita senza un'operazione applicabile
La policy di seguito definisce una risorsa del bucket Amazon S3 ma non include un'operazione S3 che può essere eseguita su tale risorsa. Questa politica garantisce inoltre l'accesso completo a tutte le CloudFront azioni di Amazon.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": "cloudfront:*",
"Resource": [
"arn:aws:cloudfront:*",
"arn:aws:s3:::amzn-s3-demo-bucket
"
]
}]
}
Questa politica fornisce le autorizzazioni per tutte le CloudFront azioni. Tuttavia, poiché la policy definisce le risorse amzn-s3-demo-bucket
di S3 senza definire alcuna operazione S3, il riepilogo della policy include il seguente avviso:
This policy defines some actions, resources, or conditions that do not provide
permissions. To grant access, policies must have an action that has an applicable
resource or condition.
Per correggere questa policy per fornire autorizzazioni del bucket S3, è necessario definire operazioni S3 che possono essere eseguite su una risorsa bucket.
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Action": [
"cloudfront:*",
"s3:CreateBucket",
"s3:ListBucket*",
"s3:PutBucket*",
"s3:GetBucket*"
],
"Resource": [
"arn:aws:cloudfront:*",
"arn:aws:s3:::amzn-s3-demo-bucket"
]
}]
}
In alternativa, per correggere questa politica e fornire solo le CloudFront autorizzazioni, rimuovi la risorsa S3.
Una condizione è definita senza un'operazione applicabile
La policy di seguito definisce due operazioni Amazon S3 per tutte le risorse S3, se il prefisso S3 è uguale a custom
e l'ID della versione è uguale a 1234
. Tuttavia, la chiave della condizione s3:VersionId
viene utilizzata per il tagging della versione dell'oggetto e non è supportata dalle operazioni bucket definite. Per sapere quali condizioni sono supportate da un'azione, consulta Azioni, risorse e chiavi di condizione per AWS Servizi e scegli il servizio per visualizzare la documentazione del servizio per le chiavi di condizione.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": [
"custom"
],
"s3:VersionId": [
"1234"
]
}
}
}
]
}
Questa policy fornisce le autorizzazioni per l'operazione s3:ListBucketVersions
e l'operazione s3:ListBucket
se il nome del bucket include il prefisso custom
. Tuttavia, poiché la condizione s3:VersionId
non è supportata da nessuna delle operazioni definite, il riepilogo della policy include il seguente errore:
This policy does not grant any permissions. To grant access, policies must have
an action that has an applicable resource or condition.
Per correggere questa policy e utilizzare il tagging della versione dell'oggetto S3, è necessario definire un'operazione S3 che supporti la chiave della condizione s3:VersionId
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket",
"s3:GetObjectVersion"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": [
"custom"
],
"s3:VersionId": [
"1234"
]
}
}
}
]
}
Questa policy fornisce le autorizzazioni per ogni operazione e condizione nella policy. Tuttavia, la policy non fornisce nessuna autorizzazione perché non esiste un caso in cui una singola operazione corrisponda a entrambe le condizioni. Al contrario, è necessario creare due dichiarazioni separate che includano ciascuna solo le operazioni con le condizioni a cui si applicano.
Per correggere questa policy, è necessario creare due istruzioni. La prima istruzione include le operazioni che supportano la condizione s3:prefix
e la seconda istruzione include le operazioni che supportano la condizione s3:VersionId
.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucketVersions",
"s3:ListBucket"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:prefix": "custom"
}
}
},
{
"Effect": "Allow",
"Action": "s3:GetObjectVersion",
"Resource": "*",
"Condition": {
"StringEquals": {
"s3:VersionId": "1234"
}
}
}
]
}
Risoluzione dei problemi di gestione delle policy
È possibile individuare e risolvere i problemi correlati alla gestione delle policy.
Allegare o rimuovere una politica in un account IAM
Medio AWS le politiche gestite sono collegate a un servizio. Queste policy vengono utilizzate solo con un ruolo collegato a un servizio per tale servizio. Nella IAM console, quando si visualizza la pagina dei dettagli della politica, la pagina include un banner per indicare che la politica è collegata a un servizio. Non è possibile allegare questa politica a un utente, gruppo o ruolo internoIAM. Quando si crea un ruolo collegato al servizio per il servizio, questa policy viene automaticamente collegata al nuovo ruolo. Poiché la policy è obbligatoria, non è possibile distaccare la policy dal ruolo collegato al servizio.
Modifica delle politiche relative IAM alle identità in base alla loro attività
Puoi aggiornare le politiche per le tue IAM identità (utenti, gruppi e ruoli) in base alla loro attività. A tale scopo, visualizza gli eventi del tuo account nella CloudTrail Cronologia degli eventi. CloudTrail i registri degli eventi includono informazioni dettagliate sugli eventi che puoi utilizzare per modificare le autorizzazioni della politica.
- Un utente o un ruolo sta tentando di eseguire un'azione in AWS e tale richiesta viene respinta.
-
Valuta se l'utente o il ruolo devono avere l'autorizzazione per eseguire l'azione. In tal caso, puoi aggiungere alla loro politica l'ARNazione e persino la risorsa a cui hanno tentato di accedere.
- Un utente o un ruolo dispone di autorizzazioni che non utilizza.
-
Valuta la possibilità di rimuovere tali autorizzazioni dalla loro politica. Verifica che le policy concedano i privilegi minimi necessari per eseguire solo le operazioni necessarie.
Per ulteriori informazioni sull'utilizzo CloudTrail, consulta Visualizzazione CloudTrail degli eventi nella CloudTrail console nel AWS CloudTrail Guida per l'utente.
Risolvi i problemi relativi JSON ai documenti relativi alle politiche
È possibile diagnosticare e risolvere i problemi relativi ai documenti relativi alle JSON politiche.
Convalida delle policy
Quando crei o modifichi una JSON politica, IAM puoi eseguire la convalida della politica per aiutarti a creare una politica efficace. IAMidentifica gli errori di JSON sintassi, mentre IAM Access Analyzer fornisce controlli aggiuntivi delle politiche con consigli per aiutarti a perfezionare ulteriormente le politiche. Per ulteriori informazioni sulla convalida delle policy, consulta IAMconvalida delle politiche. Per ulteriori informazioni sui controlli delle policy di IAM Access Analyzer e sui consigli attuabili, consulta Convalida delle policy di Access Analyzer. IAM
Non dispongo delle autorizzazioni per la convalida delle politiche nell'editor JSON
Nel AWS Management Console, potresti ricevere il seguente errore se non disponi delle autorizzazioni per visualizzare i risultati di convalida delle policy di IAM Access Analyzer:
You need permissions. You do not have the permissions required to perform this
operation. Ask your administrator to add permissions.
Per risolvere questo errore, chiedere all'amministratore di aggiungere l'autorizzazione access-analyzer:ValidatePolicy
per proprio conto.
Più di un oggetto di policy JSON
Una IAM politica deve essere costituita da un solo JSON oggetto. È possibile denotare un oggetto racchiudendolo tra parentesi graffe { }. Puoi annidare altri oggetti all'interno di un JSON oggetto incorporando {} parentesi graffe aggiuntive all'interno della coppia esterna. Una politica deve contenere solo una coppia più esterna di {} parentesi graffe. L'esempio seguente non è corretto perché contiene due oggetti al livello superiore (richiamati in red
):
{
"Version": "2012-10-17",
"Statement":
{
"Effect":"Allow",
"Action":"ec2:Describe*",
"Resource":"*"
}
}
{
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Tuttavia, è possibile soddisfare l'intenzione dell'esempio precedente con l'uso di una corretta grammatica di policy. Anziché includere due oggetti di policy completi ciascuno con il proprio elemento Statement
, è possibile combinare i due blocchi in un singolo elemento Statement
. L'elemento Statement
dispone di una serie di due oggetti come valore, come mostrato nell'esempio seguente (evidenziato in grassetto):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":" *" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Più di un elemento di JSON dichiarazione
Questo errore potrebbe apparentemente sembrare una variazione della sezione precedente. Tuttavia, sintatticamente si tratta di un altro tipo di errore. L'esempio seguente include un solo oggetto della policy come indicato da una singola coppia di parentesi graffe { } al livello più alto. Tuttavia, quell'oggetto contiene due elementi Statement
al suo interno.
Una IAM policy deve contenere un solo Statement
elemento, costituito dal nome (Statement
) che appare a sinistra dei due punti, seguito dal relativo valore a destra. Il valore di un elemento Statement
deve essere un oggetto, contrassegnato da parentesi graffe {}, che contiene un elemento Effect
, un elemento Action
e un elemento Resource
. L'esempio seguente non è corretto perché contiene due Statement
elementi nell'oggetto policy (chiamato in red
):
{
"Version": "2012-10-17",
"Statement
": {
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
"Statement
": {
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Un oggetto valore può essere una matrice di oggetti a valore multiplo. Per risolvere questo problema, combinare i due elementi Statement
in un unico elemento con una matrice di oggetti, come mostrato nell'esempio seguente (evidenziato in grassetto):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":"*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
Il valore dell'elemento Statement
è una matrice di oggetti. La matrice in questo esempio è costituita da due oggetti, ognuno dei quali è di per sé un valore corretto per un elemento Statement
. Ogni oggetto nella matrice è separato da virgole.
Più di un effetto, un'azione o un elemento di risorsa in un elemento di JSON dichiarazione
Sul lato valore della coppia nome/valore Statement
, l'oggetto deve essere composto da un solo elemento Effect
, un elemento Action
e un elemento Resource
. La seguente politica non è corretta perché include due Effect
elementiStatement
:
{
"Version": "2012-10-17",
"Statement": {
"Effect
": "Deny",
"Effect
": "Allow",
"Action": "ec2:* ",
"Resource": "*"
}
}
Nota
Il motore di policy non permette tali errori nelle policy nuove o modificate. Tuttavia, il motore di policy permettere le policy che sono state salvate prima che il motore fosse aggiornato. Il comportamento delle policy esistenti con l'errore è il seguente:
-
Più elementi
Effect
: viene osservato solo l'ultimo elementoEffect
. Gli altri valori vengono ignorati. -
Action
Elementi multipli: tuttiAction
gli elementi vengono combinati internamente e trattati come se fossero un unico elenco. -
Resource
Elementi multipli: tuttiResource
gli elementi vengono combinati internamente e trattati come se fossero un unico elenco.
ll motore di policy non permette di salvare alcuna policy con errori di sintassi. Correggete gli errori nella politica prima di salvare. Rivedi e correggi tutti i consigli di convalida delle politiche per le tue politiche.
In ogni caso, la soluzione consiste nel rimuovere l'elemento aggiuntivo. Per Effect
quanto riguarda gli elementi, questo è semplice: se desideri che l'esempio precedente neghi le autorizzazioni alle istanze EC2 Amazon, devi rimuovere la "Effect": "Allow",
riga dalla politica, come segue:
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:* ", "Resource": "*" } }
Tuttavia, se l'elemento duplicato è Action
oppure Resource
, la risoluzione può essere più complicata. Potrebbero essere presenti più operazioni per cui si desidera permettere (o rifiutare) l'autorizzazione oppure si potrebbe voler controllare l'accesso a più risorse. Ad esempio, l'esempio seguente non è corretto perché contiene più Resource
elementi (richiamati in red
):
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:*",
"Resource
": "arn:aws:s3:::amzn-s3-demo-bucket",
"Resource
": "arn:aws:s3:::amzn-s3-demo-bucket/*"
}
}
Tutti gli elementi necessari in un oggetto valore di un elemento Statement
può essere presente una sola volta. La soluzione consiste nel posizionare ogni valore in una matrice. L'esempio che segue illustra questa operazione separando i due elementi risorsa in un elemento Resource
con una matrice come valore oggetto (evidenziata in grassetto):
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } }
Elemento di JSON versione mancante
Un elemento di policy Version
è diverso da una versione di policy. L'elemento di policy Version
viene utilizzato all'interno di una policy e definisce la versione del linguaggio di policy. In confronto, viene creata una versione della politica quando si modifica una politica gestita dai clienti inIAM. La policy modificata non viene sovrascritta a quella precedente. IAMCrea invece una nuova versione della politica gestita. Per ulteriori informazioni sull'elemento di policy Version
, consultare IAMJSONelementi politici: Version. Per ulteriori informazioni sulle versioni di policy, consultare Funzione Versioni multiple di policy IAM.
Come AWS le funzionalità si evolvono, vengono aggiunte nuove funzionalità alle IAM politiche per supportarle. A volte, un aggiornamento della sintassi della policy include un nuovo numero di versione. Se si utilizzano le caratteristiche più recenti della grammatica di policy nella policy, è necessario indicare al motore di analisi delle policy quale versione si sta utilizzando. La versione di policy predefinita è "2008-10-17". Se si desidera utilizzare qualsiasi funzione di policy introdotta successivamente, è necessario specificare il numero di versione che supporta la funzionalità desiderata. Si consiglia di includere sempre il numero di versione della sintassi di policy più recente, che è al momento "Version": "2012-10-17"
. Ad esempio, la seguente politica non è corretta perché utilizza una variabile di policy ${...}
in ARN for a resource. Ma non riesce a specificare una versione della sintassi delle politiche che supporti le variabili di policy (richiamate in red
):
{
"Statement":
{
"Action": "iam:*AccessKey*",
"Effect": "Allow",
"Resource": "arn:aws:iam::123456789012:user/${aws:username}
"
}
}
L'aggiunta di un Version
elemento nella parte superiore della policy con il valore2012-10-17
, la prima IAM API versione che supporta le variabili di policy, risolve questo problema (indicato in grassetto):
{ "Version": "2012-10-17", "Statement": { "Action": "iam:*AccessKey*", "Effect": "Allow", "Resource": "arn:aws:iam::123456789012:user/${aws:username}" } }