Configurar permissões de usuário do EMR Studio para Amazon EC2 ou 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 EC2 ou Amazon EKS

Você deve configurar políticas de permissões de usuário para o Amazon EMR Studio para poder definir permissões refinadas de usuários e grupos. Para obter informações sobre como as permissões de usuário funcionam no EMR Studio, consulte Controle de acesso emComo 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 na Amazon EMR.

Crie uma função de usuário do EMR Studio para o modo de autenticação do IAM Identity Center

Você deve criar uma função de usuário do EMR Studio ao usar o modo de autenticação do IAM Identity Center.

Para criar uma função 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 suas políticas de sessão do EMR Studio à função de usuário. Para obter instruções sobre como criar políticas de sessão, consulte Crie políticas de permissões para usuários do EMR Studio.

Crie políticas de permissões para usuários do EMR Studio

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

nota

Para definir permissões de acesso ao Amazon S3 para armazenar arquivos de notebook e para definir permissões de AWS Secrets Manager acesso para ler segredos ao vincular espaços de trabalho a repositórios Git, use a função de serviço do Studio. EMR

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

Crie uma ou mais políticas de IAM permissões 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 realizar e as IAM ações mínimas necessárias para realizar cada operação, consulteAWS Identity and Access Management permissões para usuários do EMR Studio. Para ver as etapas para criar as políticas, consulte Criação de IAM políticas no Guia IAM do usuário.

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 espaço de trabalho, o EMR Studio aplica uma tag padrão com uma chave creatorUserId cujo valor é o ID do usuário que está criando o espaço de trabalho.

nota

EMRO Studio adiciona a creatorUserId tag aos espaços de trabalho 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 variáveis de política, consulte elementos de IAM política: variáveis e tags no Guia IAM do usuário.

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

EMRO Studio adiciona automaticamente a for-use-with-amazon-emr-managed-user-policies tag 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 função de usuário do EMR Studio secretsmanager:GetSecretValue conforme mostrado na Para fazer a transição de permissões do nível de serviço para permissões do nível de usuário seção abaixo.

Se você tiver permissões existentes secretsmanager:GetSecretValue na política de função de serviço do EMR Studio, remova 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 variáveis de política, consulte elementos de IAM política: variáveis e tags no Guia IAM do usuário.

  1. Adicione as seguintes permissões à política de função 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 seguinte permissão da política de função 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 for-use-with-amazon-emr-managed-user-policies tag para controle de acesso em nível de usuário. Como esse é um recurso adicional, você pode continuar usando o acesso em nível de serviço que está disponível por meio da GetSecretValue permissão na função de serviço do EMR Studio.

Para segredos criados antes de 1º de setembro de 2023, o EMR Studio não adicionou a for-use-with-amazon-emr-managed-user-policies tag. Para continuar usando as permissões de nível de serviço, basta manter sua função de serviço do EMR Studio e suas permissões de função de usuário existentes. 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 variáveis de política, consulte elementos de IAM política: variáveis e tags no Guia IAM do usuário.

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

A tabela a seguir resume a qual IAM identidade você anexa 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 IAM identidade.

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

A IAM função ou funções que você cria para seu IdP externo. Por exemplo, uma federação IAM for SAML 2.0.

EMRO Studio usa as permissões que você atribui às suas IAM funções para usuários com acesso federado a um Studio.

IAMCentro de identidade Sua função de usuário do Amazon EMR Studio.

Exemplo de políticas de usuário

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

Importante

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

O exemplo de política inclui Condition elementos para impor o controle de acesso baseado em tags (TBAC) para que você possa usar a política com o exemplo de função de serviço do Studio. EMR Para obter mais informações, consulte Criar uma função 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 a seguir permite a maioria das ações do EMR Studio e permite que um usuário crie novos EMR clusters da Amazon usando um modelo de cluster.

Importante

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

O exemplo de política inclui Condition elementos para impor o controle de acesso baseado em tags (TBAC) para que você possa usar a política com o exemplo de função de serviço do Studio. EMR Para obter mais informações, consulte Criar uma função 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 a seguir permite todas as ações do EMR Studio e permite que um usuário crie novos EMR clusters da Amazon usando um modelo de cluster ou fornecendo uma configuração de cluster.

Importante

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

O exemplo de política inclui Condition elementos para impor o controle de acesso baseado em tags (TBAC) para que você possa usar a política com o exemplo de função de serviço do Studio. EMR Para obter mais informações, consulte Criar uma função 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 um aplicativo interativo EMR sem servidor com o EMR Studio Workspaces.

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

{ "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 IAM ações mínimas necessárias para realizar essa operação. Você permite essas ações em suas políticas de IAM permissões (quando você usa IAM autenticação) ou em suas políticas de sessão de função de usuário (quando você usa a autenticação do IAM Identity Center) 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 Crie políticas de permissões para usuários do EMR Studio.

Ação Basic 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 EMR cluster 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"
Anexe ou desanexe EMR clusters existentes da Amazon associados ao Workspace Sim Sim Sim
"elasticmapreduce:AttachEditor", "elasticmapreduce:DetachEditor", "elasticmapreduce:ListClusters", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:ListBootstrapActions"
Anexe ou desanexe a Amazon EMR em clusters 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 aplicativos EMR sem servidor associados ao espaço de trabalho 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 PassRole permissão é necessária para passar a função de tempo de execução do trabalho EMR sem servidor. Para obter mais informações, consulte Job runtime roles no Amazon EMR Serverless User Guide.

Depure a Amazon EMR em EC2 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 a Amazon EMR em EC2 trabalhos com interfaces de usuário de aplicativos em cluster Sim Sim Sim
"elasticmapreduce:GetOnClusterAppUIPresignedURL"
Depure a Amazon EMR em execuções de EKS trabalhos usando o Spark History Server 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"
Atribua um usuário a um Studio ao usar o modo de IAM autenticação. 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": "*" } ] }
Listar IAM funções. 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 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 estúdio. Não Não Sim
"codewhisperer:GenerateRecommendations"
Acesse o SQL editor Amazon Athena a partir do seu 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"