Sessions interactives avec IAM - AWS Glue

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.

Sessions interactives avec IAM

Ces sections décrivent les considérations relatives à la sécurité AWS Glue Sessions interactives.

IAMprincipaux utilisés avec des séances interactives

Vous utilisez deux IAM principes utilisés avec AWS Glue Sessions interactives.

  • Client principal : Le principal client (un utilisateur ou un rôle) autorise les API opérations pour les séances interactives à partir d'un AWS Glue client configuré avec les informations d'identification basées sur l'identité du principal. Il peut s'agir par exemple d'un IAM rôle que vous utilisez généralement pour accéder au AWS Glue console. Il peut s'agir également d'un rôle accordé à un utilisateur IAM dont les informations d'identification sont utilisées pour AWS Command Line InterfaceAWS Glue client utilisé par les sessions interactives du noyau Jupyter.

  • Rôle d'exécution : Le rôle d'exécution est un IAM rôle que le principal client transmet aux API opérations des séances interactives. AWS Glue utilise ce rôle pour exécuter des instructions dans votre session. Par exemple, ce rôle peut être celui utilisé pour exécuter AWS Glue ETLemplois.

    Pour de plus amples informations, veuillez consulter 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 les séances interactivesAPI. Ce rôle doit avoir iam:PassRole un accès au rôle d'exécution que vous devez transmettre aux séances interactivesAPI, tel queCreateSession. Par exemple, vous pouvez attacher la politique AWSGlueConsoleFullAccessgérée à un IAM rôle 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 IAM rôles spécifiques, comme ceux associés à l'utilisateur qui a créé la séance, vous pouvez utiliser AWS Glue Le contrôle d'autorisation basé sur les balises de la session interactive a été 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 une identification 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 la rubrique Politiques basées sur l'identité AWS Glue.

Paramétrer un rôle d'exécution

Vous devez transmettre un IAM rôle à l' CreateSession APIopération afin d'autoriser AWS Glue pour assumer et exécuter des instructions dans des sessions interactives. Le rôle doit avoir les mêmes IAM autorisations que celles requises pour exécuter une AWS Glue travail. Par exemple, vous pouvez créer un rôle de service à l'aide de la AWSGlueServiceRolepolitique qui autorise AWS Glue pour appeler AWS les services en votre nom. Si vous utilisez le plugin AWS Glue console, il créera automatiquement un rôle de service en votre nom ou en utilisera un existant. Vous pouvez également créer votre propre IAM rôle et attacher votre propre IAM politique pour autoriser des autorisations similaires.

Si vous souhaitez protéger votre séance et la rendre privée uniquement pour l'utilisateur qui a créé la séance, vous pouvez utiliser AWS Glue Le contrôle d'autorisation basé sur les balises de la session interactive a été 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 une identification 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 Glue AWS. Si vous créez vous-même le rôle d'exécution à partir de la IAM console et que vous souhaitez rendre votre service privé avec TagOnCreate une fonction, suivez les étapes ci-dessous.

  1. Créez un IAM rôle dont le type de rôle est défini surGlue.

  2. Attachez ceci AWS Glue politique gérée : AwsGlueSessionUserRestrictedServiceRole

  3. 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 et attacher AWS Glue politique gérée AwsGlueSessionUserRestrictedServiceRole.

  4. Attachez une politique d'approbation telle que la politique suivante pour autoriser AWS Glue pour endosser le rôle :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }

Pour un noyau Jupyter de séances interactives, vous pouvez spécifier la iam_role clé dans votre AWS Command Line Interface profil. Pour de plus amples informations, veuillez consulter Configuration de séances avec ~/.aws/config (langue Français non garantie). Si vous interagissez avec des sessions interactives à l'aide d'un AWS Glue bloc-notes, puis vous pouvez passer le rôle d'exécution dans la %iam_role magie dans la première cellule que vous exécutez.

Rendez votre séance privée avec TagOnCreate

AWS Glue Les séances interactives prennent en charge le balisage et l'autorisation basée sur les TBAC identifications () pour les séances interactives en tant que ressource nommée. En plus d'TBACutiliser TagResource et UntagResource APIs, AWS Glue Les séances interactives prennent en charge la TagOnCreate fonction de « étiqueter » une séance avec une identification donnée uniquement pendant la création et l' CreateSession exploitation de la séance. 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 IAM politique avec « propriétaire » RequestTag et la valeur $ {aws :userId} à un principal 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 des appelants userId est fournie en tant que userId balise dans la CreateSession demande. Cette politique permet AWS Glue Sessions interactives pour créer une ressource de séance et étiqueter la séance avec l' userId identification 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 IAM politique avec « propriétaire » ResourceTag au rôle d'exécution que vous avez transmis pendant la séance CreateSession.

Afin de faciliter l'utilisation de la TagOnCreate fonction permettant de rendre une séance privée au créateur de séance, AWS Glue fournit des politiques gérées et des rôles de service spécialisés.

Si vous souhaitez créer une AWS Glue Session interactive utilisant un IAM AssumeRole principal (c'est-à-dire en utilisant des informations d'identification fournies en endossant un IAM rôle) et vous souhaitez rendre la séance privée pour le créateur, puis utiliser des politiques similaires à AWSGlueSessionUserRestrictedNotebookPolicyet AWSGlueSessionUserRestrictedNotebookServiceRolerespectivement. Ces politiques permettent AWS Glue pour utiliser $ {aws :PrincipalTag} pour extraire la valeur de l'identification propriétaire. Cela nécessite que vous transmettiez une userId identification avec la valeur $ {aws :userId} comme SessionTag dans l'identifiant endosser le rôle. Voir Balises d’identification de séance . Si vous utilisez une EC2 instance Amazon 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'EC2instance Amazon, vous devez transmettre une userId identification avec la valeur $ {aws :userId} comme 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 IAM AssumeRole principale et que vous souhaitez rendre votre service privé avec TagOnCreate une fonction, suivez les étapes ci-dessous.

  1. Créez vous-même un rôle d'exécution à partir de la IAM console. Attachez ceci AWS Glue stratégie gérée AwsGlueSessionUserRestrictedNotebookServiceRoleet préfixez le nom du rôle par le nom de la politique. AwsGlueSessionUserRestrictedNotebookServiceRole Par exemple, vous pouvez créer un rôle avec un nom AwsGlueSessionUserRestrictedNotebookServiceRole-myrole et attacher AWS Glue politique gérée AwsGlueSessionUserRestrictedNotebookServiceRole.

  2. Attachez une politique de confiance telle que celle ci-dessous pour autoriser AWS Glue pour assumer le rôle ci-dessus.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }
  3. Créez un autre rôle nommé avec un préfixe AwsGlueSessionUserRestrictedNotebookPolicyet attachez le AWS Glue politique gérée AwsGlueSessionUserRestrictedNotebookPolicypour 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éé à l'étape 1.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedNotebookServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } } ] }
  4. Attachez une politique de confiance telle que la suivante IAM AWS Glue pour endosser le rôle.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] }] }
    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 AwsGlueSessionUserRestrictedNotebookServiceRoleet AwsGlueSessionUserRestrictedNotebookPolicy. Attachez également la politique en ligne supplémentaire pour autoriser iam:passrole votre rôle AWS Glue. Et enfin, attachez la politique de confiance ci-dessus pour autoriser sts:AssumeRole etsts:TagSession.

AWSGlueSessionUserRestrictedNotebookPolicy

AWSGlueSessionUserRestrictedNotebookPolicy Permet de créer un AWS Glue Séance interactive d'un bloc-notes uniquement si une clé d'identification « propriétaire » et une valeur correspondant à l'identifiant AWS utilisateur 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 AWS Glue Carnets de séances interactives de AWS Glue Studio. Cette politique permet également un accès suffisant au AWS Glue Studio bloc-notes pour interagir avec le AWS Glue Studio Ressources de séance interactive créées avec la valeur de balise « propriétaire » correspondant à l'ID AWS utilisateur du principal. Cette politique rejette l'autorisation de modifier ou de supprimer une identification « propriétaire » d'une AWS Glue ressource de session après la création de la session.

AWSGlueSessionUserRestrictedNotebookServiceRole

AWSGlueSessionUserRestrictedNotebookServiceRoleIl fournit un accès suffisant au AWS Glue Studio bloc-notes pour interagir avec le AWS Glue Ressources de séance interactive créées avec la valeur de balise « propriétaire » correspondant à l'ID AWS utilisateur 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 magie à un bloc-notes ou transmis en tant que rôle d'exécution au. CreateSession API Cette politique permet également de créer un AWS Glue Séance interactive d'un bloc-notes uniquement si une clé d'identification « propriétaire » et une valeur correspondant à l'identifiant AWS utilisateur du principal. Cette politique rejette l'autorisation de modifier ou de supprimer une identification « propriétaire » d'une AWS Glue ressource de session après la création de la session. Cette politique inclut également des autorisations pour écrire et lire à partir de compartiments Amazon S3, écrire CloudWatch des journaux, créer et supprimer des balises pour les EC2 ressources Amazon utilisées par AWS Glue.

Rendre votre session privée avec les politiques utilisateur

Vous pouvez attacher les AWSGlueSessionUserRestrictedPolicydeux IAM rôles attachés à chacun des utilisateurs de votre compte afin de les restreindre à créer une séance uniquement avec une balise propriétaire correspondant à leur propre $ {aws :userId}. Au lieu d'utiliser le AWSGlueSessionUserRestrictedNotebookPolicyet, AWSGlueSessionUserRestrictedNotebookServiceRolevous devez utiliser des politiques similaires à AWSGlueSessionUserRestrictedPolicyet AWSGlueSessionUserRestrictedServiceRolerespectivement. Pour plus d'informations, consultez Using-identity based policies. Cette politique réduit l'accès à une séance uniquement au créateur, l' $ {aws :userId} de l'utilisateur qui a créé la séance 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 IAM console en suivant les étapes décrites dansParamétrer un rôle d'exécution, après avoir attaché la politique AwsGlueSessionUserRestrictedPolicygérée, attachez également la politique en ligne suivante à chacun des utilisateurs de votre compte iam:PassRole pour autoriser le rôle d'exécution que vous avez créé précédemment.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/AwsGlueSessionUserRestrictedServiceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "glue.amazonaws.com" ] } } }] }

AWSGlueSessionUserRestrictedPolicy

AWSGlueSessionUserRestrictedPolicyPermet de créer un AWS Glue Séance interactive CreateSession API uniquement si une clé d'identification « propriétaire » et une valeur correspondant à celle de AWS l'identifiant utilisateur est fournie. Cette politique d'identité est attachée à l'utilisateur qui appelle le CreateSession API. Cette politique permet également d'interagir avec AWS Glue Les ressources de séance interactive ont été créées avec une identification « propriétaire » et une valeur correspondant à leur identifiant AWS utilisateur. Cette politique rejette l'autorisation de modifier ou de supprimer une identification « propriétaire » d'une AWS Glue ressource de session après la création de la session.

AWSGlueSessionUserRestrictedServiceRole

AWSGlueSessionUserRestrictedServiceRoleIl fournit un accès complet à tous AWS Glue ressources à 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 AWS services. La stratégie autorise également l'ajout de balises AWS Glue ressources dans d'autres AWS services.

IAMconsidérations relatives aux politiques

Les sessions interactives sont IAM des ressources dans AWS Glue. Étant donné qu'il s'agit de IAM ressources, l'accès et l'interaction à une séance sont régis par IAM des politiques. Sur la base des IAM politiques 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 joint une IAM politique telle que AWSGlueConsoleFullAccess ou AWSGlueServiceRole qui autorise l'accès à tous AWS Glue En utilisant les ressources de ce compte, un principal de client pourra collaborer entre eux. 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 IAMla documentation sur la configuration des ressources pour une politique. Par exemple, afin d'isoler les séances appartenant à un utilisateur, vous pouvez utiliser la TagOnCreate fonctionnalité prise en charge par AWS Glue Sessions interactives Consultez Rendez votre séance privée avec TagOnCreate .

Les séances interactives prennent en charge la limitation de la création de sessions sur la base de certaines VPC conditions. Consultez Contrôler des politiques qui contrôlent les paramètres à l'aide des clés de condition.