Chiavi di contesto a valore singolo vs multivalore - AWS Identity and Access Management

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 multivalore dipende dal numero di valori nel contesto della richiesta e non dal numero di valori nella condizione della policy.

  • Le chiavi del contesto con condizione a valore singolo hanno al massimo un valore nel contesto della richiesta. Ad esempio, puoi applicare tag alle risorse in AWS. I tag delle risorse sono archiviati come coppie chiave-valore di tag. Una chiave di tag di risorsa può avere un singolo valore di tag. Pertanto, 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, puoi taggare le risorse AWS e includere più coppie chiave-valore di tag in una 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 della condizione globaleargomento. Il riferimento per l'autorizzazione del servizio utilizza una diversa classificazione dei tipi di valore per le chiavi di contesto multivalore nel seguente formato: un ArrayOf prefisso seguito dal tipo di categoria dell'operatore di condizione. Ad esempio ArrayOfString o ArrayOfARN.

Ad esempio, una richiesta può provenire al massimo da un endpoint VPC, quindi leggi: SourceVpce è una chiave di contesto a valore singolo. Poiché un servizio può avere più di un nome del principale di servizio appartenente al servizio, leggi: PrincipalService NamesList è una chiave di contesto multivalore.

Qualsiasi chiave di contesto a valore singolo disponibile può essere utilizzata come policy variabile. Non è possibile utilizzare una chiave di contesto multivalore come policy variabile. Per ulteriori informazioni sulle variabili di policy, consultare Elementi delle policy IAM: variabili e tag.

Le chiavi di contesto multivalore richiedono gli operatori di condizione ForAllValues o ForAnyValue. Le chiavi di contesto che includono coppie chiave-valore come aws:RequestTag//tag-key e aws:ResourceTag//tag-key possono causare confusione perché possono essere presenti più valori tag-key. Dal momento che ogni tag-key può avere solo un valore, aws:RequestTag e aws:ResourceTagsono 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 qualificatori ForAllValues e ForAnyValue aggiungono funzionalità di operazione di insieme all'operatore di condizione, in modo che tu possa testare chiavi di contesto della richiesta multivalore con più chiavi di contesto multiple in una condizione della policy. 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 quadre 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 condizione restituisce true se ogni valore della chiave di contesto nella richiesta corrisponde ad almeno un valore nella policy. Restituisce true anche se non ci sono chiavi di contesto nella richiesta o se i valori delle chiavi si riducono a 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 come vere, è possibile includere Null l’operatore di condizioni nella tua policy con un valore falso per verificare se la chiave di contesto esiste e il suo valore non è nullo.

    Importante

    Fai attenzione se usi ForAllValues con un effetto Allow perché ciò può essere eccessivamente permissivo se la presenza di chiavi di contesto mancanti o di chiavi di contesto con valori vuoti nel contesto della richiesta è imprevista. Puoi includere la condizione del Nulloperatore di condizioni nella tua policy con un valore falso 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 condizione restituisce true se uno qualsiasi dei valori della chiave di contesto corrisponde a un valore qualsiasi della chiave di contesto nella policy. Se non vi è una chiave di contesto corrispondente o di un set di dati vuoto, la condizione restituisce il valore 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.