Configurar permissões de usuário do EMR Studio para Amazon ou EC2 Amazon EKS - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar permissões de usuário do EMR Studio para Amazon ou EC2 Amazon EKS

Você deve configurar políticas de permissões de usuário para o Amazon EMR Studio para definir permissões detalhadas de usuários e de grupos. Para obter informações sobre como as permissões de usuário funcionam no EMR Studio, consulte Controle de acesso em Como o Amazon EMR Studio funciona.

nota

As permissões abordadas nesta seção não impõem controle de acesso a dados. Para gerenciar o acesso aos conjuntos de dados de entrada, você deve configurar permissões para os clusters que seu Studio usa. Para obter mais informações, consulte Segurança no Amazon EMR.

Criação de um perfil de usuário do EMR Studio para o modo de autenticação do Centro de Identidade do IAM

Você deve criar um perfil de usuário do EMR Studio ao usar o modo de autenticação do Centro de Identidade do IAM.

Criar um perfil de usuário para o EMR Studio
  1. Siga as instruções em Criação de uma função para delegar permissões a um AWS serviço no Guia do AWS Identity and Access Management usuário para criar uma função de usuário.

    Ao criar o perfil, use a política de relação de confiança apresentada a seguir.

    { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] } ] }
  2. Remova as permissões e as políticas de perfil padrão.

  3. Antes de atribuir usuários e grupos a um Studio, anexe as políticas de sessão do EMR Studio ao perfil de usuário. Para obter instruções sobre como criar políticas de sessão, consulte Criação de políticas de permissões para usuários do EMR Studio.

Criação de políticas de permissões para usuários do EMR Studio

Consulte as seções a seguir para criar políticas de permissões do EMR Studio.

nota

Para estabelecer permissões de acesso do Amazon S3 para o armazenamento de arquivos de cadernos e permissões de acesso do AWS Secrets Manager para a leitura de segredos ao vincular Workspaces a repositórios Git, use o perfil de serviço do EMR Studio.

Criação das políticas de permissões

Crie uma ou mais políticas de permissões do IAM que especifiquem quais ações um usuário pode realizar no seu Studio. Por exemplo, é possível criar três políticas separadas para tipos de usuários básicos, intermediários e avançados do Studio com os exemplos de políticas nesta página.

Para obter um detalhamento de cada operação do Studio que um usuário pode executar e as ações mínimas do IAM necessárias para executar cada operação, consulte AWS Identity and Access Management permissões para usuários do EMR Studio. Para ver as etapas de criação das políticas, consulte Criação de políticas do IAM no Guia do usuário do IAM.

Sua política de permissões deve incluir as instruções apresentadas a seguir.

{ "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" }

Definição de propriedade para colaboração no Workspace

A colaboração no Workspace permite que vários usuários trabalhem simultaneamente no mesmo Workspace e pode ser configurada com o painel Colaboração na interface do usuário do Workspace. Para visualizar e usar o painel Colaboração, o usuário deve ter as permissões apresentadas a seguir. Qualquer usuário com essas permissões poderá visualizar e usar o painel Colaboração.

"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"

Para restringir o acesso ao painel Colaboração, é possível usar o controle de acesso por etiquetas. Quando um usuário cria um Workspace, o EMR Studio aplica uma etiqueta padrão com uma chave creatorUserId cujo valor é o ID do usuário que cria o Workspace.

nota

O EMR Studio adiciona a tag creatorUserId aos Workspaces criados após 16 de novembro de 2021. Para restringir quem pode configurar a colaboração dos espaços de trabalhos criados antes dessa data, recomendamos adicionar manualmente a tag creatorUserId ao seu Workspace e, em seguida, usar o controle de acesso por tags nas suas políticas de permissões de usuários.

A instrução de exemplo a seguir permite que um usuário configure a colaboração para qualquer Workspace com a chave de etiqueta creatorUserId cujo valor corresponde ao ID do usuário (indicado pela variável de política aws:userId). Em outras palavras, a instrução permite que um usuário configure a colaboração para os Workspaces criados por ele. Para saber mais sobre as variáveis ​​de política, consulte Elementos de política do IAM: variáveis e tags no Guia do usuário do IAM.

{ "Sid": "UserRolePermissionsForCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userid}" } } }

Criação de uma política de segredos do Git no nível de usuário

Para usar permissões no nível de usuário

O EMR Studio adiciona automaticamente a tag for-use-with-amazon-emr-managed-user-policies ao criar segredos do Git. Se você quiser controlar o acesso aos segredos do Git no nível do usuário, adicione permissões baseadas em tags à política de perfil de usuário do EMR Studio com secretsmanager:GetSecretValue, conforme mostrado na seção Para fazer a transição de permissões do nível de serviço para permissões do nível de usuário abaixo.

Se você tiver permissões existentes para secretsmanager:GetSecretValue na política de perfil de serviço do EMR Studio, deverá remover essas permissões.

Para fazer a transição de permissões do nível de serviço para permissões do nível de usuário

nota

A tag for-use-with-amazon-emr-managed-user-policies garante que as permissões da Etapa 1 abaixo concedam ao criador do espaço de trabalho acesso ao segredo do Git. No entanto, se você vinculou repositórios Git antes de 1.º de setembro de 2023, os segredos do Git correspondentes terão o acesso negado por não terem a tag for-use-with-amazon-emr-managed-user-policies aplicada. Para aplicar permissões em nível de usuário, você deve recriar os segredos antigos JupyterLab e vincular os repositórios Git apropriados novamente.

Para obter mais informações sobre as variáveis de política, consulte Elementos de política do IAM: variáveis e tags no Guia do usuário do IAM.

  1. Adicione as permissões a seguir à política de perfil de usuário do EMR Studio. A política usa a chave for-use-with-amazon-emr-managed-user-policies com valor "${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}" } } }
  2. Se presente, remova a permissão a seguir da política de perfil de serviço do EMR Studio. Como a política de perfil de serviço se aplica a todos os segredos definidos por cada usuário, você só precisa fazer isso uma vez.

    { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }

Para usar permissões no nível de serviço

A partir de 1.º de setembro de 2023, o EMR Studio adiciona automaticamente a tag for-use-with-amazon-emr-managed-user-policies para controle de acesso no nível de usuário. Como esse é um recurso adicional, você pode continuar usando o acesso no nível de serviço disponível por meio da permissão GetSecretValue no perfil de serviço do EMR Studio.

Para segredos criados antes de 1.º de setembro de 2023, o EMR Studio não adicionou a tag for-use-with-amazon-emr-managed-user-policies. Para continuar usando as permissões no nível de serviço, basta reter as permissões existentes de perfil de usuário e de perfil de serviço do EMR Studio. No entanto, para restringir quem pode acessar um segredo individual, recomendamos seguir as etapas em Para usar permissões no nível de usuário para adicionar manualmente a tag for-use-with-amazon-emr-managed-user-policies aos seus segredos e, em seguida, usar o controle de acesso por tags nas suas políticas de permissões de usuários.

Para obter mais informações sobre as variáveis de política, consulte Elementos de política do IAM: variáveis e tags no Guia do usuário do IAM.

Anexe a política de permissões à sua identidade do IAM.

A tabela a seguir resume a qual identidade do IAM você deve anexar uma política de permissões, dependendo do modo de autenticação do EMR Studio. Para obter instruções sobre como anexar uma política, consulte Adicionar e remover permissões de identidade do IAM.

Se você usar... Anexe a política para...
Autenticação do IAM As suas identidades do IAM (usuários, grupos de usuários ou perfis). Por exemplo, é possível anexar uma política de permissões a um usuário em sua Conta da AWS.
Federação do IAM com um provedor de identidades (IdP) externo

O perfil ou os perfis do IAM que você cria para seu IdP externo. Por exemplo, uma federação do IAM para SAML 2.0.

O EMR Studio usa as permissões que você atribui aos perfis do IAM para os usuários com acesso federado a um Studio.

Centro de Identidade do IAM O seu perfil de usuário do Amazon EMR Studio.

Exemplo de políticas de usuário

A política de usuário básico apresentada a seguir permite a maioria das ações do EMR Studio, mas não permite que um usuário crie novos clusters do Amazon EMR.

Importante

A política de exemplo não inclui a permissão CreateStudioPresignedUrl, que você deve conceder a um usuário ao usar o modo de autenticação do IAM. Para obter mais informações, consulte Atribuir um usuário ou um grupo a um EMR Studio.

A política de exemplo inclui elementos Condition para impor o controle de acesso por etiquetas (TBAC) com a finalidade de que você possa usar a política com o perfil de serviço de exemplo para o EMR Studio. Para obter mais informações, consulte Crie um perfil de serviço do 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":"*" } ] }

A política de usuário intermediário apresentada a seguir permite a maioria das ações do EMR Studio e possibilita que um usuário crie novos clusters do Amazon EMR usando um modelo de cluster.

Importante

A política de exemplo não inclui a permissão CreateStudioPresignedUrl, que você deve conceder a um usuário ao usar o modo de autenticação do IAM. Para obter mais informações, consulte Atribuir um usuário ou um grupo a um EMR Studio.

A política de exemplo inclui elementos Condition para impor o controle de acesso por etiquetas (TBAC) com a finalidade de que você possa usar a política com o perfil de serviço de exemplo para o EMR Studio. Para obter mais informações, consulte Crie um perfil de serviço do 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" } ] }

A política de usuário avançada apresentada a seguir permite todas as ações do EMR Studio e possibilita que um usuário crie novos clusters do Amazon EMR ao usar um modelo de cluster ou ao fornecer uma configuração de cluster.

Importante

A política de exemplo não inclui a permissão CreateStudioPresignedUrl, que você deve conceder a um usuário ao usar o modo de autenticação do IAM. Para obter mais informações, consulte Atribuir um usuário ou um grupo a um EMR Studio.

A política de exemplo inclui elementos Condition para impor o controle de acesso por etiquetas (TBAC) com a finalidade de que você possa usar a política com o perfil de serviço de exemplo para o EMR Studio. Para obter mais informações, consulte Crie um perfil de serviço do 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" } ] }

A política de usuário a seguir contém as permissões mínimas de usuário necessárias para usar uma aplicação interativa do EMR Serverless com os Workspaces do EMR Studio.

Neste exemplo de política que tem permissões de usuário para aplicativos interativos do EMR Serverless com o EMR Studio, substitua os espaços reservados para e por emr-studio-service-role sua função de serviço do EMR Studio e função de serverless-runtime-role tempo de execução do EMR Serverless corretas.

{ "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 permissões para usuários do EMR Studio

A tabela a seguir inclui cada operação do Amazon EMR Studio que um usuário pode realizar e lista as ações mínimas do IAM que são necessárias para executar essa operação. Você permite essas ações nas suas políticas de permissões do IAM (ao usar a autenticação do IAM) ou nas políticas de sessão do perfil de usuário (ao usar a autenticação do Centro de Identidade do IAM) para o EMR Studio.

A tabela também exibe as operações permitidas em cada exemplo de política de permissões para o EMR Studio. Para obter mais informações sobre exemplos de políticas de permissões, consulte Criação de políticas de permissões para usuários do EMR Studio.

Ação Básico Intermediário Advanced (Avançado) Ações associadas
Criação e exclusão de Workspaces Sim Sim Sim
"elasticmapreduce:CreateEditor", "elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:DeleteEditor"
Visualização do painel Colaboração, habilitação da colaboração no Workspace e adição de colaboradores. Para obter mais informações, consulte Definição de propriedade para colaboração no Workspace. Sim Sim Sim
"elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities"
Veja uma lista de buckets de Amazon S3 Control armazenamento na mesma conta do Studio ao criar um novo cluster EMR e acesse os registros do contêiner ao usar uma interface de usuário da web para depurar aplicativos Sim Sim Sim
"s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "s3:GetObject"
Acesso aos Workspaces. Sim Sim Sim
"elasticmapreduce:DescribeEditor", "elasticmapreduce:ListEditors", "elasticmapreduce:StartEditor", "elasticmapreduce:StopEditor", "elasticmapreduce:OpenEditorInConsole"
Anexo ou remoção do anexo para clusters existentes do Amazon EMR associados ao Workspace. Sim Sim Sim
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Anexo ou remoção do anexo para clusters do Amazon EMR no EKS. Sim Sim Sim
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListManagedEndpoints", "emr-containers:DescribeManagedEndpoint", "emr-containers:GetManagedEndpointSessionCredentials"
Anexar ou desanexar aplicações do EMR Serverless associadas ao Workspace Não Sim Sim
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "emr-serverless:GetApplication", "emr-serverless:StartApplication", "emr-serverless:ListApplications", "emr-serverless:GetDashboardForJobRun", "emr-serverless:AccessInteractiveEndpoints", "iam:PassRole"

A permissão PassRole é necessária para passar a função de runtime de tarefas do EMR Serverless. Para obter mais informações, consulte Funções de runtime de trabalho no Guia do usuário do Amazon EMR Serverless.

Depure o Amazon EMR EC2 em trabalhos com interfaces de usuário de aplicativos persistentes Sim Sim Sim
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:ListClusters", "elasticmapreduce:ListSteps", "elasticmapreduce:DescribeCluster", "s3:ListBucket", "s3:GetObject"
Depure o Amazon EMR EC2 em trabalhos com interfaces de usuário de aplicativos em cluster Sim Sim Sim
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Depuração de execuções de trabalhos do Amazon EMR no EKS usando o servidor de histórico do Spark. Sim Sim Sim
"elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "emr-containers:ListVirtualClusters", "emr-containers:DescribeVirtualCluster", "emr-containers:ListJobRuns", "emr-containers:DescribeJobRun", "s3:ListBucket", "s3:GetObject"
Criação e exclusão de repositórios Git. Sim Sim Sim
"elasticmapreduce:CreateRepository", "elasticmapreduce:DeleteRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository", "secretsmanager:CreateSecret", "secretsmanager:ListSecrets", "secretsmanager:TagResource"
Vinculação e desvinculação de repositórios Git. Sim Sim Sim
"elasticmapreduce:LinkRepository", "elasticmapreduce:UnlinkRepository", "elasticmapreduce:ListRepositories", "elasticmapreduce:DescribeRepository"
Criação de novos clusters a partir de modelos de cluster definidos previamente. Não Sim Sim
"servicecatalog:SearchProducts", "servicecatalog:DescribeProduct", "servicecatalog:DescribeProductView", "servicecatalog:DescribeProvisioningParameters", "servicecatalog:ProvisionProduct", "servicecatalog:UpdateProvisionedProduct", "servicecatalog:ListProvisioningArtifacts", "servicecatalog:DescribeRecord", "servicecatalog:ListLaunchPaths", "cloudformation:DescribeStackResources", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Forneça uma configuração de cluster para criar clusters. Não Não Sim
"elasticmapreduce:RunJobFlow", "iam:PassRole", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster"
Atribuição de um usuário a um Studio ao usar o modo de autenticação do IAM. Não Não Não
"elasticmapreduce:CreateStudioPresignedUrl"
Descrição dos objetos das redes. Sim Sim Sim
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" } ] }
Listagem dos perfis do IAM. Sim Sim Sim
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
Conecte-se ao EMR Studio a partir do Amazon SageMaker AI Studio e use a interface visual do Data Wrangler. Não Não Sim
"sagemaker:CreatePresignedDomainUrl", "sagemaker:DescribeDomain", "sagemaker:ListDomains", "sagemaker:ListUserProfiles"
Use a Amazon CodeWhisperer em seu EMR Studio. Não Não Sim
"codewhisperer:GenerateRecommendations"
Acesso ao editor SQL do Amazon Athena por meio do EMR Studio. Essa lista pode não incluir todas as permissões necessárias para usar todos os recursos do Athena. Para ver a up-to-date lista completa, consulte a política de acesso total do Athena. Não Não Sim
"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"