Utilisation de clés de contexte CalledVia pour Athena
Lorsqu’un principal soumet une requête à AWS, AWS rassemble les informations de la requête dans un contexte qui évalue et autorise la requête. Vous pouvez utiliser l'élément Condition d'une politique JSON pour comparer des clés dans le contexte de demande avec les valeurs de clé spécifiées dans votre politique. Les clés de condition générales sont des clés de condition avec un préfixe aws:.
À propos de la clé de contexte aws:CalledVia
Vous pouvez utiliser la clé contextuelle de condition générale aws:CalledVia pour comparer les services de la politique avec les services qui ont fait des demandes au nom du principal IAM (utilisateur ou rôle). Lorsqu'un principal envoie une requête à un Service AWS, ce service peut utiliser les informations d'identification du principal pour envoyer d'autres requêtes à d'autres services. La clé aws:CalledVia contient une liste ordonnée des services de la chaîne ayant effectué des demandes pour le compte du principal.
En spécifiant un nom de principal de service pour la clé contextuelle aws:CalledVia, vous pouvez rendre la clé contextuelle spécifique au Service AWS. Par exemple, vous pouvez utiliser la clé de condition aws:CalledVia pour limiter les demandes à celles effectuées à partir d'Athena. Pour utiliser la clé de condition aws:CalledVia dans une politique avec Athena, vous devez spécifier le athena.amazonaws.com du nom du principal du service Athena, comme dans l'exemple suivant.
... "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": "athena.amazonaws.com" } } ...
Vous pouvez utiliser la clé contextuelle aws:CalledVia pour vous assurer que les appelants n'ont accès à une ressource (comme une fonction Lambda) que s'ils appellent la ressource à partir d'Athena.
Note
La clé de contexte aws:CalledVia n’est pas compatible avec la fonctionnalité de propagation d’identité approuvée.
Ajout d’une clé de contexte CalledVia pour l’accès aux fonctions Lambda
Athena exige que l'appelant dispose d'autorisations lambda:InvokeFunction afin d'invoquer la fonction Lambda associée à la requête. L’instruction suivante spécifie que l’utilisateur peut invoquer des fonctions Lambda uniquement depuis Athena.
L'exemple suivant montre l'ajout de l'instruction précédente à une politique qui permet à un utilisateur d'exécuter et de lire une requête fédérée. Les principals autorisés à effectuer ces actions peuvent exécuter des requêtes qui spécifient les catalogues Athena associés à une source de données fédérée. Cependant, le principal ne peut pas accéder à la fonction Lambda associée, à moins que la fonction ne soit invoquée par Athena.
Pour plus d'informations sur les clés de condition CalledVia, consultez la rubrique Clés contextuelles de condition générale AWS du Guide de l'utilisateur IAM.