Séances interactives avec IAM
Ces sections décrivent les considérations relatives à la sécurité des séances interactives AWS Glue.
Rubriques
Principaux IAM utilisés avec des séances interactives
Vous utilisez deux principaux IAM utilisés avec des séances interactives AWS Glue.
-
Client principal: Le principal client (un utilisateur ou un rôle) autorise les opérations API pour les séances interactives à partir d'un client AWS Glue configuré avec les informations d'identification basées sur l'identité du principal. Il peut s'agir par exemple d'un rôle IAM que vous utilisez généralement pour accéder à la console AWS Glue. Il peut s'agir également d'un rôle accordé à un utilisateur d'IAM dont les informations d'identification sont utilisées pour l'AWS Command Line Interface, ou d'un client AWS Glue utilisé par le noyau Jupyter des séances interactives.
-
Rôle d'exécution : le rôle d'exécution est un rôle IAM que le principal client transmet aux opérations API des séances interactives. AWS Glue utilise ce rôle pour exécuter des instructions dans votre séance. Par exemple, ce rôle peut être celui utilisé pour exécuter des tâches ETL AWS Glue.
Pour plus d’informations, consultez Paramétrer un rôle d'exécution.
Paramétrer un client principal
Vous devez attacher une politique d'identité au principal du client pour lui permettre d'appeler l'API des séances interactives. Ce rôle doit avoir un accès iam:PassRole au rôle d'exécution que vous devez transmettre aux API des séances interactives telles que CreateSession. Par exemple, vous pouvez attacher la politique gérée AWSGlueConsoleFullAccess à un rôle IAM qui autorise les utilisateurs de votre compte attachés à cette politique à accéder à toutes les séances créées dans votre compte (telles que l'instruction d'exécution ou l'instruction d'annulation).
Si vous souhaitez protéger votre séance et la rendre privée uniquement pour certains rôles IAM, comme ceux associés à l'utilisateur qui a créé la séance, vous pouvez utiliser le contrôle d'autorisation basé sur les balises des séances interactives d'AWS Glue, appelé TagOnCreate. Pour plus d'informations, consultez Rendez votre séance privée avec TagOnCreate sur la façon dont une politique gérée étendue basée sur des identifications de propriétaire peut rendre votre séance privée avec TagonCreate. Pour plus d’informations sur les politiques basées sur l’identité, consultez Identity-based policies for AWS Glue.
Paramétrer un rôle d'exécution
Vous devez transmettre un rôle IAM à l'opération de l'API CreateSession pour autoriser AWS Glue à supposer et exécuter des instructions dans des séances interactives. Le rôle doit avoir les mêmes autorisations IAM que celles requises pour exécuter une tâche AWS Glue typique. Par exemple, vous pouvez créer une fonction du service à l'aide de la politique AWSGlueServiceRole qui autorise AWS Glue à appeler services AWS en votre nom. Si vous utilisez la console AWS Glue, il créera automatiquement une fonction du service en votre nom ou en utilisera une existante. Vous pouvez également créer votre propre rôle IAM et attacher votre propre politique IAM pour autoriser des autorisations similaires.
Si vous souhaitez protéger votre séance et la rendre privée uniquement pour l'utilisateur qui l'a créée, vous pouvez utiliser le contrôle d'autorisation basé sur les balises des séances interactives de AWS Glue, appelé TagOnCreate. Pour plus d'informations, consultez Rendez votre séance privée avec TagOnCreate sur la façon dont une politique gérée étendue basée sur des identifications de propriétaire peut rendre votre séance privée avec TagonCreate. Pour plus d'informations sur les stratégies basées sur l'identité, consultez Politiques basées sur l'identité pour AWS Glue. Si vous créez vous-même le rôle d'exécution à partir de la console IAM et que vous souhaitez rendre votre service privé avec la fonctions TagOnCreate, suivez les étapes ci-dessous.
-
Créez un rôle IAM avec le type de rôle défini sur
Glue. -
Attachez la politique gérée AWS Glue suivante :AwsGlueSessionUserRestrictedServiceRole
-
Préfixez le nom du rôle avec le nom de la politique AwsGlueSessionUserRestrictedServiceRole. Par exemple, vous pouvez créer un rôle avec un nom AwsGlueSessionUserRestrictedServiceRole-myrole, puis attacher la politique gérée AWS Glue AwsGlueSessionUserRestrictedServiceRole.
-
Attachez une politique d'approbation telle que la politique suivante pour autoriser AWS Glue à endosser le rôle :
Pour un noyau Jupyter de séances interactives, vous pouvez spécifier la clé iam_role dans votre profil AWS Command Line Interface. Pour de plus amples informations, veuillez consulter Configuration de séances avec ~/.aws/config (langue Français non garantie). Si vous interagissez avec des séances interactives à l'aide d'un AWS Glue bloc-notes, vous pouvez ensuite passer le rôle d'exécution dans la magie %iam_role dans la première cellule que vous exécutez.
Rendez votre séance privée avec TagOnCreate
Les séances interactives AWS Glue prennent en charge l'étiquette et l'autorisation basée sur les identifications (TBAC) pour les séances interactives en tant que ressource nommée. En plus du TBAC utilisant les API TagResource et UntagResource, les séances interactives AWS Glue prennent en charge la fonction TagOnCreate pour « étiqueter » une séance avec une identification donnée uniquement pendant la création de séance avec l'opération CreateSession. Cela signifie également que ces identifications seront supprimées sur DeleteSession, alias UntagonDelete.
TagOnCreate offre un puissant mécanisme de sécurité pour rendre votre séance privée au créateur de la séance. Par exemple, vous pouvez attacher une politique IAM avec une balise RequestTag « propriétaire » et la valeur ${aws:userId} à un principal de client (tel qu'un utilisateur) afin d'autoriser la création d'une séance uniquement si une balise « propriétaire » avec la valeur correspondante de l'userId de l'appelant est fournie en tant que balise userId dans la demande CreateSession. Cette politique autorise les séances interactives AWS Glue pour créer une ressource de séance et étiqueter la séance avec l'identification userId uniquement pendant la création de la séance. De plus, vous pouvez réduire l'accès (comme les instructions en cours d'exécution) à votre séance uniquement au créateur (identification propriétaire avec la valeur ${aws:userId}) de la séance en attachant une politique IAM avec Balise ressource « propriétaire » au rôle d'exécution que vous avez transmis pendant la création de la séance.
Afin de faciliter l'utilisation de la fonction TagOnCreate pour rendre une séance privée au créateur de séance, AWS Glue fournit des politiques gérées spécialisées et des fonctions du service.
Si vous souhaitez créer une séance interactive AWS Glue à l'aide d'un principal IAM AssumeRole (c'est-à-dire en utilisant des informations d'identification fournies en endossant un rôle IAM) et que vous souhaitez rendre la séance privée pour le créateur, alors utilisez des politiques similaires à AWSGlueSessionUserRestrictedNotebookPolicy et AWSGlueSessionUserRestrictedNotebookServiceRole respectivement. Ces politiques autorisent AWS Glue à utiliser ${aws:PrincipalTag} pour extraire la valeur de l'identification propriétaire. Cela nécessite que vous transmettiez une identification userId avec la valeur ${aws:userId} en tant que SessionTag dans les informations d'identification du rôle endossé. Voir Balises d’identification de séance . Si vous utilisez une instance Amazon EC2 avec un profil d'instance qui vend les informations d'identification et que vous souhaitez créer une séance ou interagir avec la séance à partir de l'instance Amazon EC2, vous devez transmettre une identification userId avec la valeur ${aws:userId} en tant que SessionTag dans les informations d'identification de rôle endossé.
Par exemple, si vous créez une séance à l'aide d'une information d'identification principale IAM AssumeRole et que vous souhaitez rendre votre service privé avec la fonction TagonCreate, suivez les étapes ci-dessous.
-
Créez vous-même un rôle d'exécution à partir de la console IAM. Veuillez attacher la politique gérée AWS Glue suivante AwsGlueSessionUserRestrictedNotebookServiceRole et préfixez le nom du rôle avec le nom de la politique AwsGlueSessionUserRestrictedNotebookServiceRole. Par exemple, vous pouvez créer un rôle avec un nom AwsGlueSessionUserRestrictedNotebookServiceRole-myrole, puis attacher la politique gérée AWS Glue AwsGlueSessionUserRestrictedNotebookServiceRole.
-
Attachez une politique de confiance telle que celle ci-dessous pour autoriser AWS Glue à endosser le rôle ci-dessous.
-
Créez un autre rôle nommé avec un préfixe AwsGlueSessionUserRestrictedNotebookPolicy, puis attachez la politique gérée AWS Glue AwsGlueSessionUserRestrictedNotebookPolicy pour rendre la session privée. En plus de la politique gérée, attachez la politique en ligne suivante pour autoriser IAM:PassRole au rôle que vous avez créé lors de l'étape 1.
-
Attachez une politique de confiance telle que la suivante à IAM AWS Glue pour endosser ce rôle.
Note
Vous pouvez également utiliser un rôle unique (par exemple, un rôle de bloc-notes) et attacher les deux politiques gérées ci-dessus AwsGlueSessionUserRestrictedNotebookServiceRole et AwsGlueSessionUserRestrictedNotebookPolicy. Attachez également la politique en ligne supplémentaire pour autoriser
iam:passrolede votre rôle à AWS Glue. Et enfin, attachez la politique de confiance ci-dessus pour autorisersts:AssumeRoleetsts:TagSession.
AWSGlueSessionUserRestrictedNotebookPolicy
Le rôle AWSGlueSessionUserRestrictedNotebookPolicy fournit l'accès pour créer une séance interactive AWS Glue à partir d'un bloc-notes uniquement s'il existe une clé de balise « propriétaire » et une valeur correspondant à l'ID utilisateur AWS du principal (utilisateur ou rôle). Pour plus d'informations, consultez Emplacement où vous pouvez utiliser les variables de politique. Cette politique est attachée au principal (utilisateur ou rôle) qui crée des blocs-notes de séance interactive AWS Glue à partir d'AWS Glue Studio. Cette politique permet un accès suffisant au bloc-notes AWS Glue Studio pour interagir avec les AWS Glue Studio ressources de séance interactive créées avec la valeur d'identification « propriétaire » correspondant à l'identifiant utilisateur AWS du principal. Cette politique rejette l'autorisation de modifier ou de supprimer l’identification « propriétaire » d'une ressource de séance AWS Glue après la création de la séance.
AWSGlueSessionUserRestrictedNotebookServiceRole
Le rôle AWSGlueSessionUserRestrictedNotebookServiceRole fournit un accès suffisant au bloc-notes AWS Glue Studio pour interagir avec les ressources de séance interactive AWS Glue créées avec la valeur de balise « propriétaire » correspondant à l'ID utilisateur AWS du principal (utilisateur ou rôle) du créateur du bloc-notes. Pour plus d'informations, consultez Emplacement où vous pouvez utiliser les variables de politique. Cette politique de fonction du service est attachée au rôle transmis par magic à un bloc-notes ou transmis en tant que rôle d'exécution à l'API CreateSession. Cette politique permet également de créer une AWS Glue séance interactive d'un bloc-notes uniquement si une clé d'identification « propriétaire » et une valeur correspondant à AWS l'identifiant utilisateur du principal. Cette politique rejette l'autorisation de modifier ou de supprimer une identification « propriétaire » d'une ressource de séance AWS Glue après la création de la séance. Cette politique inclut également des autorisations pour écrire et lire à partir de compartiments Amazon S3, écrire des journaux CloudWatch Logs, créer et supprimer des identifications pour les ressources Amazon EC2 utilisées par AWS Glue.
Rendre votre session privée avec les politiques utilisateur
Vous pouvez
attacher la politique AWSGlueSessionUserRestrictedPolicy aux rôles IAM attachés à chacun des utilisateurs de votre compte afin de les restreindre à créer une session uniquement avec une balise propriétaire correspondant à leur propre ${aws:userId}. Au lieu d'utiliser AWSGlueSessionUserRestrictedNotebookPolicy et AWSGlueSessionUserRestrictedNotebookServiceRole, vous devez utiliser des politiques similaires à AWSGlueSessionUserRestrictedPolicy et AWSGlueSessionUserRestrictedServiceRole, respectivement. Pour plus d'informations, consultez Using-identity based policies. Cette politique réduit l'accès à une session uniquement au créateur, l'${aws:userId} de l'utilisateur qui a créé la session avec la balise propriétaire portant son propre ${aws:userId}. Si vous avez créé vous-même le rôle d'exécution à l'aide de la console IAM en suivant les étapes décrites dans Paramétrer un rôle d'exécution, après avoir attaché la politique gérée AWSGlueSessionUserRestrictedPolicy, attachez également la politique en ligne suivante à chacun des utilisateurs IAM de votre compte pour autoriser iam:PassRole pour le rôle d'exécution que vous avez créé précédemment.
AWSGlueSessionUserRestrictedPolicy
La politique AWSGlueSessionUserRestrictedPolicy fournit l'accès à la création d'une session interactive AWS Glue à l'aide de l'API CreateSession uniquement si une clé de balise « propriétaire » et une valeur correspondant à celle de l'identifiant utilisateur AWS sont fournies. Cette politique d'identité est attachée à l'utilisateur qui appelle l'API CreateSession. Cette politique autorise également l'interaction avec les ressources de séance interactive AWS Glue créées avec une identification « propriétaire » et une valeur correspondant à leur identifiant utilisateur AWS. Cette politique rejette l'autorisation de modifier ou de supprimer les identifications « propriétaire » d'une ressource de séance AWS Glue après la création de la séance.
AWSGlueSessionUserRestrictedServiceRole
Le paramètre AWSGlueSessionUserRestrictedServiceRole fournit un accès complet à toutes les ressources AWS Glue à l'exception des séances et autorise les utilisateurs à créer et à utiliser uniquement les séances interactives associées à l'utilisateur. Cette politique inclut également d'autres autorisations requises par AWS Glue pour gérer les ressources Glue dans d'autres services AWS. La politique autorise également l'ajout d'identifications aux ressources AWS Glue dans d'autres services AWS.
Considérations de politique IAM
Les séances interactives sont des ressources IAM dans AWS Glue. Étant donné qu'il s'agit de ressources IAM, l'accès et l'interaction à une séance sont régis par des politiques IAM. Sur la base des politiques IAM attachées à un client principal ou à un rôle d'exécution configuré par un administrateur, un client principal (utilisateur ou rôle) pourra créer de nouvelles séances et interagir avec ses propres séances et d'autres séances.
Si un administrateur a attaché une politique IAM, comme AWSGlueConsoleFullAccess ou AWSGlueServiceRole qui permettent d'accéder à toutes les ressources AWS Glue de ce compte, un principal de client pourra collaborer avec d'autres. Par exemple, un utilisateur sera en mesure d'interagir avec des séances créées par d'autres utilisateurs si les politiques l'autorisent.
Si vous souhaitez configurer une politique adaptée à vos besoins spécifiques, veuillez consulter la documentation IAM sur la configuration des ressources pour une politique. Par exemple, afin d'isoler les sessions appartenant à un utilisateur, vous pouvez utiliser la fonctionnalité TagOnCreate prise en charge par les sessions interactives AWS Glue. Consultez Rendez votre séance privée avec TagOnCreate .
Les sessions interactives prennent en charge la limitation de la création de sessions sur la base de certaines conditions VPC. Consultez Contrôler des politiques qui contrôlent les paramètres à l'aide des clés de condition.