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.
Configurer les autorisations utilisateur de EMR Studio pour Amazon EC2 ou Amazon EKS
Vous devez configurer les politiques d'autorisation utilisateur pour Amazon EMR Studio afin de pouvoir définir des autorisations précises pour les utilisateurs et les groupes. Pour plus d'informations sur le fonctionnement des autorisations utilisateur dans EMR Studio, voir Contrôle d'accès dansComment fonctionne Amazon EMR Studio.
Note
Les autorisations abordées dans cette section n'appliquent pas le contrôle d'accès aux données. Pour gérer l'accès aux jeux de données d'entrée, vous devez configurer les autorisations pour les clusters utilisés par votre Studio. Pour de plus amples informations, veuillez consulter Sécurité sur Amazon EMR.
Création d'un rôle d'utilisateur EMR Studio pour le mode d'authentification IAM Identity Center
Vous devez créer un rôle d'utilisateur EMR Studio lorsque vous utilisez le mode d'authentification IAM Identity Center.
Pour créer un rôle d'utilisateur pour EMR Studio
-
Suivez les instructions de la section Création d'un rôle pour déléguer des autorisations à un AWS service dans le Guide de AWS Identity and Access Management l'utilisateur pour créer un rôle utilisateur.
Utilisez la politique de relation d’approbation suivante lorsque vous créez le rôle.
{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
-
Supprimez les autorisations et les politiques de rôle par défaut.
-
Avant d'attribuer des utilisateurs et des groupes à un studio, associez vos politiques de session EMR Studio au rôle d'utilisateur. Pour obtenir des instructions sur la création de politiques de session, consultez Création de politiques d'autorisations pour les utilisateurs de EMR Studio.
Création de politiques d'autorisations pour les utilisateurs de EMR Studio
Reportez-vous aux sections suivantes pour créer des politiques d'autorisation pour EMR Studio.
Rubriques
Note
Pour définir les autorisations d'accès Amazon S3 pour le stockage des fichiers de bloc-notes et pour définir les autorisations AWS Secrets Manager d'accès pour lire les secrets lorsque vous liez des espaces de travail à des référentiels Git, utilisez le rôle de service EMR Studio.
Création de politiques d’autorisations
Créez une ou plusieurs politiques d'IAMautorisation qui spécifient les actions qu'un utilisateur peut effectuer dans votre studio. Par exemple, vous pouvez créer trois politiques distinctes pour les utilisateurs basiques, intermédiaires et avancés de Studio à l’aide des exemples de politiques présentés sur cette page.
Pour une description détaillée de chaque opération Studio qu'un utilisateur peut effectuer, ainsi que IAM les actions minimales requises pour effectuer chaque opération, voirAWS Identity and Access Management autorisations pour les utilisateurs de EMR Studio. Pour connaître les étapes de création des politiques, voir Création de IAM politiques dans le guide de IAM l'utilisateur.
Votre politique d'autorisations doit inclure les déclarations suivantes.
{ "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::*:role/
your-emr-studio-service-role
" ], "Effect": "Allow" }
Définir la propriété pour la collaboration dans l'espace de travail
La collaboration dans l'espace de travail permet à plusieurs utilisateurs de travailler simultanément dans le même espace de travail et peut être configurée à l'aide du panneau Collaboration de l'interface utilisateur de l'espace de travail. Pour voir et utiliser le panneau Collaboration, un utilisateur doit disposer des autorisations suivantes. Tout utilisateur disposant de ces autorisations peut voir et utiliser le panneau Collaboration.
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Pour limiter l'accès au panneau Collaboration, vous pouvez utiliser le contrôle d'accès basé sur les balises. Lorsqu'un utilisateur crée un espace de travail, EMR Studio applique une balise par défaut avec une clé creatorUserId
dont la valeur est l'ID de l'utilisateur qui crée l'espace de travail.
Note
EMRStudio ajoute le creatorUserId
tag aux espaces de travail créés après le 16 novembre 2021. Pour limiter les personnes autorisées à configurer la collaboration pour les Workspaces créés avant cette date, nous vous recommandons d’ajouter manuellement la balise creatorUserId
à votre Workspace, puis d’utiliser le contrôle d’accès basé sur les balises dans vos politiques d’autorisations utilisateur.
L'exemple d'instruction suivant permet à un utilisateur de configurer la collaboration pour n'importe quel espace de travail avec la clé de balise creatorUserId
dont la valeur correspond à l'ID de l'utilisateur (indiqué par la variable de politique aws:userId
). En d'autres termes, l'instruction permet à un utilisateur de configurer la collaboration pour les espaces de travail qu'il crée. Pour en savoir plus sur les variables de stratégie, voir Éléments de IAM stratégie : variables et balises dans le Guide de IAM l'utilisateur.
{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}" } } }
Création d’une politique de secrets Git de niveau utilisateur
Rubriques
Pour utiliser les autorisations au niveau de l’utilisateur
EMRStudio ajoute automatiquement le for-use-with-amazon-emr-managed-user-policies
tag lorsqu'il crée des secrets Git. Si vous souhaitez contrôler l'accès aux secrets Git au niveau de l'utilisateur, ajoutez des autorisations basées sur des balises à la politique de rôle utilisateur de EMR Studio, secretsmanager:GetSecretValue
comme indiqué dans la Pour passer des autorisations au niveau du service à des autorisations au niveau de l’utilisateur section ci-dessous.
Si vous disposez d'autorisations existantes pour secretsmanager:GetSecretValue
la politique de rôles du service EMR Studio, vous devez les supprimer.
Pour passer des autorisations au niveau du service à des autorisations au niveau de l’utilisateur
Note
La balise for-use-with-amazon-emr-managed-user-policies
garantit que les autorisations de l’étape 1 ci-dessous accordent au créateur du Workspace l’accès au secret Git. Toutefois, si vous avez lié des référentiels Git avant le 1er septembre 2023, l’accès aux secrets Git correspondants sera refusé, car aucune balise for-use-with-amazon-emr-managed-user-policies
n’y est appliquée. Pour appliquer des autorisations au niveau utilisateur, vous devez recréer les anciens secrets à partir des référentiels Git appropriés JupyterLab et les lier à nouveau.
Pour plus d'informations sur les variables de stratégie, voir Éléments de IAM stratégie : variables et balises dans le Guide de IAM l'utilisateur.
-
Ajoutez les autorisations suivantes à la politique de rôle d'utilisateur de EMR Studio. La politique utilise la clé
for-use-with-amazon-emr-managed-user-policies
avec une valeur"${aws:
.userid
}"{ "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:*:*:
secret
:*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/for-use-with-amazon-emr-managed-user-policies": "${aws:userid
}" } } } -
Le cas échéant, supprimez l'autorisation suivante de la politique de rôle du service EMR Studio. La politique de fonction du service s’appliquant à tous les secrets définis par chaque utilisateur, vous ne devez effectuer cette opération qu’une seule fois.
{ "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:
secret
:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }
Pour utiliser les autorisations au niveau du service
À compter du 1er septembre 2023, EMR Studio ajoute automatiquement la for-use-with-amazon-emr-managed-user-policies
balise pour le contrôle d'accès au niveau utilisateur. Comme il s'agit d'une fonctionnalité supplémentaire, vous pouvez continuer à utiliser l'accès au niveau de service disponible via l'GetSecretValue
autorisation associée au rôle de service EMR Studio.
Pour les secrets créés avant le 1er septembre 2023, EMR Studio n'a pas ajouté le for-use-with-amazon-emr-managed-user-policies
tag. Pour continuer à utiliser les autorisations de niveau de service, il vous suffit de conserver votre rôle de service EMR Studio et vos autorisations de rôle utilisateur existants. Toutefois, pour limiter les personnes autorisées à accéder à un secret, nous vous recommandons de suivre les étapes de la rubrique Pour utiliser les autorisations au niveau de l’utilisateur pour ajouter manuellement la balise for-use-with-amazon-emr-managed-user-policies
à vos secrets, puis d’utiliser le contrôle d’accès basé sur les balises dans vos politiques d’autorisations utilisateur.
Pour plus d'informations sur les variables de stratégie, voir Éléments de IAM stratégie : variables et balises dans le Guide de IAM l'utilisateur.
Associez la politique d'autorisation à votre IAM identité
Le tableau suivant récapitule IAM l'identité à laquelle vous associez une politique d'autorisation, en fonction de votre mode d'authentification EMR Studio. Pour obtenir des instructions sur la façon d'associer une politique, consultez la section Ajouter et supprimer des autorisations IAM d'identité.
Si vous utilisez... | Attachez la politique à... |
---|---|
IAMauthentification | Vos IAM identités (utilisateurs, groupes d'utilisateurs ou rôles). Par exemple, vous pouvez attacher une politique d'autorisations à un utilisateur de votre Compte AWS. |
IAMfédération avec un fournisseur d'identité externe (IdP) |
Le IAM ou les rôles que vous créez pour votre IdP externe. Par exemple, une fédération IAM pour SAML 2.0. EMRStudio utilise les autorisations que vous attachez à vos IAM rôles pour les utilisateurs disposant d'un accès fédéré à un studio. |
IAMCentre d'identité | Votre rôle d'utilisateur Amazon EMR Studio. |
Exemple de politiques utilisateur
La politique utilisateur de base suivante autorise la plupart des actions de EMR Studio, mais ne permet pas à un utilisateur de créer de nouveaux EMR clusters Amazon.
Important
L'exemple de politique n'inclut pas l'CreateStudioPresignedUrl
autorisation que vous devez accorder à un utilisateur lorsque vous utilisez le mode IAM d'authentification. Pour de plus amples informations, veuillez consulter Affecter un utilisateur ou un groupe à un EMR studio.
L'exemple de politique inclut Condition
des éléments visant à appliquer le contrôle d'accès basé sur des balises (TBAC) afin que vous puissiez utiliser la politique avec l'exemple de rôle de service pour EMR Studio. Pour de plus amples informations, veuillez consulter Création d'un rôle de service EMR Studio.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect":"Allow", "Action":[ "ec2:CreateSecurityGroup" ], "Resource":[ "arn:aws:ec2:*:*:vpc/*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect":"Allow", "Action":[ "ec2:CreateTags" ], "Resource":"arn:aws:ec2:*:*:security-group/*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true", "ec2:CreateAction":"CreateSecurityGroup" } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/
<your-emr-studio-service-role>
" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>
-<region>
/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" } ] }
La politique utilisateur intermédiaire suivante autorise la plupart des actions de EMR Studio et permet à un utilisateur de créer de nouveaux EMR clusters Amazon à l'aide d'un modèle de cluster.
Important
L'exemple de politique n'inclut pas l'CreateStudioPresignedUrl
autorisation, que vous devez accorder à un utilisateur lorsque vous utilisez le mode IAM d'authentification. Pour de plus amples informations, veuillez consulter Affecter un utilisateur ou un groupe à un EMR studio.
L'exemple de politique inclut Condition
des éléments visant à appliquer le contrôle d'accès basé sur des balises (TBAC) afin que vous puissiez utiliser la politique avec l'exemple de rôle de service pour EMR Studio. Pour de plus amples informations, veuillez consulter Création d'un rôle de service EMR Studio.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*", "Effect":"Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:
<region>
:<account-id>
:/virtualclusters/<virtual-cluster-id>
/endpoints/<managed-endpoint-id>
" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>
:role/<emr-on-eks-execution-role>
" ] } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>
" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>
-<region>
/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/serverless-runtime-role
", "Effect": "Allow" } ] }
La politique utilisateur avancée suivante autorise toutes les actions de EMR Studio et permet à un utilisateur de créer de nouveaux EMR clusters Amazon à l'aide d'un modèle de cluster ou en fournissant une configuration de cluster.
Important
L'exemple de politique n'inclut pas l'CreateStudioPresignedUrl
autorisation, que vous devez accorder à un utilisateur lorsque vous utilisez le mode IAM d'authentification. Pour de plus amples informations, veuillez consulter Affecter un utilisateur ou un groupe à un EMR studio.
L'exemple de politique inclut Condition
des éléments visant à appliquer le contrôle d'accès basé sur des balises (TBAC) afin que vous puissiez utiliser la politique avec l'exemple de rôle de service pour EMR Studio. Pour de plus amples informations, veuillez consulter Création d'un rôle de service EMR Studio.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowEMRBasicActions", "Action":[ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateRepository", "elasticmapreduce:DescribeRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRContainersBasicActions", "Action":[ "emr-containers:DescribeVirtualCluster", "emr-containers:ListVirtualClusters", "emr-containers:DescribeManagedEndpoint", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeJobRun", "emr-containers:ListJobRuns" ], "Resource":"*", "Effect":"Allow" }, { "Sid": "AllowRetrievingManagedEndpointCredentials", "Effect": "Allow", "Action": [ "emr-containers:GetManagedEndpointSessionCredentials" ], "Resource": [ "arn:aws:emr-containers:
<region>
:<account-id>
:/virtualclusters/<virtual-cluster-id>
/endpoints/<managed-endpoint-id>
" ], "Condition": { "StringEquals": { "emr-containers:ExecutionRoleArn": [ "arn:aws:iam::<account-id>
:role/<emr-on-eks-execution-role>
" ] } } }, { "Sid":"AllowSecretManagerListSecrets", "Action":[ "secretsmanager:ListSecrets" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:CreateSecret", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition":{ "StringEquals":{ "aws:RequestTag/for-use-with-amazon-emr-managed-policies":"true" } } }, { "Sid":"AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect":"Allow", "Action":"secretsmanager:TagResource", "Resource":"arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid":"AllowClusterTemplateRelatedIntermediateActions", "Action":[ "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:SearchProducts", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:ListLaunchPaths", "servicecatalog:DescribeRecord", "cloudformation:DescribeStackResources" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowEMRCreateClusterAdvancedActions", "Action":[ "elasticmapreduce:RunJobFlow" ], "Resource":"*", "Effect":"Allow" }, { "Sid":"AllowPassingServiceRoleForWorkspaceCreation", "Action":"iam:PassRole", "Resource":[ "arn:aws:iam::*:role/<your-emr-studio-service-role>
", "arn:aws:iam::*:role/EMR_DefaultRole_V2", "arn:aws:iam::*:role/EMR_EC2_DefaultRole" ], "Effect":"Allow" }, { "Sid":"AllowS3ListAndLocationPermissions", "Action":[ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::*", "Effect":"Allow" }, { "Sid":"AllowS3ReadOnlyAccessToLogs", "Action":[ "s3:GetObject" ], "Resource":[ "arn:aws:s3:::aws-logs-<aws-account-id>
-<region>
/elasticmapreduce/*" ], "Effect":"Allow" }, { "Sid":"AllowConfigurationForWorkspaceCollaboration", "Action":[ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource":"*", "Effect":"Allow", "Condition":{ "StringEquals":{ "elasticmapreduce:ResourceTag/creatorUserId":"${aws:userId}" } } }, { "Sid" : "SageMakerDataWranglerForEMRStudio", "Effect" : "Allow", "Action" : [ "sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles" ], "Resource":"*" }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid":"ListIAMRoles", "Effect":"Allow", "Action":[ "iam:ListRoles" ], "Resource":"*" }, { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/serverless-runtime-role
", "Effect": "Allow" }, { "Sid": "AllowCodeWhisperer", "Effect": "Allow", "Action": [ "codewhisperer:GenerateRecommendations" ], "Resource": "*" }, { "Sid": "AllowAthenaSQL", "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetQueryExecution", "athena:GetQueryRuntimeStatistics", "athena:GetQueryResults", "athena:ListQueryExecutions", "athena:BatchGetQueryExecution", "athena:GetNamedQuery", "athena:ListNamedQueries", "athena:BatchGetNamedQuery", "athena:UpdateNamedQuery", "athena:DeleteNamedQuery", "athena:ListDataCatalogs", "athena:GetDataCatalog", "athena:ListDatabases", "athena:GetDatabase", "athena:ListTableMetadata", "athena:GetTableMetadata", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreateNamedQuery", "athena:GetPreparedStatement", "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:UpdateDatabase", "glue:CreateTable", "glue:DeleteTable", "glue:BatchDeleteTable", "glue:UpdateTable", "glue:GetTable", "glue:GetTables", "glue:BatchCreatePartition", "glue:CreatePartition", "glue:DeletePartition", "glue:BatchDeletePartition", "glue:UpdatePartition", "glue:GetPartition", "glue:GetPartitions", "glue:BatchGetPartition", "kms:ListAliases", "kms:ListKeys", "kms:DescribeKey", "lakeformation:GetDataAccess", "s3:GetBucketLocation", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutBucketPublicAccessBlock", "s3:ListAllMyBuckets" ], "Resource": "*", "Effect": "Allow" } ] }
La politique utilisateur suivante définit les autorisations utilisateur minimales requises pour utiliser une application interactive EMR sans serveur avec EMR Studio Workspaces.
Dans cet exemple de politique qui prévoit des autorisations utilisateur pour les applications interactives EMR sans serveur avec EMR Studio, remplacez les espaces réservés pour serverless-runtime-role
and emr-studio-service-role
avec votre rôle de service EMR Studio et votre rôle d'exécution EMR sans serveur appropriés.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowServerlessActions", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:UpdateApplication", "emr-serverless:DeleteApplication", "emr-serverless:ListApplications", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:StartJobRun", "emr-serverless:CancelJobRun", "emr-serverless:ListJobRuns", "emr-serverless:GetJobRun", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowEMRBasicActions", "Action": [ "elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:UpdateStudio", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:DeleteEditor", "elasticmapreduce:OpenEditorInConsole", "elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:CreateStudio", "elasticmapreduce:DescribeStudio", "elasticmapreduce:DeleteStudio", "elasticmapreduce:ListStudios", "elasticmapreduce:CreateStudioPresignedUrl" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowPassingRuntimeRoleForRunningEMRServerlessJob", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/
serverless-runtime-role
", "Effect": "Allow" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/emr-studio-service-role
", "Effect": "Allow" }, { "Sid": "AllowS3ListAndGetPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Sid":"DescribeNetwork", "Effect":"Allow", "Action":[ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource":"*" }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
AWS Identity and Access Management autorisations pour les utilisateurs de EMR Studio
Le tableau suivant inclut chaque opération Amazon EMR Studio qu'un utilisateur peut effectuer et répertorie les IAM actions minimales nécessaires pour effectuer cette opération. Vous autorisez ces actions dans vos politiques d'IAMautorisation (lorsque vous utilisez l'IAMauthentification) ou dans les politiques de session relatives au rôle d'utilisateur (lorsque vous utilisez IAM l'authentification Identity Center) pour EMR Studio.
Le tableau affiche également les opérations autorisées dans chacun des exemples de politique d'autorisation pour EMR Studio. Pour plus d'informations sur les exemples de politiques d'autorisations, consultez Création de politiques d'autorisations pour les utilisateurs de EMR Studio.
Action | Base | Intermédiaire | Avancé | Actions associées |
---|---|---|---|---|
Créer et supprimer des espaces de travail | Oui | Oui | Oui |
|
Afficher le panneau Collaboration, activer la collaboration dans l'espace de travail et ajouter des collaborateurs. Pour plus d'informations, consultez Définir la propriété pour la collaboration dans le Workspace. | Oui | Oui | Oui |
|
Consultez la liste des compartiments de Amazon S3 Control stockage dans le même compte que le Studio lors de la création d'un nouveau EMR cluster, et accédez aux journaux des conteneurs lorsque vous utilisez une interface utilisateur Web pour déboguer des applications | Oui | Oui | Oui |
|
Accéder aux espaces de travail | Oui | Oui | Oui |
|
Attachez ou détachez les EMR clusters Amazon existants associés à l'espace de travail | Oui | Oui | Oui |
|
Attacher ou détacher Amazon EMR sur des clusters EKS | Oui | Oui | Oui |
|
Joindre ou détacher les applications EMR sans serveur associées à l'espace de travail | Non | Oui | Oui |
L' |
Déboguer Amazon EMR sur des EC2 tâches avec des interfaces utilisateur d'application persistantes | Oui | Oui | Oui |
|
Déboguer Amazon EMR sur des EC2 tâches avec des interfaces utilisateur d'applications intégrées au cluster | Oui | Oui | Oui |
|
Déboguer Amazon EMR lors des exécutions de EKS tâches à l'aide du serveur d'historique Spark | Oui | Oui | Oui |
|
Créer et supprimer des référentiels Git | Oui | Oui | Oui |
|
Créer ou annuler des liens à des référentiels Git | Oui | Oui | Oui |
|
Créer des clusters à partir de modèles de clusters prédéfinis | Non | Oui | Oui |
|
Spécifier une configuration de cluster pour créer de nouveaux clusters | Non | Non | Oui |
|
Assignez un utilisateur à un studio lorsque vous utilisez le mode IAM d'authentification. | Non | Non | Non |
|
Décrire les objets réseau. | Oui | Oui | Oui |
|
IAMRépertoriez les rôles. | Oui | Oui | Oui |
|
Connectez-vous à EMR Studio depuis Amazon SageMaker Studio et utilisez l'interface visuelle Data Wrangler. |
Non | Non | Oui |
|
Utilisez Amazon CodeWhisperer dans votre EMR studio. | Non | Non | Oui |
|
Accédez à l'SQLéditeur Amazon Athena depuis votre EMR studio. Cette liste peut ne pas inclure toutes les autorisations dont vous avez besoin pour utiliser toutes les fonctionnalités Athena. Pour obtenir la up-to-date liste la plus complète, consultez la politique d'accès complet d'Athena. | Non | Non | Oui |
|