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á.
Configure as permissões para permitir a listagem e o lançamento de aplicativos do Amazon EMR a partir do Studio SageMaker
Nesta seção, detalhamos as funções e permissões necessárias para listar e conectar-se aos aplicativos EMR Serverless do SageMaker Studio, considerando cenários em que o Studio e os aplicativos EMR Serverless são implantados na mesma conta ou em contas diferentes. AWS
As funções às quais você deve adicionar as permissões necessárias dependem de o Studio e seus aplicativos EMR Serverless residirem na mesma AWS conta (conta única) ou em contas separadas (conta cruzada). Há dois tipos de funções envolvidas:
-
Perfis de execução:
-
Funções de execução em tempo de execução (funções de controle de acesso baseado em função) usadas pelo EMR Serverless: essas são as funções do IAM usadas pelos ambientes de execução de tarefas do EMR Serverless para acessar outros AWS serviços e recursos necessários durante o tempo de execução, como o Amazon S3 para acesso a dados, registro em log, CloudWatch acesso ao catálogo de dados ou outros serviços com base em seus requisitos de carga de trabalho. AWS Glue Recomendamos criar essas funções na conta em que as aplicações do EMR Sem Servidor estão sendo executadas.
Para saber mais sobre as funções de runtime, consulte Funções de runtime de trabalho no Guia do usuário do EMR Sem Servidor.
nota
Você pode definir várias funções do RBAC para sua aplicação do EMR Sem Servidor. Essas funções podem ser baseadas nas responsabilidades e nos níveis de acesso necessários para diferentes usuários ou grupos em sua organização. Para obter mais informações sobre as permissões do RBAC, consulte Melhores práticas de segurança para o Amazon EMR Sem Servidor da Amazon.
-
SageMaker Função de execução de IA: a função de execução que permite à SageMaker IA realizar determinadas tarefas, como ler dados de buckets do Amazon S3, gravar registros e acessar outros AWS serviços que seu fluxo de trabalho possa precisar. CloudWatch A função de execução de SageMaker IA também tem a permissão especial chamada,
iam:PassRole
que permite que a SageMaker IA passe funções temporárias de execução de tempo de execução para os aplicativos EMR Serverless. Essas funções dão aos aplicativos EMR Serverless as permissões necessárias para interagir com outros AWS recursos enquanto estão em execução.
-
-
Perfis assumíveis (também conhecidos como Service Access Roles):
-
Essas são as funções do IAM que a função de execução da SageMaker IA pode assumir para realizar operações relacionadas ao gerenciamento de aplicativos EMR Serverless. Esses perfis definem as permissões e as políticas de acesso necessárias ao listar, realizar conexão ou gerenciar aplicações do EMR Sem Servidor. Eles geralmente são usados em cenários entre contas, em que os aplicativos EMR Serverless estão localizados em uma conta AWS diferente do domínio de IA. SageMaker Ter uma função de IAM dedicada para seus aplicativos EMR Serverless ajuda a seguir o princípio do menor privilégio e garante que o Amazon EMR tenha somente as permissões necessárias para executar seus trabalhos e, ao mesmo tempo, proteger outros recursos em sua conta. AWS
-
Ao entender e configurar essas funções corretamente, você pode garantir que o SageMaker Studio tenha as permissões necessárias para interagir com os aplicativos EMR Serverless, independentemente de estarem implantados na mesma conta ou em contas diferentes.
Conta única
Os diagramas a seguir ilustram as funções e permissões necessárias para listar e conectar-se aos aplicativos EMR Serverless do Studio quando o Studio e os aplicativos são implantados na mesma conta. AWS

Se seus aplicativos Amazon EMR e o Studio estiverem implantados na mesma AWS conta, siga estas etapas:
-
Etapa 1: recupere o ARN do bucket do Amazon S3 que você usa para fontes de dados e armazenamento de dados de saída no console do Amazon S3.
Para saber como encontrar um bucket pelo nome, consulte Como acessar e listar um bucket do Amazon S3. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criar um bucket.
-
Etapa 2: crie pelo menos uma função de runtime de trabalho para sua aplicação do EMR Sem Servidor em sua conta (o
EMRServerlessRuntimeExecutionRoleA
no diagrama de caso de uso de conta única acima). Escolha Política de confiança personalizada como entidade confiável. Adicione as permissões necessárias por trabalho. No mínimo, você precisa de acesso total a um bucket do Amazon S3 e acesso de criação e leitura ao catálogo de AWS Glue dados.Para obter instruções detalhadas sobre como criar uma nova função de runtime para suas aplicações do EMR Sem Servidor, siga estas etapas:
-
Navegue até o console do IAM
. -
No painel de navegação à esquerda, selecione Política e, depois, Criar política.
-
Adicione as permissões exigidas pela sua função de runtime, nomeie a política e escolha Criar política.
Você pode consultar Funções de runtime de trabalho do EMR Sem Servidor para encontrar exemplos de políticas de runtime para uma função de runtime do EMR Sem Servidor.
-
No painel de navegação à esquerda, selecione Funções e, em seguida, Criar função.
-
Na página Criar função, escolha a opção Política de confiança personalizada como entidade confiável.
-
Cole o seguinte documento JSON na seção Política de confiança personalizada e escolha Avançar:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Na página Adicionar permissões, selecione a política criada e, depois, Avançar.
-
Na página Revisar, insira um nome para a função, como
EMRServerlessAppRuntimeRoleA
, e uma descrição opcional. -
Revisar os detalhes do perfil e selecionar Criar perfil.
Com esse recurso, você e seus colegas de equipe podem se conectar ao mesma aplicação, cada um usando uma função de runtime com permissões correspondentes ao seu nível individual de acesso aos dados.
nota
As sessões do Spark funcionam de forma diferente. As sessões do Spark são isoladas com base no perfil de execução usado no Studio, portanto, usuários com perfis de execução diferentes terão sessões do Spark separadas e isoladas. Além disso, se você habilitou a identidade de origem para seu domínio, haverá um isolamento adicional das sessões do Spark em diferentes identidades de origem.
-
-
Etapa 3: Recupere o ARN da função de execução SageMaker de IA usada pelo seu espaço privado.
Para obter informações sobre espaços e funções de execução na SageMaker IA, consulteCompreendendo as permissões de espaço e os perfis de execução do domínio.
Para obter mais informações sobre como recuperar o ARN da função de execução SageMaker da IA, consulte. Obtenha um perfil de execução
nota
Como alternativa, usuários iniciantes na SageMaker IA podem simplificar o processo de configuração criando automaticamente uma nova função de execução de SageMaker IA com as permissões apropriadas. Nesse caso, pule as etapas 3 e 4. Em vez disso, os usuários podem:
-
Escolha a opção Configurar para organizações ao criar um novo domínio no menu Domínio na navegação à esquerda do console de SageMaker IA
. -
Criar um novo perfil de execução no menu Gerenciador de perfis do console e, em seguida, vincular o perfil a um domínio ou perfil de usuário existente.
Ao criar a função, escolha a opção Executar aplicações EMR Sem Servidor do Studio em Quais atividades de ML os usuários realizarão? Em seguida, forneça o nome do seu bucket do Amazon S3 e a função de runtime de trabalho que você deseja que sua aplicação do EMR Sem Servidor use (etapa 2).
O SageMaker Role Manager adiciona automaticamente as permissões necessárias para execução e conexão com aplicativos EMR Serverless à nova função de execução. Usando o Role Manager, você só pode atribuir uma SageMaker função de tempo de execução ao seu aplicativo EMR Serverless, e o aplicativo deve ser executado na mesma conta em que o Studio está implantado, usando uma função de tempo de execução criada nessa mesma conta.
-
-
Etapa 4: anexe as seguintes permissões à função de execução de SageMaker IA acessando seu aplicativo EMR Serverless.
-
Abra o console do IAM em https://console.aws.amazon.com/sagemaker/
. -
Escolha Perfis e, em seguida, pesquise seu perfil de execução pelo nome no campo Pesquisar. O nome do perfil é a última parte do ARN, após a última barra (/).
-
Acesse o link do seu perfil.
-
Selecione Adicionar permissões e, em seguida, Criar política em linha.
-
Na guia JSON, adicione as permissões do Amazon EMR Sem Servidor, permitindo o acesso e as operações do EMR com tecnologia sem servidor. Para obter detalhes sobre o documento de política, consulte Políticas do EMR Sem Servidor em Políticas de referência. Substitua a
region
, oaccountID
e oEMRServerlessAppRuntimeRole
passados por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil.nota
Você pode incluir quantas sequências de ARN de funções de runtime forem necessárias na permissão, separando-as por vírgulas.
-
Escolha Próximo e, em seguida, forneça um nome de política.
-
Escolha Criar política.
-
Repita a etapa Criar política em linha para adicionar outra política em linha que conceda ao perfil permissões para atualizar os domínios, perfis de usuário e espaços. Para obter detalhes sobre o documento de política
SageMakerUpdateResourcesPolicy
, consulte Política de ações de atualização de domínio, perfil de usuário e espaço em Políticas de referência. Substitua aregion
e oaccountID
por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil.
-
-
Etapa 5:
Associe a lista de funções de tempo de execução ao seu perfil de usuário ou domínio para que você possa navegar visualmente pela lista de funções e selecionar aquela a ser usada ao se conectar a um aplicativo EMR Serverless a partir de. JupyterLab Você pode usar o console de SageMaker IA ou o script a seguir. Posteriormente, todos os seus trabalhos do Apache Spark ou Apache Hive criados no seu caderno acessarão somente os dados e recursos permitidos pelas políticas vinculadas à função de runtime selecionada.
Importante
A não conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR Serverless.
Entre contas
Os diagramas a seguir ilustram as funções e permissões necessárias para listar e conectar-se aos aplicativos EMR Serverless do Studio quando o Studio e os aplicativos são implantados em contas diferentes. AWS

Para obter mais informações sobre como criar uma função em uma AWS conta, consulte https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html Criação de uma função do IAM (console).
Antes de começar:
-
Recupere o ARN da função de execução SageMaker de IA usada pelo seu espaço privado. Para obter informações sobre espaços e funções de execução na SageMaker IA, consulteCompreendendo as permissões de espaço e os perfis de execução do domínio. Para obter mais informações sobre como recuperar o ARN da função de execução SageMaker da IA, consulte. Obtenha um perfil de execução
-
Recupere o ARN do bucket do Amazon S3 que você usará para fontes de dados e armazenamento de dados de saída no console do Amazon S3
. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criar um bucket. Para saber como encontrar um bucket pelo nome, consulte Como acessar e listar um bucket do Amazon S3.
Se suas aplicações do EMR Sem Servidor e o Studio forem implantados em contas da AWS separadas, você deverá configurar as permissões em ambas as contas.
Na conta do EMR Sem Servidor
Siga estas etapas para criar os perfis e políticas necessários na conta em que sua aplicação do EMR Sem Servidor está sendo executada, também chamada de conta confiável:
-
Etapa 1: crie pelo menos um perfil de runtime de execução de trabalho para sua aplicação do EMR Sem Servidor em sua conta (o
EMRServerlessRuntimeExecutionRoleB
no diagrama de contas cruzadas acima). Escolha Política de confiança personalizada como entidade confiável. Adicione as permissões necessárias por trabalho. No mínimo, você precisa de acesso total a um bucket do Amazon S3 e acesso de criação e leitura ao catálogo de AWS Glue dados.Para obter instruções detalhadas sobre como criar uma nova função de runtime para suas aplicações do EMR Sem Servidor, siga estas etapas:
-
Navegue até o console do IAM
. -
No painel de navegação à esquerda, selecione Política e, depois, Criar política.
-
Adicione as permissões exigidas pela sua função de runtime, nomeie a política e escolha Criar política.
Para exemplos de políticas de runtime de uma função de runtime do EMR Sem Servidor, consulte Funções de runtime de trabalho do Amazon EMR Sem Servidor.
-
No painel de navegação à esquerda, selecione Funções e, em seguida, Criar perfil.
-
Na página Criar função, escolha a opção Política de confiança personalizada como entidade confiável.
-
Cole o seguinte documento JSON na seção Política de confiança personalizada e escolha Avançar:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Na página Adicionar permissões, selecione a política criada e, depois, Avançar.
-
Na página Revisar, insira um nome para a função, como
EMRServerlessAppRuntimeRoleB
, e uma descrição opcional. -
Revisar os detalhes do perfil e selecionar Criar perfil.
Com esse recurso, você e seus colegas de equipe podem se conectar ao mesma aplicação, cada um usando uma função de runtime com permissões correspondentes ao seu nível individual de acesso aos dados.
nota
As sessões do Spark operam de forma diferente. As sessões do Spark são isoladas com base no perfil de execução usado no Studio, portanto, usuários com perfis de execução diferentes terão sessões do Spark separadas e isoladas. Além disso, se você habilitou a identidade de origem para seu domínio, haverá um isolamento adicional das sessões do Spark em diferentes identidades de origem.
-
-
Etapa 2: crie um perfil personalizado do IAM chamado
AssumableRole
com a seguinte configuração:-
Permissões: conceda as permissões necessárias (políticas do Amazon EMR Sem Servidor) para
AssumableRole
, a fim de permitir o acesso aos recursos do EMR com tecnologia sem servidor. A função também é conhecida como Função de acesso. -
Relação de confiança: configure a política de confiança para
AssumableRole
, a fim de permitir que assuma o perfil de execução (SageMakerExecutionRole
no diagrama de contas cruzadas) da conta do Studio que requer acesso.
Ao assumir a função, o Studio pode obter acesso temporário às permissões necessárias na conta do EMR Sem Servidor.
Para obter instruções detalhadas sobre como criar uma nova
AssumableRole
em sua AWS conta EMR Serverless, siga estas etapas:-
Navegue até o console do IAM
. -
No painel de navegação à esquerda, selecione Política e, depois, Criar política.
-
Na guia JSON, adicione as permissões do Amazon EMR Sem Servidor, permitindo o acesso e as operações do EMR com tecnologia sem servidor. Para obter detalhes sobre o documento de política, consulte Políticas do EMR Sem Servidor em Políticas de referência. Substitua a
region
, oaccountID
e oEMRServerlessAppRuntimeRole
passados por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil.nota
O
EMRServerlessAppRuntimeRole
aqui é a função de runtime de trabalho criada na etapa 1 (oEMRServerlessAppRuntimeRoleB
no diagrama de contas cruzadas acima). Você pode incluir quantas sequências de ARN de funções de runtime forem necessárias na permissão, separando-as por vírgulas. -
Escolha Próximo e, em seguida, forneça um nome de política.
-
Escolha Criar política.
-
No painel de navegação à esquerda, selecione Funções e, em seguida, Criar função.
-
Na página Criar função, escolha a opção Política de confiança personalizada como entidade confiável.
-
Cole o seguinte documento JSON na seção Política de confiança personalizada e escolha Avançar:
studio-account
Substitua pelo ID da conta do Studio eAmazonSageMaker-ExecutionRole
pela função de execução usada pelo seu JupyterLab espaço.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
studio-account
:role/service-role/AmazonSageMaker-ExecutionRole
" }, "Action": "sts:AssumeRole" } ] } -
Na página Adicionar permissões, adicione a permissão
EMRServerlessAppRuntimeRoleB
que você criou na etapa 2 e escolha Avançar. -
Na página Revisar, insira um nome para a função, como
AssumableRole
, e uma descrição opcional. -
Revisar os detalhes do perfil e selecionar Criar perfil.
Para obter mais informações sobre como criar uma função em uma AWS conta, consulte Criação de uma função do IAM (console).
-
Na conta do Studio
Na conta em que o Studio está implantado, também chamada de conta confiável, atualize a função de execução de SageMaker IA acessando seus aplicativos EMR Serverless com as permissões necessárias para acessar recursos na conta confiável.
-
Etapa 1: Recupere o ARN da função de execução SageMaker de IA usada pelo seu espaço.
Para obter informações sobre espaços e funções de execução na SageMaker IA, consulteCompreendendo as permissões de espaço e os perfis de execução do domínio.
Para obter mais informações sobre como recuperar o ARN da função de execução SageMaker da IA, consulte. Obtenha um perfil de execução
-
Etapa 2: anexe as seguintes permissões à função de execução de SageMaker IA acessando seu aplicativo EMR Serverless.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Escolha Perfis e, em seguida, pesquise seu perfil de execução pelo nome no campo Pesquisar. O nome do perfil é a última parte do ARN, após a última barra (/).
-
Acesse o link do seu perfil.
-
Selecione Adicionar permissões e, em seguida, Criar política em linha.
-
Na guia JSON, adicione a política em linha que concede permissões à função para atualizar os domínios, perfis de usuário e espaços. Para obter detalhes sobre o documento de política
SageMakerUpdateResourcesPolicy
, consulte Política de ações de atualização de domínio, perfil de usuário e espaço em Políticas de referência. Substitua aregion
e oaccountID
por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil. -
Escolha Próximo e, em seguida, forneça um nome de política.
-
Escolha Criar política.
-
Repita a etapa Criar política em linha para adicionar outra política que conceda ao perfil de execução as permissões para assumir
AssumableRole
e, em seguida, executar as ações permitidas pela política de acesso do perfil.Substitua
emr-account
pelo ID da conta do Amazon EMR Sem Servidor, eAssumableRole
pelo nome da função assumível criada na conta do Amazon EMR Sem Servidor.{ "Version": "2012-10-17", "Statement": { "Sid": "AllowSTSToAssumeAssumableRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::
emr-account
:role/AssumableRole
" } }
-
-
Etapa 3:
Associe a lista de funções de tempo de execução ao seu domínio ou perfil de usuário para que você possa navegar visualmente pela lista de funções e selecionar aquela a ser usada ao se conectar a um aplicativo EMR Serverless a partir de. JupyterLab Você pode usar o console de SageMaker IA ou o script a seguir. Posteriormente, todos os seus trabalhos do Apache Spark ou Apache Hive criados no seu caderno acessarão somente os dados e recursos permitidos pelas políticas vinculadas à função de runtime selecionada.
Importante
A não conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR Serverless.
Políticas de referência
-
Políticas do EMR Serverless: essa política permite gerenciar aplicativos EMR Serverless, incluindo listar, criar (com as tags de SageMaker IA necessárias), iniciar, interromper, obter detalhes, excluir, acessar endpoints Livy e obter painéis de execução de tarefas. Também permite passar a função de runtime da aplicação EMR Sem Servidor necessária para o serviço.
-
EMRServerlessListApplications
: permite a ListApplications ação em todos os recursos do EMR Serverless na região e na conta especificadas. AWS -
EMRServerlessPassRole
: permite transmitir as funções de tempo de execução especificadas na AWS conta fornecida, mas somente quando a função está sendo passada paraemr-serverless.amazonaws.com service
o. -
EMRServerlessCreateApplicationAction
: Permite que eles CreateApplication TagResource realizem ações nos recursos do EMR Serverless na região e na conta especificadas. AWS No entanto, isso exige que os recursos que estão sendo criados ou marcados tenham chaves de tag específicas (sagemaker:domain-arn
,sagemaker:user-profile-arn
esagemaker:space-arn
) presentes com valores não nulos. -
EMRServerlessDenyTaggingAction
: As UntagResource ações TagResource e nos recursos do EMR Serverless na região e AWS conta especificadas se os recursos não tiverem nenhuma das chaves de tag especificadas (sagemaker:domain-arn
,sagemaker:user-profile-arn
, e) definidas.sagemaker:space-arn
-
EMRServerlessActions
: permite várias ações (StartApplication
,StopApplication
,GetApplication
,DeleteApplication
,AccessLivyEndpoints
eGetDashboardForJobRun
) nos recursos do EMR Sem Servidor, mas somente se os recursos tiverem as chaves de tag especificadas (sagemaker:domain-arn
,sagemaker:user-profile-arn
esagemaker:space-arn
) definidas com valores não nulos.
A política do IAM definida no documento JSON fornecido concede essas permissões, mas limita esse acesso à presença de tags de SageMaker IA específicas nos aplicativos do EMR Serverless para garantir que somente os recursos do Amazon EMR Serverless associados a um SageMaker determinado domínio de IA, perfil de usuário e espaço possam ser gerenciados.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EMRServerlessListApplications", "Effect": "Allow", "Action": [ "emr-serverless:ListApplications" ], "Resource": "arn:aws:emr-serverless:
region
:accountID
:/*" }, { "Sid": "EMRServerlessPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::accountID
:EMRServerlessAppRuntimeRole
", "Condition": { "StringLike": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } }, { "Sid": "EMRServerlessCreateApplicationAction", "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication", "emr-serverless:TagResource" ], "Resource": "arn:aws:emr-serverless:region
:accountID
:/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "sagemaker:domain-arn", "sagemaker:user-profile-arn", "sagemaker:space-arn" ] }, "Null": { "aws:RequestTag/sagemaker:domain-arn": "false", "aws:RequestTag/sagemaker:user-profile-arn": "false", "aws:RequestTag/sagemaker:space-arn": "false" } } }, { "Sid": "EMRServerlessDenyTaggingAction", "Effect": "Deny", "Action": [ "emr-serverless:TagResource", "emr-serverless:UntagResource" ], "Resource": "arn:aws:emr-serverless:region
:accountID
:/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "true", "aws:ResourceTag/sagemaker:user-profile-arn": "true", "aws:ResourceTag/sagemaker:space-arn": "true" } } }, { "Sid": "EMRServerlessActions", "Effect": "Allow", "Action": [ "emr-serverless:StartApplication", "emr-serverless:StopApplication", "emr-serverless:GetApplication", "emr-serverless:DeleteApplication", "emr-serverless:AccessLivyEndpoints", "emr-serverless:GetDashboardForJobRun" ], "Resource": "arn:aws:emr-serverless:region
:accountID
:/applications/*", "Condition": { "Null": { "aws:ResourceTag/sagemaker:domain-arn": "false", "aws:ResourceTag/sagemaker:user-profile-arn": "false", "aws:ResourceTag/sagemaker:space-arn": "false" } } } ] } -
-
Política de ações de atualização de domínio, perfil de usuário e espaço: a política a seguir concede permissões para atualizar domínios, perfis de usuário e espaços de SageMaker IA na região e na AWS conta especificadas.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerUpdateResourcesPolicy", "Effect": "Allow", "Action": [ "sagemaker:UpdateDomain", "sagemaker:UpdateUserprofile", "sagemaker:UpdateSpace" ], "Resource": [ "arn:aws:sagemaker:
region>
:accountID
:domain/*", "arn:aws:sagemaker:region
:accountID
:user-profile/*" ] } ] }