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 EMR aplicativos da Amazon a partir do SageMaker Studio
Nesta seção, detalhamos as funções e permissões necessárias para listar e se conectar aos aplicativos EMR sem servidor do SageMaker Studio, considerando cenários em que o Studio e os aplicativos EMR sem servidor são implantados na mesma AWS conta ou em contas diferentes.
As funções às quais você deve adicionar as permissões necessárias dependem de o Studio e seus aplicativos EMR sem servidor residirem na mesma AWS conta (conta única) ou em contas separadas (conta cruzada). Há dois tipos de funções envolvidas:
-
Funções 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 IAM funções usadas pelos ambientes de execução de tarefas EMR sem servidor 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, CloudWatch acesso ao catálogo de dados ou outros serviços com base em AWS Glue seus requisitos de carga de trabalho. Recomendamos criar essas funções na conta em que os aplicativos EMR sem servidor estão sendo executados.
Para saber mais sobre funções de tempo de execução, consulte Funções de tempo de execução de Job no EMRGuia do usuário sem servidor.
nota
Você pode definir várias RBAC funções para seu aplicativo 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 RBAC permissões, consulte Melhores práticas de segurança para Amazon Amazon EMR Serverless.
-
SageMaker função de execução: a função de execução que permite SageMaker 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 SageMaker execução também tem a permissão especial chamada
iam:PassRole
, que permite SageMaker passar funções temporárias de execução em tempo de execução para os EMR aplicativos sem servidor. Essas funções dão aos aplicativos EMR sem servidor as permissões necessárias para interagir com outros AWS recursos enquanto estão em execução.
-
-
Funções presumíveis (também conhecidas como funções de acesso ao serviço):
-
Essas são as IAM funções que a função SageMaker de execução pode assumir para realizar operações relacionadas ao gerenciamento de aplicativos EMR sem servidor. Essas funções definem as permissões e as políticas de acesso necessárias ao listar, conectar-se ou gerenciar aplicativos EMR sem servidor. Eles geralmente são usados em cenários de várias contas, em que os aplicativos EMR sem servidor estão localizados em uma AWS conta diferente do domínio. SageMaker Ter uma IAM função dedicada para seus aplicativos EMR sem servidor ajuda a seguir o princípio do privilégio mínimo e garante que a Amazon EMR tenha apenas 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 aplicativos EMR sem servidor, independentemente de serem 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 se conectar aos aplicativos EMR sem servidor do Studio quando o Studio e os aplicativos são implantados na mesma conta. AWS
Se seus EMR aplicativos Amazon e o Studio estiverem implantados na mesma AWS conta, siga estas etapas:
-
Etapa 1: Recupere o bucket ARN 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 Acessando e listando um bucket do Amazon S3. Para obter informações sobre como criar um bucket do Amazon S3, consulte Criação de um bucket.
-
Etapa 2: Crie pelo menos uma função de execução de trabalho em tempo de execução para seu aplicativo EMR sem servidor em sua conta (
EMRServerlessRuntimeExecutionRoleA
no diagrama de caso de uso de conta única acima). Escolha a política de confiança personalizada como entidade confiável. Adicione as permissões exigidas pelo seu 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 execução de tempo de execução para seus aplicativos EMR sem servidor, siga estas etapas:
-
Navegue até o console do IAM
. -
No painel de navegação esquerdo, escolha Política e, em seguida, Criar política.
-
Adicione as permissões exigidas pela sua função de tempo de execução, nomeie a política e escolha Criar política.
Você pode consultar Job runtime roles for EMR Serverless para encontrar exemplos de políticas de tempo de execução para uma função de tempo de execução EMR Serverless.
-
No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.
-
Na página Criar função, escolha Política de confiança personalizada como entidade confiável.
-
Cole o JSON documento a seguir 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, adicione a política que você criou e escolha Avançar.
-
Na página Revisão, insira um nome para a função, por exemplo,
EMRServerlessAppRuntimeRoleA
e uma descrição opcional. -
Revisar os detalhes do perfil e selecionar Criar perfil.
Com essas funções, você e seus colegas de equipe podem se conectar ao mesmo aplicativo, cada um usando uma função de tempo de execução 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 na função de execução usada no Studio, portanto, usuários com funções de execução diferentes terão sessões separadas e isoladas do Spark. 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 a função ARN de SageMaker execução usada pelo seu espaço privado.
Para obter informações sobre espaços e funções de execução em SageMaker, consulteEntendendo as permissões de espaço de domínio e as funções de execução.
Para obter mais informações sobre como recuperar a função ARN de execução SageMaker do of, consulteObtenha sua função de execução.
nota
Como alternativa, os usuários iniciantes SageMaker podem simplificar o processo de configuração criando automaticamente uma nova função de SageMaker execução 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 SageMakerconsole
. -
Crie uma nova função de execução no menu Gerenciador de funções do console e, em seguida, anexe a função a um domínio ou perfil de usuário existente.
Ao criar a função, escolha a opção Executar aplicativos 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 execução do tempo de execução do trabalho que você deseja que seu aplicativo EMR Serverless use (etapa 2).
O Gerenciador de SageMaker Funções adiciona automaticamente as permissões necessárias para execução e conexão com aplicativos EMR sem servidor à nova função de execução. Usando o Gerenciador de Funções, você só pode atribuir uma SageMaker função de tempo de execução ao seu aplicativo EMR sem servidor, 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 SageMaker execução acessando seu aplicativo EMR sem servidor.
-
Abra o console do IAM em https://console.aws.amazon.com/sagemaker/
. -
Escolha Funções e, em seguida, pesquise sua função de execução pelo nome no campo Pesquisar. O nome da função é a última parte doARN, após a última barra (/).
-
Siga o link para sua função.
-
Escolha Adicionar permissões e, em seguida, Criar política em linha.
-
Na JSONguia, adicione as permissões do Amazon EMR Serverless, permitindo acesso e operações EMR sem servidor. Para obter detalhes sobre o documento de política, consulte Políticas EMR sem servidor em. Políticas de referência Substitua o
region
,accountID
, e passouEMRServerlessAppRuntimeRole
(s) com seus valores reais antes de copiar a lista de declarações para a política embutida de sua função.nota
Você pode incluir quantas ARN sequências de funções de tempo de execução forem necessárias na permissão, separando-as por vírgulas.
-
Escolha Avançar 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 embutida que conceda à função permissões para atualizar os domínios, perfis de usuário e espaços. Para obter detalhes sobre o documento
SageMakerUpdateResourcesPolicy
de política, consulte Política de ações de atualização de domínio, perfil de usuário e espaço emPolíticas de referência. Substitua oregion
eaccountID
com seus valores reais antes de copiar a lista de declarações para a política embutida de sua função.
-
-
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 sem servidor. JupyterLab Você pode usar o SageMaker console ou o script a seguir. Posteriormente, todas as suas tarefas do Apache Spark ou do Apache Hive criadas em seu notebook acessarão somente os dados e recursos permitidos pelas políticas anexadas à função de tempo de execução selecionada.
Importante
A não conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR sem servidor.
Conta cruzada
Os diagramas a seguir ilustram as funções e permissões necessárias para listar e se conectar aos aplicativos EMR sem servidor 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 IAM função (console).
Antes de começar:
-
Recupere a função ARN de SageMaker execução usada pelo seu espaço privado. Para obter informações sobre espaços e funções de execução em SageMaker, consulteEntendendo as permissões de espaço de domínio e as funções de execução. Para obter mais informações sobre como recuperar a função ARN de execução SageMaker do of, consulteObtenha sua função de execução.
-
Recupere o bucket ARN 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 Criação de um bucket. Para saber como encontrar um bucket pelo nome, consulte Acessando e listando um bucket do Amazon S3.
Se seus aplicativos EMR Serverless e o Studio forem implantados em AWS contas separadas, você configura as permissões em ambas as contas.
Na conta EMR Serverless
Siga estas etapas para criar as funções e políticas necessárias na conta em que seu aplicativo EMR Serverless está sendo executado, também conhecida como conta confiável:
-
Etapa 1: Crie pelo menos uma função de execução de trabalho em tempo de execução para seu aplicativo EMR Serverless em sua conta (veja o
EMRServerlessRuntimeExecutionRoleB
diagrama de contas cruzadas acima). Escolha a política de confiança personalizada como entidade confiável. Adicione as permissões exigidas pelo seu 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 execução de tempo de execução para seus aplicativos EMR sem servidor, siga estas etapas:
-
Navegue até o console do IAM
. -
No painel de navegação esquerdo, escolha Política e, em seguida, Criar política.
-
Adicione as permissões exigidas pela sua função de tempo de execução, nomeie a política e escolha Criar política.
Para exemplos de políticas de tempo de execução de uma função de tempo de execução EMR sem servidor, consulte Job runtime roles for Amazon EMR Serverless.
-
No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.
-
Na página Criar função, escolha Política de confiança personalizada como entidade confiável.
-
Cole o JSON documento a seguir 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, adicione a política que você criou e escolha Avançar.
-
Na página Revisão, insira um nome para a função, por exemplo,
EMRServerlessAppRuntimeRoleB
e uma descrição opcional. -
Revisar os detalhes do perfil e selecionar Criar perfil.
Com essas funções, você e seus colegas de equipe podem se conectar ao mesmo aplicativo, cada um usando uma função de tempo de execução 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 na função de execução usada no Studio, portanto, usuários com funções de execução diferentes terão sessões separadas e isoladas do Spark. 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 IAM papel personalizado chamado
AssumableRole
com a seguinte configuração:-
Permissões: conceda as permissões necessárias (políticas do Amazon EMR Serverless) ao para permitir o acesso
AssumableRole
a recursos sem EMR servidor. Essa função também é conhecida como função do Access. -
Relação de confiança: configure a política de confiança
AssumableRole
para permitir assumir a função de execução (SageMakerExecutionRole
no diagrama entre contas) 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 EMR Serverless.
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 esquerdo, escolha Política e, em seguida, Criar política.
-
Na JSONguia, adicione as permissões do Amazon EMR Serverless, permitindo acesso e operações EMR sem servidor. Para obter detalhes sobre o documento de política, consulte Políticas EMR sem servidor em. Políticas de referência Substitua o (s)
region
accountID
, e oEMRServerlessAppRuntimeRole
(s) passado (s) por seus valores reais antes de copiar a lista de declarações para a política embutida de sua função.nota
EMRServerlessAppRuntimeRole
Aqui está a função de execução do tempo de execução do trabalho criada na Etapa 1 (EMRServerlessAppRuntimeRoleB
no diagrama de contas cruzadas acima). Você pode incluir quantas ARN sequências de funções de tempo de execução forem necessárias na permissão, separando-as por vírgulas. -
Escolha Avançar e, em seguida, forneça um nome de política.
-
Escolha Criar política.
-
No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.
-
Na página Criar função, escolha Política de confiança personalizada como entidade confiável.
-
Cole o JSON documento a seguir 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 Revisão, insira um nome para a função, por exemplo,
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 IAM função (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 SageMaker execução acessando seus aplicativos EMR sem servidor com as permissões necessárias para acessar recursos na conta confiável.
-
Etapa 1: Recupere a função ARN de SageMaker execução usada pelo seu espaço.
Para obter informações sobre espaços e funções de execução em SageMaker, consulteEntendendo as permissões de espaço de domínio e as funções de execução.
Para obter mais informações sobre como recuperar a função ARN de execução SageMaker do of, consulteObtenha sua função de execução.
-
Etapa 2: anexe as seguintes permissões à função de SageMaker execução acessando seu aplicativo EMR sem servidor.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
Escolha Funções e, em seguida, pesquise sua função de execução pelo nome no campo Pesquisar. O nome da função é a última parte doARN, após a última barra (/).
-
Siga o link para sua função.
-
Escolha Adicionar permissões e, em seguida, Criar política em linha.
-
Na JSONguia, adicione a política embutida que concede à função permissões para atualizar os domínios, perfis de usuário e espaços. Para obter detalhes sobre o documento
SageMakerUpdateResourcesPolicy
de política, consulte Política de ações de atualização de domínio, perfil de usuário e espaço emPolíticas de referência. Substituaregion
eaccountID
por seus valores reais antes de copiar a lista de declarações para a política embutida de sua função. -
Escolha Avançar 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 à função de execução as permissões para assumir
AssumableRole
e, em seguida, executar as ações permitidas pela política de acesso da função.emr-account
Substitua pelo ID da conta Amazon EMR Serverless eAssumableRole
pelo nome da função assumível criada na conta Amazon Serverless. EMR{ "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 sem servidor. JupyterLab Você pode usar o SageMaker console ou o script a seguir. Posteriormente, todas as suas tarefas do Apache Spark ou do Apache Hive criadas em seu notebook acessarão somente os dados e recursos permitidos pelas políticas anexadas à função de tempo de execução selecionada.
Importante
A não conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR sem servidor.
Políticas de referência
-
EMRPolíticas sem servidor: essa política permite gerenciar aplicativos EMR sem servidor, incluindo listar, criar (com as SageMaker tags necessárias), iniciar, interromper, obter detalhes, excluir, acessar endpoints do Livy e obter painéis de execução de tarefas. Também permite passar a função de tempo de execução do aplicativo EMR Serverless necessária para o serviço.
-
EMRServerlessListApplications
: permite a ListApplications ação em todos os recursos EMR sem servidor na região e AWS na conta especificadas. -
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 finalizem TagResource ações em recursos EMR sem servidor na região e AWS na conta especificadas. 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 em recursos EMR sem servidor na região e na AWS conta especificadas se os recursos não tiverem nenhuma das chaves de tag especificadas (sagemaker:domain-arn
,sagemaker:user-profile-arn
, esagemaker:space-arn
) definidas. -
EMRServerlessActions
: permite várias ações (StartApplication
,,StopApplication
,GetApplication
DeleteApplication
AccessLivyEndpoints
, eGetDashboardForJobRun
) em recursos 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 IAM política definida no JSON documento fornecido concede essas permissões, mas limita esse acesso à presença de SageMaker tags específicas nos aplicativos EMR Serverless para garantir que somente os recursos do Amazon EMR Serverless associados a um determinado SageMaker domínio, 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 SageMaker domínios, perfis de usuário e espaços 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/*" ] } ] }