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.
Configurez les autorisations pour activer la mise en vente et le lancement des applications Amazon EMR depuis Studio SageMaker
Dans cette section, nous détaillons les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis SageMaker Studio, en prenant en compte les scénarios dans lesquels Studio et les applications EMR Serverless sont déployés dans le même AWS compte ou sur différents comptes.
Les rôles auxquels vous devez ajouter les autorisations nécessaires varient selon que Studio et vos applications EMR Serverless résident sur le même AWS compte (compte unique) ou sur des comptes distincts (comptes croisés). Deux types de rôles sont concernés :
-
Rôle d’exécution :
-
Rôles d'exécution d'exécution (rôles de contrôle d'accès basés sur les rôles) utilisés par EMR Serverless : il s'agit des rôles IAM utilisés par les environnements d'exécution de tâches EMR Serverless pour accéder à d'autres AWS services et ressources nécessaires pendant l'exécution, tels qu'Amazon S3 pour l'accès aux données, pour la journalisation, l'accès au catalogue de données ou à d'autres services en fonction de AWS Glue vos exigences en matière de charge de travail. CloudWatch Nous vous recommandons de créer ces rôles dans le compte sur lequel les applications EMR sans serveur sont exécutées.
Pour en savoir plus sur les rôles d’exécution, consultez Rôles d’exécution des tâches dans le Guide de l’utilisateur EMR sans serveur.
Note
Vous pouvez définir plusieurs rôles RBAC pour votre application EMR sans serveur. Ces rôles peuvent être basés sur les responsabilités et les niveaux d’accès requis par les différents utilisateurs ou groupes au sein de votre organisation. Pour plus d’informations sur les autorisations RBAC, consultez Bonnes pratiques de sécurité pour Amazon EMR sans serveur.
-
SageMaker Rôle d'exécution de l'IA : rôle d'exécution permettant à l' SageMaker IA d'effectuer certaines tâches, telles que la lecture de données à partir de compartiments Amazon S3, l'écriture de journaux et l'accès à CloudWatch d'autres AWS services dont votre flux de travail pourrait avoir besoin. Le rôle d'exécution SageMaker AI dispose également de l'autorisation spéciale appelée
iam:PassRolequi permet à l' SageMaker IA de transmettre des rôles d'exécution temporaires aux applications EMR Serverless. Ces rôles confèrent aux applications EMR Serverless les autorisations dont elles ont besoin pour interagir avec d'autres AWS ressources pendant leur exécution.
-
-
Rôles assumables (également appelés rôles d’accès aux services) :
-
Il s'agit des rôles IAM que le rôle d'exécution de l' SageMaker IA peut assumer pour effectuer des opérations liées à la gestion des applications EMR sans serveur. Ces rôles définissent les autorisations et les stratégies d’accès requises lors de l’établissement de la liste, de la connexion ou de la gestion des applications EMR sans serveur. Ils sont généralement utilisés dans des scénarios entre comptes, dans lesquels les applications EMR Serverless sont situées dans un compte AWS différent de celui SageMaker du domaine AI. Le fait de disposer d'un rôle IAM dédié pour vos applications EMR sans serveur permet de respecter le principe du moindre privilège et de garantir qu'Amazon EMR dispose uniquement des autorisations requises pour exécuter vos tâches tout en protégeant les autres ressources de votre compte. AWS
-
En comprenant et en configurant correctement ces rôles, vous pouvez vous assurer que SageMaker Studio dispose des autorisations nécessaires pour interagir avec les applications EMR Serverless, qu'elles soient déployées dans le même compte ou sur différents comptes.
Compte unique
Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans le même compte. AWS
Si vos applications Amazon EMR et Studio sont déployés sur le même AWS compte, procédez comme suit :
-
Étape 1 : extrayez l’ARN du compartiment Amazon S3 que vous utilisez pour les sources de données et le stockage des données de sortie dans la console Amazon S3
. Pour savoir comment trouver un compartiment par son nom, consultez Accès à un compartiment Amazon S3 et établissement de la liste des compartiments. Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez Création d’un compartiment.
-
Étape 2 : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (
EMRServerlessRuntimeExecutionRoleAdans le schéma du cas d’utilisation Compte unique ci-dessus). Choisissez Politique d’approbation personnalisée comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :
-
Accédez à la Console IAM
. -
Dans le volet de navigation de gauche, choisissez Politique, puis Créer une politique.
-
Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez Créer une politique.
Vous pouvez consulter Rôles d’exécution des tâches pour EMR sans serveur pour trouver des exemples de politiques d’exécution pour un rôle d’exécution EMR sans serveur.
-
Dans le volet de navigation de gauche, choisissez Rôles, puis Créer un rôle.
-
Sur la page Créer un rôle, choisissez Politique d’approbation personnalisée comme entité de confiance.
-
Collez le document JSON suivant dans la section Politique d’approbation personnalisée, puis choisissez Suivant.
-
Dans la page Ajouter des autorisations, ajoutez la politique que vous avez créée, puis choisissez Suivant.
-
Sur la page Vérifier, entrez un nom pour le rôle, tel que
EMRServerlessAppRuntimeRoleA, et une description facultative. -
Passez en revue les détails du rôle, puis choisissez Créer un rôle.
Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
Note
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.
-
-
Étape 3 : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé.
Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultezComprendre les autorisations d’espace de domaine et les rôles d’exécution.
Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultezObtention de votre rôle d’exécution.
Note
Les utilisateurs qui découvrent l' SageMaker IA peuvent également simplifier leur processus de configuration en créant automatiquement un nouveau rôle d'exécution de l' SageMaker IA avec les autorisations appropriées. Dans ce cas, passez aux étapes 3 et 4. À la place, les utilisateurs peuvent :
-
Choisissez l'option Configurer pour les organisations lors de la création d'un nouveau domaine dans le menu Domaine dans le menu de navigation de gauche de la console SageMaker AI
. -
créer un nouveau rôle d’exécution à partir du menu Gestionnaire de rôles de la console, puis associer le rôle à un domaine ou à un profil utilisateur existant.
Lors de la création du rôle, choisissez l’option Exécuter les applications EMR sans serveur de Studio dans Quelles activités ML les utilisateurs effectueront-ils ? Indiquez ensuite le nom de votre compartiment Amazon S3 et le rôle d’exécution des tâches que vous souhaitez que votre application EMR sans serveur utilise (étape 2).
Le gestionnaire de rôles ajoute automatiquement au nouveau SageMaker rôle d'exécution les autorisations nécessaires pour exécuter et se connecter aux applications EMR Serverless au nouveau SageMaker rôle d'exécution. À l'aide du gestionnaire de rôles, vous ne pouvez attribuer qu'un seul rôle d'exécution à votre application EMR Serverless, et l'application doit s'exécuter sur le même compte où Studio est déployé, à l'aide d'un rôle d'exécution créé dans ce même compte.
-
-
Étape 4 : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.
-
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/sagemaker/
. -
Choisissez Rôles, puis recherchez votre rôle d’exécution par son nom dans le champ Rechercher. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/).
-
Suivez le lien correspondant à votre rôle.
-
Choisissez Ajouter des autorisations, puis Créer une politique en ligne.
-
Dans l’onglet JSON, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez Politiques EMR sans serveur dans Politiques de référence. Remplacez
region,accountIDet le ou les élémentsEMRServerlessAppRuntimeRoletransmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.Note
Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules.
-
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Create Policy (Créer une politique).
-
Répétez l’étape Créer une politique en ligne pour ajouter une autre politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique
SageMakerUpdateResourcesPolicy, consultez Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces dans Politiques de référence. RemplacezregionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.
-
-
Étape 5 :
Associez la liste des rôles d'exécution à votre profil utilisateur ou à votre domaine afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la connexion à une application EMR Serverless depuis. JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
Important
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.
Compte croisé
Les diagrammes suivants illustrent les rôles et les autorisations nécessaires pour répertorier et se connecter aux applications EMR Serverless depuis Studio lorsque Studio et les applications sont déployés dans différents comptes. AWS
Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez la section https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html Création d'un rôle IAM (console).
Avant de commencer :
-
Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace privé. Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultezComprendre les autorisations d’espace de domaine et les rôles d’exécution. Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultezObtention de votre rôle d’exécution.
-
Extrayez l’ARN du compartiment Amazon S3 que vous utiliserez pour les sources de données et le stockage des données de sortie dans la console Amazon S3
. Pour obtenir des informations sur la création d’un compartiment Amazon S3, consultez Création d’un compartiment. Pour savoir comment trouver un compartiment par son nom, consultez Accès à un compartiment Amazon S3 et établissement de la liste des compartiments.
Si Studio et vos applications EMR sans serveur sont déployés dans des comptes AWS distincts, vous configurez les autorisations sur les deux comptes.
Sur le compte EMR sans serveur
Procédez comme suit pour créer les rôles et les politiques nécessaires sur le compte où votre application EMR sans serveur s’exécute, également appelé compte d’approbation :
-
Étape 1 : créez au moins un rôle d’exécution de tâches pour votre application EMR sans serveur dans votre compte (
EMRServerlessRuntimeExecutionRoleBdans le diagramme Compte croisé ci-dessus). Choisissez Politique d’approbation personnalisée comme entité de confiance. Ajoutez les autorisations requises par votre tâche. Au minimum, vous avez besoin d'un accès complet à un compartiment Amazon S3, ainsi que d'un accès en création et en lecture au catalogue de AWS Glue données.Pour obtenir des instructions détaillées sur la façon de créer un nouveau rôle d’exécution à l’exécution pour vos applications EMR sans serveur, procédez comme suit :
-
Accédez à la Console IAM
. -
Dans le volet de navigation de gauche, choisissez Politique, puis Créer une politique.
-
Ajoutez les autorisations requises par votre rôle d’exécution, nommez la politique, puis choisissez Créer une politique.
Pour des exemples de politiques d’exécution d’un rôle d’exécution EMR sans serveur, consultez Rôles d’exécution de tâches pour Amazon EMR sans serveur.
-
Dans le volet de navigation de gauche, choisissez Rôles, puis Créer un rôle.
-
Sur la page Créer un rôle, choisissez Politique d’approbation personnalisée comme entité de confiance.
-
Collez le document JSON suivant dans la section Politique d’approbation personnalisée, puis choisissez Suivant.
-
Dans la page Ajouter des autorisations, ajoutez la politique que vous avez créée, puis choisissez Suivant.
-
Sur la page Vérifier, entrez un nom pour le rôle, tel que
EMRServerlessAppRuntimeRoleB, et une description facultative. -
Passez en revue les détails du rôle, puis choisissez Créer un rôle.
Grâce à ces rôles, vous et vos collègues pouvez vous connecter à la même application, chacun utilisant un rôle d’exécution assorti d’autorisations correspondant à votre niveau individuel d’accès aux données.
Note
Les sessions Spark fonctionnent différemment. Les sessions Spark sont isolées en fonction du rôle d’exécution utilisé depuis Studio, de sorte que les utilisateurs ayant des rôles d’exécution différents auront des sessions Spark distinctes et isolées. En outre, si vous avez activé l’identité source pour votre domaine, les sessions Spark sont davantage isolées entre les différentes identités sources.
-
-
Étape 2 : créez un rôle IAM personnalisé nommé
AssumableRoleavec la configuration suivante :-
Autorisations : accordez les autorisations nécessaires (politiques Amazon EMR sans serveur) à
AssumableRolepour autoriser l’accès aux ressources EMR sans serveur. Ce rôle est également connu en tant que rôle d’accès. -
Relation de confiance : configurez la politique d’approbation pour
AssumableRoleafin de permettre d’assumer le rôle d’exécution (SageMakerExecutionRoledans le diagramme entre comptes) depuis le compte Studio qui nécessite un accès.
En assumant ce rôle, Studio peut obtenir un accès temporaire aux autorisations dont il a besoin dans le compte EMR sans serveur.
Pour obtenir des instructions détaillées sur la façon de créer un nouveau compte
AssumableRoledans votre AWS compte EMR Serverless, procédez comme suit :-
Accédez à la Console IAM
. -
Dans le volet de navigation de gauche, choisissez Politique, puis Créer une politique.
-
Dans l’onglet JSON, ajoutez les autorisations Amazon EMR sans serveur permettant l’accès et les opérations EMR sans serveur. Pour plus de détails sur le document de politique, consultez Politiques EMR sans serveur dans Politiques de référence. Remplacez
region,accountIDet le ou les élémentsEMRServerlessAppRuntimeRoletransmis par leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle.Note
L’élément
EMRServerlessAppRuntimeRoleici est le rôle d’exécution de tâches créé à l’étape 1 (EMRServerlessAppRuntimeRoleBdans le diagramme Compte croisé ci-dessus). Vous pouvez inclure autant de chaînes ARN de rôles d’exécution que nécessaire dans l’autorisation, en les séparant par des virgules. -
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Create Policy (Créer une politique).
-
Dans le volet de navigation de gauche, choisissez Rôles, puis Créer un rôle.
-
Sur la page Créer un rôle, choisissez Politique d’approbation personnalisée comme entité de confiance.
-
Collez le document JSON suivant dans la section Politique d’approbation personnalisée, puis choisissez Suivant.
studio-accountRemplacez-le par l'ID du compte Studio etAmazonSageMaker-ExecutionRolepar le rôle d'exécution utilisé par votre JupyterLab espace. -
Dans la page Ajouter des autorisations, ajoutez l’autorisation
EMRServerlessAppRuntimeRoleBque vous avez créée à l’étape 2, puis choisissez Suivant. -
Sur la page Vérifier, entrez un nom pour le rôle, tel que
AssumableRole, et une description facultative. -
Passez en revue les détails du rôle, puis choisissez Créer un rôle.
Pour plus d'informations sur la création d'un rôle sur un AWS compte, consultez la section Création d'un rôle IAM (console).
-
Sur le compte Studio
Sur le compte sur lequel Studio est déployé, également appelé compte sécurisé, mettez à jour le rôle d'exécution SageMaker AI accédant à vos applications EMR Serverless avec les autorisations requises pour accéder aux ressources du compte de confiance.
-
Étape 1 : Récupérez l'ARN du rôle d'exécution SageMaker AI utilisé par votre espace.
Pour plus d'informations sur les espaces et les rôles d'exécution dans SageMaker l'IA, consultezComprendre les autorisations d’espace de domaine et les rôles d’exécution.
Pour plus d'informations sur la façon de récupérer l'ARN du rôle d'exécution de l' SageMaker IA, consultezObtention de votre rôle d’exécution.
-
Étape 2 : Attachez les autorisations suivantes au rôle d'exécution SageMaker AI accédant à votre application EMR Serverless.
-
Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/
. -
Choisissez Rôles, puis recherchez votre rôle d’exécution par son nom dans le champ Rechercher. Le nom du rôle est la dernière partie de l’ARN, après la dernière barre oblique (/).
-
Suivez le lien correspondant à votre rôle.
-
Choisissez Ajouter des autorisations, puis Créer une politique en ligne.
-
Dans l’onglet JSON, ajoutez la politique en ligne accordant au rôle les autorisations nécessaires pour mettre à jour les domaines, les profils utilisateur et les espaces. Pour plus de détails sur le document de politique
SageMakerUpdateResourcesPolicy, consultez Politique relative aux actions de mise à jour des domaines, des profils utilisateur et des espaces dans Politiques de référence. RemplacezregionetaccountIDpar leurs valeurs réelles avant de copier la liste des instructions dans la politique en ligne de votre rôle. -
Choisissez Suivant, puis fournissez un nom de politique.
-
Choisissez Create Policy (Créer une politique).
-
Répétez l’étape Créer une politique en ligne pour ajouter une autre politique accordant au rôle d’exécution les autorisations permettant d’assumer
AssumableRolepuis d’exécuter les actions autorisées par la stratégie d’accès du rôle.Remplacez
emr-accountpar l’ID du compte Amazon EMR sans serveur etAssumableRolepar le nom du rôle assumable créé dans le compte Amazon EMR sans serveur.
-
-
Étape 3 :
Associez la liste des rôles d'exécution à votre domaine ou à votre profil utilisateur afin de pouvoir parcourir visuellement la liste des rôles et sélectionner celui à utiliser lors de la connexion à une application EMR Serverless depuis. JupyterLab Vous pouvez utiliser la console SageMaker AI ou le script suivant. Par la suite, toutes vos tâches Apache Spark ou Apache Hive créées à partir de votre bloc-notes accéderont uniquement aux données et aux ressources autorisées par les politiques attachées au rôle d’exécution sélectionné.
Important
Si vous n'effectuez pas cette étape, vous ne pourrez pas connecter un JupyterLab bloc-notes à une application EMR Serverless.
Politiques de référence
-
Politiques EMR sans serveur : cette politique permet de gérer les applications EMR sans serveur, notamment de les répertorier, de les créer (avec les balises SageMaker AI requises), de les démarrer, de les arrêter, d'obtenir des informations, de les supprimer, d'accéder aux points de terminaison Livy et de créer des tableaux de bord d'exécution des tâches. Cela permet également de transmettre le rôle d’exécution d’application EMR sans serveur requis au service.
-
EMRServerlessListApplications: autorise l' ListApplications action sur toutes les ressources EMR Serverless de la région et du compte spécifiés. AWS -
EMRServerlessPassRole: Permet de transmettre le ou les rôles d'exécution spécifiés dans le AWS compte fourni, mais uniquement lorsque le rôle est transmis auemr-serverless.amazonaws.com service. -
EMRServerlessCreateApplicationAction: autorise les TagResource actions CreateApplication et sur les ressources EMR sans serveur dans la région et le compte spécifiés. AWS Toutefois, cela nécessite que les ressources créées ou balisées aient des clés de balise spécifiques (sagemaker:domain-arn,sagemaker:user-profile-arnetsagemaker:space-arn) présentes avec des valeurs non null. -
EMRServerlessDenyTaggingAction: les UntagResource actions TagResource et sur les ressources EMR Serverless dans la région et le AWS compte spécifiés si aucune des clés de balise spécifiées (sagemaker:domain-arn,sagemaker:user-profile-arn, etsagemaker:space-arn) n'est définie pour les ressources. -
EMRServerlessActions: autorise diverses actions (StartApplication,StopApplication,GetApplication,DeleteApplication,AccessLivyEndpointsetGetDashboardForJobRun) sur les ressources EMR sans serveur, mais uniquement si les clés de balise spécifiées (sagemaker:domain-arn,sagemaker:user-profile-arnetsagemaker:space-arn) des ressources sont définies avec des valeurs non null.
La politique IAM définie dans le document JSON fourni accorde ces autorisations, mais limite cet accès à la présence de balises SageMaker AI spécifiques sur les applications EMR Serverless afin de garantir que seules les ressources Amazon EMR Serverless associées à un domaine AI, un profil utilisateur et un espace SageMaker particuliers peuvent être gérées.
-
-
Politique relative aux actions de mise à jour du domaine, du profil utilisateur et de l'espace : La politique suivante autorise la mise à jour des domaines SageMaker AI, des profils utilisateur et des espaces dans la région et le AWS compte spécifiés.