

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
<a name="studio-emr-serverless-permissions"></a>

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](https://docs.aws.amazon.com/http://emr/latest/EMR-Serverless-UserGuide/jobs-spark.html#spark-defaults-executionRoleArn) 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-best-practices.html#security-practice-rbac).
  + 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
<a name="studio-set-up-emr-serverless-permissions-singleaccount"></a>

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 

![\[O diagrama mostra as funções e permissões necessárias para listar e conectar aplicativos EMR Serverless do Studio quando o Studio e os aplicativos estão na mesma conta. AWS\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-singleaccount.png)


Se seus aplicativos Amazon EMR e o Studio estiverem implantados na mesma AWS conta, siga estas etapas:

1. **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.](https://console.aws.amazon.com/S3)

   Para saber como encontrar um bucket pelo nome, consulte [Como acessar e listar um bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html). Para obter informações sobre como criar um bucket do Amazon S3, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). 

1. **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:

   1. Navegue até o [console do IAM](https://console.aws.amazon.com/iam).

   1. No painel de navegação à esquerda, selecione **Política** e, depois, **Criar política**.

   1. 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) para encontrar exemplos de políticas de runtime para uma função de runtime do EMR Sem Servidor.

   1. No painel de navegação à esquerda, selecione **Funções** e, em seguida, **Criar função**.

   1. Na página **Criar função**, escolha a opção **Política de confiança personalizada** como entidade confiável.

   1. Cole o seguinte documento JSON na seção **Política de confiança personalizada** e escolha **Avançar**:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Na página **Adicionar permissões**, selecione a política criada e, depois, **Avançar**.

   1. Na página **Revisar**, insira um nome para a função, como `EMRServerlessAppRuntimeRoleA`, e uma descrição opcional.

   1. 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.

1. **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, consulte[Compreendendo as permissões de espaço e os perfis de execução do domínio](execution-roles-and-spaces.md).

   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](sagemaker-roles.md#sagemaker-roles-get-execution-role)
**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](https://console.aws.amazon.com/sagemaker).
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.

1. **Etapa 4**: anexe as seguintes permissões à função de execução de SageMaker IA acessando seu aplicativo EMR Serverless.

   1. Abra o console do IAM em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. 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 (/).

   1. Acesse o link do seu perfil.

   1. Selecione **Adicionar permissões** e, em seguida, **Criar política em linha**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference). Substitua a *region*, o *accountID* e o *EMRServerlessAppRuntimeRole* 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.

   1. Escolha **Próximo** e, em seguida, forneça um **nome de política**.

   1. Selecione **Criar política**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference). Substitua a *region* e o *accountID* por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil.

1. **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](connect-emr-serverless-application.md) 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 falha na conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR Serverless.

------
#### [ SageMaker AI console ]

   Para associar suas funções de tempo de execução ao seu perfil de usuário ou domínio usando o console de SageMaker IA:

   1. Navegue até o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. No painel de navegação esquerdo, escolha **domínio** e selecione o domínio usando a função de execução de SageMaker IA cujas permissões você atualizou.

   1. 
      + Para adicionar suas funções de tempo de execução ao seu domínio: na guia **Configurações do aplicativo** da página de **detalhes do domínio**, navegue até a **JupyterLab**seção.
      + Para adicionar suas funções de tempo de execução ao seu perfil de usuário: na página de **detalhes do domínio**, escolha a guia **Perfis de usuário** e selecione o perfil de usuário usando a função de execução de SageMaker IA cujas permissões você atualizou. Na guia **Configurações do aplicativo**, navegue até a **JupyterLab**seção.

   1. Escolha **Editar** e adicione suas funções de ARNs execução de tempo de execução do EMR Serverless.

   1. Selecione **Enviar**.

   Na próxima vez em que você se conectar a um aplicativo EMR Serverless via JupyterLab, as funções de tempo de execução devem aparecer em um menu suspenso para seleção.

------
#### [ Python script ]

   Em um JupyterLab aplicativo iniciado em um espaço privado usando a função de execução de SageMaker IA cujas permissões você atualizou, execute o comando a seguir em um terminal. Substitua `domainID`, `user-profile-name`, `studio-accountID` e `EMRServerlessRuntimeExecutionRole`(s) por seus valores apropriados. Esse trecho de código atualiza as configurações do perfil do usuário para um perfil de usuário específico (`client.update_user_profile`) ou configurações de domínio (`client.update_domain`), associando especificamente as funções de runtime do EMR Sem Servidor que você criou anteriormente.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'ExecutionRoleArns': ["arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::studio-accountID:role/EMRServerlessRuntimeExecutionRoleAA"]
           }
           
       }
   })
   resp = client.describe_domain(DomainId="domainID")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Entre contas
<a name="studio-set-up-emr-serverless-permissions-crossaccount"></a>

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 

![\[O diagrama mostra as funções e permissões necessárias para listar e conectar aplicativos EMR Serverless do Studio quando o Studio e os aplicativos estão em contas diferentes. AWS\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-serverless-permissions-setup-crossaccount.png)


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](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, consulte[Compreendendo as permissões de espaço e os perfis de execução do domínio](execution-roles-and-spaces.md). 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](sagemaker-roles.md#sagemaker-roles-get-execution-role)
+ 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](https://console.aws.amazon.com/S3).

  Para obter informações sobre como criar um bucket do Amazon S3, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). Para saber como encontrar um bucket pelo nome, consulte [Como acessar e listar um bucket do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-bucket-intro.html).

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
<a name="studio-set-up-emr-serverless-permissions-crossaccount-emraccount"></a>

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*:

1. **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:

   1. Navegue até o [console do IAM](https://console.aws.amazon.com/iam).

   1. No painel de navegação à esquerda, selecione **Política** e, depois, **Criar política**.

   1. 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html).

   1. No painel de navegação à esquerda, selecione **Funções** e, em seguida, **Criar perfil**.

   1. Na página **Criar função**, escolha a opção **Política de confiança personalizada** como entidade confiável.

   1. Cole o seguinte documento JSON na seção **Política de confiança personalizada** e escolha **Avançar**:

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "emr-serverless.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Na página **Adicionar permissões**, selecione a política criada e, depois, **Avançar**.

   1. Na página **Revisar**, insira um nome para a função, como `EMRServerlessAppRuntimeRoleB`, e uma descrição opcional.

   1. 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.

1. **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:

   1. Navegue até o [console do IAM](https://console.aws.amazon.com/iam).

   1. No painel de navegação à esquerda, selecione **Política** e, depois, **Criar política**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference). Substitua a `region`, o `accountID` e o `EMRServerlessAppRuntimeRole` 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 (o `EMRServerlessAppRuntimeRoleB` 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. 

   1. Escolha **Próximo** e, em seguida, forneça um **nome de política**.

   1. Selecione **Criar política**.

   1. No painel de navegação à esquerda, selecione **Funções** e, em seguida, **Criar função**.

   1. Na página **Criar função**, escolha a opção **Política de confiança personalizada** como entidade confiável.

   1. 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 e `AmazonSageMaker-ExecutionRole` pela função de execução usada pelo seu JupyterLab espaço. 

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMaker-ExecutionRole"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Na página **Adicionar permissões**, adicione a permissão `EMRServerlessAppRuntimeRoleB` que você criou na etapa 2 e escolha **Avançar**.

   1. Na página **Revisar**, insira um nome para a função, como `AssumableRole`, e uma descrição opcional.

   1. 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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).

### Na conta do Studio
<a name="studio-set-up-emr-serverless-permissions-crossaccount-studioaccount"></a>

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.

1. **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, consulte[Compreendendo as permissões de espaço e os perfis de execução do domínio](execution-roles-and-spaces.md).

   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](sagemaker-roles.md#sagemaker-roles-get-execution-role)

1. **Etapa 2**: anexe as seguintes permissões à função de execução de SageMaker IA acessando seu aplicativo EMR Serverless.

   1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. 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 (/). 

   1. Acesse o link do seu perfil.

   1. Selecione **Adicionar permissões** e, em seguida, **Criar política em linha**.

   1. 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](#studio-set-up-emr-serverless-permissions-reference). Substitua a `region` e o `accountID` por seus valores reais antes de copiar a lista de instruções para a política em linha de seu perfil.

   1. Escolha **Próximo** e, em seguida, forneça um **nome de política**.

   1. Selecione **Criar política**.

   1. 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, e `AssumableRole` pelo nome da função assumível criada na conta do Amazon EMR Sem Servidor.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": {
              "Sid": "AllowSTSToAssumeAssumableRole",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Resource": "arn:aws:iam::111122223333:role/AssumableRole"
          }
      }
      ```

------

1. **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](connect-emr-serverless-application.md) 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 falha na conclusão dessa etapa impedirá que você conecte um JupyterLab notebook a um aplicativo EMR Serverless.

------
#### [ SageMaker AI console ]

   Para associar suas funções de tempo de execução ao seu perfil de usuário ou domínio usando o console de SageMaker IA:

   1. Navegue até o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. No painel de navegação esquerdo, escolha **domínio** e selecione o domínio usando a função de execução de SageMaker IA cujas permissões você atualizou.

   1. 
      + Para adicionar suas funções de tempo de execução ao seu domínio: na guia **Configurações do aplicativo** da página de **detalhes do domínio**, navegue até a **JupyterLab**seção.
      + Para adicionar suas funções de tempo de execução ao seu perfil de usuário: na página de **detalhes do domínio**, escolha a guia **Perfis de usuário** e selecione o perfil de usuário usando a função de execução de SageMaker IA cujas permissões você atualizou. Na guia **Configurações do aplicativo**, navegue até a **JupyterLab**seção.

   1. Escolha **Editar** e adicione sua função assumível e as funções ARNs de execução de tempo de execução do EMR Serverless.

   1. Selecione **Enviar**.

   Na próxima vez em que você se conectar a um aplicativo EMR Serverless via JupyterLab, as funções de tempo de execução devem aparecer em um menu suspenso para seleção.

------
#### [ Python script ]

    Em um JupyterLab aplicativo iniciado em um espaço privado usando a função de execução de SageMaker IA cujas permissões você atualizou, execute o comando a seguir em um terminal. Substitua `domainID`, `user-profile-name`, `studio-accountID` e `EMRServerlessRuntimeExecutionRole` por seus valores apropriados. Esse trecho de código atualiza as configurações do perfil do usuário para um perfil de usuário específico (`client.update_user_profile`) ou configurações de domínio (`client.update_domain`) em um domínio de SageMaker IA. Especificamente, ele define as funções de runtime para o Amazon EMR Sem Servidor, que você criou anteriormente. Também permite que o JupyterLab aplicativo assuma uma função específica do IAM (`AssumableRole`) para executar aplicativos EMR Serverless na conta do Amazon EMR.

   ```
   import botocore.session
   import json
   sess = botocore.session.get_session()
   client = sess.create_client('sagemaker')
   
   client.update_user_profile(
   DomainId="domainID", 
   UserProfileName="user-profile-name",
   DefaultUserSettings={
       'JupyterLabAppSettings': {
           'EmrSettings': {
               'AssumableRoleArns': ["arn:aws:iam::emr-accountID:role/AssumableRole"],
               'ExecutionRoleArns': ["arn:aws:iam::emr-accountID:role/EMRServerlessRuntimeExecutionRoleA", 
                                "arn:aws:iam::emr-accountID:role/AnotherRuntimeExecutionRole"]
           }
           
       }
   })
   resp = client.describe_user_profile(DomainId="domainID", UserProfileName=user-profile-name")
   
   resp['CreationTime'] = str(resp['CreationTime'])
   resp['LastModifiedTime'] = str(resp['LastModifiedTime'])
   print(json.dumps(resp, indent=2))
   ```

------

## Políticas de referência
<a name="studio-set-up-emr-serverless-permissions-reference"></a>
+ **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 para `emr-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` e `sagemaker: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` e `GetDashboardForJobRun`) nos recursos do EMR Sem Servidor, mas somente se os recursos tiverem as chaves de tag especificadas (`sagemaker:domain-arn`, `sagemaker:user-profile-arn` e `sagemaker: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. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "EMRServerlessListApplications",
              "Effect": "Allow",
              "Action": [
                  "emr-serverless:ListApplications"
              ],
              "Resource": "arn:aws:emr-serverless:us-east-1:111122223333:/*"
          },
          {
              "Sid": "EMRServerlessPassRole",
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/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:us-east-1:111122223333:/*",
              "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:us-east-1:111122223333:/*",
              "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:us-east-1:111122223333:/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.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "SageMakerUpdateResourcesPolicy",
              "Effect": "Allow",
              "Action": [
                  "sagemaker:UpdateDomain",
                  "sagemaker:UpdateUserprofile",
                  "sagemaker:UpdateSpace"
              ],
              "Resource": [
                  "arn:aws:sagemaker:us-east-1:111122223333:domain/*",
                  "arn:aws:sagemaker:us-east-1:111122223333:user-profile/*"
              ]
          }
      ]
  }
  ```

------