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à.
Chiavi di contesto a valore singolo vs multivalore
La differenza tra le chiavi di contesto a valore singolo e quelle multivalore risiede nel numero di valori nel contesto della richiesta, non nel numero di valori nella condizione della politica.
-
Le chiavi del contesto con condizione a valore singolo hanno al massimo un valore nel contesto della richiesta. Ad esempio, quando taggate le risorse AWS, ogni tag di risorsa viene memorizzato come coppia chiave-valore. Poiché una chiave di tag di risorsa può avere un solo valore di tag, aws:ResourceTag//tag-key è una chiave di contesto a valore singolo. Non utilizzare operatori con una chiave di contesto a valore singolo.
-
Le chiavi di contesto con condizione multivalore possono avere più di un valore nel contesto della richiesta. Ad esempio, quando tagghi le risorse AWS, puoi includere più coppie chiave-valore di tag in un'unica richiesta. Pertanto, leggi: TagKeys è una chiave di contesto multivalore. Le chiavi di contesto multivalore richiedono un operatore di condizione.
Importante
Le chiavi di contesto multivalore richiedono un operatore di condizione. Non utilizzare operatori di condizione ForAllValues
o ForAnyValue
chiavi di contesto a valore singolo. Per ulteriori informazioni sugli operatori di condizione, vedereChiavi di contesto multivalore.
Le classificazione valore singolo e multivalore sono incluse nella descrizione di ciascuna chiave di contesto della condizione come tipo di valore nell’AWS Chiavi di contesto delle condizioni globaliargomento. Il Service Authorization Reference utilizza una classificazione dei tipi di valore diversa per le chiavi di contesto multivalore, utilizzando un ArrayOf
prefisso seguito dal tipo di categoria dell'operatore di condizione, ad esempio o. ArrayOfString
ArrayOfARN
Ad esempio, una richiesta può provenire al massimo da un VPC endpoint, così leggi: SourceVpce come una chiave di contesto a valore singolo. Poiché un servizio può avere più di un nome del principale di servizio appartenente al servizio, leggi: PrincipalServiceNamesList è una chiave di contesto multivalore.
È possibile utilizzare qualsiasi chiave di contesto a valore singolo disponibile come variabile di politica, ma non è possibile utilizzare una chiave di contesto multivalore come variabile di politica. Per ulteriori informazioni sulle variabili di policy, consultare Elementi delle policy IAM: variabili e tag.
Quando si utilizzano chiavi di contesto che includono coppie chiave-valore, è importante notare che anche se possono esserci più valori tag-chiave, ognuno può avere un solo valore.
Pertanto, tag-key
aws:RequestTag
e aws:ResourceTag
sono entrambe chiavi di contesto a valore singolo. L'utilizzo di operatori di set di condizioni con chiavi di contesto a valore singolo può portare a policy eccessivamente permissive.
Chiavi di contesto multivalore
Per confrontare la chiave di contesto della condizione con una chiave di contesto di richiesta con più valori chiave, devi utilizzare gli operatori di insiemi ForAllValues
o ForAnyValue
. Questi operatori di insieme sono usati per paragonare due insiemi di valori, ad esempio il set di tag in una richiesta e il set di tag in una condizione della policy.
I ForAnyValue
qualificatori ForAllValues
and aggiungono la funzionalità di set-operation all'operatore condition, che consente di testare le chiavi di contesto della richiesta con più valori rispetto a più valori di chiave di contesto in una condizione politica. Inoltre, se includi una chiave di contesto di stringa multivalore nella policy con un carattere jolly o una variabile, devi utilizzare anche l'operatore di condizione StringLike
. I valori multipli delle chiavi di condizione devono essere racchiusi tra parentesi, come in un array, ad esempio. "Key2":["Value2A", "Value2B"]
-
ForAllValues
- Questo qualificatore verifica il valore di ogni membro del set di richieste è un sottoinsieme del set di chiavi di contesto della condizione. La condizionetrue
viene restituita se ogni valore della chiave di contesto nella richiesta corrisponde ad almeno un valore della chiave di contesto nella politica. Restituisce anchetrue
se non ci sono chiavi di contesto nella richiesta o se il valore della chiave di contesto si risolve in un set di dati nullo, ad esempio una stringa vuota. Per evitare che le chiavi di contesto mancanti o le chiavi di contesto con valori vuoti vengano valutate intrue
, puoi includere l'operatore di Nullcondizione nella tua politica con unfalse
valore per verificare se la chiave di contesto esiste e il suo valore non è nullo.Importante
Fate attenzione se utilizzate
ForAllValues
unAllow
effetto, poiché può essere eccessivamente permissivo se la presenza di chiavi di contesto mancanti o di chiavi di contesto con valori vuoti nel contesto della richiesta è inaspettata. È possibile includere l'operatore diNull
condizione nella politica con unfalse
valore per verificare se la chiave di contesto esiste e il suo valore non è nullo. Per vedere un esempio, consulta Controllo dell'accesso in base alle chiavi di tag. -
ForAnyValue
- Questo test di qualificazione verifica se almeno un membro del set di valori di richiesta è corrispondente ad almeno un membro del set di valori delle chiavi di condizione della policy. La chiave di contesto restituiscetrue
se uno qualsiasi dei valori della chiave di contesto nella richiesta corrisponde a uno qualsiasi dei valori della chiave di contesto nella politica. Se non esiste una chiave di contesto corrispondente o un set di dati nullo, viene restituita la condizione.false
Nota
La differenza tra le chiavi di contesto della condizione a valore singolo e multivalore dipende dal numero di valori nel contesto della richiesta e non dal numero di valori nella condizione della policy.