Clés de contexte à valeur unique ou à valeurs multiples - AWS Identity and Access Management

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Clés de contexte à valeur unique ou à valeurs multiples

La différence entre les clés de contexte à valeur unique et à valeurs multiples dépend du nombre de valeurs dans le contexte de la demande, et non du nombre de valeurs dans la condition de la politique.

  • Les clés de contexte de condition à valeur unique ont au plus une valeur dans le contexte de la demande. Par exemple, vous pouvez baliser des ressources dans AWS. Les balises de ressources sont stockées sous forme de paires clé-valeur de balise. Une clé de balise de ressource peut avoir une seule valeur de balise. Par conséquent, aws :ResourceTag//tag-key est une clé de contexte à valeur unique. N'utilisez pas d'opérateur d'ensemble de conditions avec une clé de contexte à valeur unique.

  • Les clés de contexte de condition à valeurs multiples peuvent comporter plusieurs valeurs dans le contexte de la demande. Par exemple, vous pouvez étiqueter des ressources AWS et inclure plusieurs paires clé-valeur de balise dans une demande. Ainsi, lois : TagKeys est une clé de contexte à valeurs multiples. Les clés de contexte à valeurs multiples nécessitent un opérateur d'ensemble de conditions.

Important

Les clés de contexte à valeurs multiples nécessitent un opérateur d'ensemble de conditions. N'utilisez pas d'opérateurs d'ensemble de conditions ForAllValues ou ForAnyValue avec des clés de contexte à valeur unique. Pour en savoir plus sur les opérateurs d'ensemble de conditions, veuillez consulter la rubrique Clés de contexte à valeurs multiples.

Les classifications À valeur unique et À valeurs multiples sont incluses dans la description de chaque clé de contexte de condition, dans le Type de valeur de la rubrique AWS clés contextuelles de condition globale. La Référence de l'autorisation de service utilise une classification de type de valeur différente pour les clés de contexte à valeurs multiples au format suivant : un préfixe ArrayOf suivi du type de catégorie de l'opérateur de condition. Par exemple, ArrayOfString ou ArrayOfARN.

Par exemple, une demande peut provenir d'un seul point de terminaison d'un VPC au maximum. lois : SourceVpce est donc une clé de contexte à valeur unique. Étant donné qu'un service peut avoir plus d'un nom de principal de service qui appartient au service, lois : PrincipalService NamesList est une clé de contexte à valeurs multiples.

Vous pouvez utiliser n'importe quelle clé de contexte à valeur unique disponible en tant que variable de politique. Vous ne pouvez pas utiliser de clé de contexte à valeurs multiples en tant que variable de politique. Pour de plus amples informations sur les variables de politique, veuillez consulter Éléments des politiques IAM : variables et balises.

Les clés de contexte à valeurs multiples nécessitent les opérateurs d'ensemble de conditions ForAllValues ou ForAnyValue. Les clés de contexte qui comprennent des paires clé-valeur telles que aws :RequestTag//tag-key et aws :ResourceTag//tag-key peuvent prêter à confusion, car il peut y avoir plusieurs valeurs tag-key. Mais comme chaque tag-key ne peut avoir qu'une seule valeur, aws:RequestTag et aws:ResourceTag sont tous deux des clés de contexte à valeur unique. L'utilisation d'opérateurs d'ensembles de conditions avec des clés de contexte à valeur unique peut entraîner des politiques trop permissives.

Clés de contexte à valeurs multiples

Pour comparer votre clé de contexte de condition à un contexte de demande à valeurs multiples, vous devez utiliser les opérateurs d'ensemble ForAllValues ou ForAnyValue. Ces opérateurs d'ensembles sont utilisés pour comparer deux ensembles de valeurs, tels que l'ensemble de balises dans une demande et l'ensemble de balises dans une condition de politique.

Ces qualificatifs ForAllValues et ForAnyValue ajoutent une fonctionnalité d'opération d'ensemble à l'opérateur de condition afin que vous puissiez tester les clés de contexte avec plusieurs valeurs par rapport à plusieurs valeurs de clé de contexte dans une condition de politique. En outre, si vous incluez une clé de contexte à valeurs multiples dans votre politique avec un caractère générique ou une variable, vous devez également utiliser l'opérateur de condition StringLike. Les valeurs de clé de condition multiples doivent être placées entre crochets, comme dans un tableau. Par exemple, "Key2":["Value2A", "Value2B"].

  • ForAllValues : ce qualificateur teste si la valeur de chaque membre de la demande est un sous-ensemble de l'ensemble de clé de contexte de condition. La condition renvoie la valeur true (vrai) si chaque valeur de clé de contexte de la demande correspond à au moins une valeur de clé de contexte de la politique. Elle renvoie également la valeur true si la demande ne comprend pas de clés de contexte ou si la valeur de clé de contexte aboutit à un jeu de données nul, tel qu'une chaîne vide. Pour éviter que des clés de contexte manquantes ou des clés de contexte contenant des valeurs vides ne soient considérées comme true (vraies), vous pouvez inclure l'opérateur de condition Null dans votre politique avec une valeur fausse pour vérifier si la clé de contexte existe et si sa valeur n'est pas nulle.

    Important

    Faites preuve de vigilance si vous utilisez ForAllValues avec un effet Allow, car cela peut être trop permissif si la présence de clés de contexte manquantes ou de clés de contexte avec des valeurs vides dans le contexte de la demande est inattendue. Vous pouvez inclure l'opérateur de condition Null dans votre politique avec une valeur fausse pour vérifier si la clé de contexte existe et si sa valeur n'est pas nulle. Pour obtenir un exemple, consultez Contrôle de l'accès en fonction des clés de balise.

  • ForAnyValue : ce qualificateur teste si au moins un membre de l'ensemble des valeurs de clé de contexte de la demande correspond à au moins un membre de l'ensemble des valeurs de clé de contexte de votre condition de politique. La clé de contexte renvoie la valeur true si l'une des valeurs de clé de contexte de la demande correspond à l'une des valeurs de clé de contexte de la politique. Si aucune clé de contexte ne correspond ou si le jeu de données est inexistant (null), la condition renvoie la valeur false.

Note

La différence entre les clés de contexte à valeur unique et à valeurs multiples dépend du nombre de valeurs dans le contexte de la demande, et non du nombre de valeurs dans la condition de la politique.