Configure as permissões para permitir a listagem e o lançamento de EMR aplicativos da Amazon a partir do SageMaker Studio - Amazon SageMaker

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

O diagrama mostra as funções e permissões necessárias para listar e conectar aplicativos EMR sem servidor do Studio quando o Studio e os aplicativos estão na mesma AWS conta.

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

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

  2. 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 (EMRServerlessRuntimeExecutionRoleAno 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:

    1. Navegue até o console do IAM.

    2. No painel de navegação esquerdo, escolha Política e, em seguida, Criar política.

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

    4. No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.

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

    6. 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" } ] }
    7. Na página Adicionar permissões, adicione a política que você criou e escolha Avançar.

    8. Na página Revisão, insira um nome para a função, por exemplo, EMRServerlessAppRuntimeRoleA e uma descrição opcional.

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

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

  4. Etapa 4: anexe as seguintes permissões à função de SageMaker execução acessando seu aplicativo EMR sem servidor.

    1. Abra o console do IAM em https://console.aws.amazon.com/sagemaker/.

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

    3. Siga o link para sua função.

    4. Escolha Adicionar permissões e, em seguida, Criar política em linha.

    5. 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 passou EMRServerlessAppRuntimeRole(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.

    6. Escolha Avançar e, em seguida, forneça um nome de política.

    7. Escolha Criar política.

    8. 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 o region e accountID com seus valores reais antes de copiar a lista de declarações para a política embutida de sua função.

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

    SageMaker console

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

    1. Navegue até o SageMaker console em https://console.aws.amazon.com/sagemaker/.

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

      • 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 JupyterLabseção.

      • Para adicionar suas funções de tempo de execução ao seu perfil de usuário: na página Detalhes do domínio, escolha a guia Perfis de usuário, selecione o perfil de usuário usando a função de SageMaker execução cujas permissões você atualizou. Na guia Configurações do aplicativo, navegue até a JupyterLabseção.

    3. Escolha Editar e adicione suas funções ARNs de execução de tempo de execução EMR sem servidor.

    4. Selecione Enviar.

    Na próxima vez em que você se conectar a um aplicativo EMR sem servidor 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 SageMaker execução cujas permissões você atualizou, execute o comando a seguir em um terminal. Substitua o domainID user-profile-namestudio-accountID,, e EMRServerlessRuntimeExecutionRole (s) por seus valores adequados. Esse trecho de código atualiza as configurações do perfil do usuário para um perfil de usuário específico (client.update_userprofile) ou configurações de domínio (client.update_domain), associando especificamente as funções de execução do EMR Serverless Runtime que você criou anteriormente.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( 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))

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

O diagrama mostra as funções e permissões necessárias para listar e conectar aplicativos EMR sem servidor do Studio quando o Studio e os aplicativos estão 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:

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:

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

    1. Navegue até o console do IAM.

    2. No painel de navegação esquerdo, escolha Política e, em seguida, Criar política.

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

    4. No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.

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

    6. 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" } ] }
    7. Na página Adicionar permissões, adicione a política que você criou e escolha Avançar.

    8. Na página Revisão, insira um nome para a função, por exemplo, EMRServerlessAppRuntimeRoleB e uma descrição opcional.

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

  2. 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 (SageMakerExecutionRoleno 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:

    1. Navegue até o console do IAM.

    2. No painel de navegação esquerdo, escolha Política e, em seguida, Criar política.

    3. 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) regionaccountID, e o EMRServerlessAppRuntimeRole (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

      EMRServerlessAppRuntimeRoleAqui está a função de execução do tempo de execução do trabalho criada na Etapa 1 (EMRServerlessAppRuntimeRoleBno 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.

    4. Escolha Avançar e, em seguida, forneça um nome de política.

    5. Escolha Criar política.

    6. No painel de navegação esquerdo, escolha Funções e, em seguida, Criar função.

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

    8. Cole o JSON documento a seguir na seção Política de confiança personalizada e escolha Avançar.

      studio-accountSubstitua pelo ID da conta do Studio e AmazonSageMaker-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" } ] }
    9. Na página Adicionar permissões, adicione a permissão EMRServerlessAppRuntimeRoleB que você criou na Etapa 2 e escolha Avançar.

    10. Na página Revisão, insira um nome para a função, por exemplo, AssumableRole e uma descrição opcional.

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

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

  2. Etapa 2: anexe as seguintes permissões à função de SageMaker execução acessando seu aplicativo EMR sem servidor.

    1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

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

    3. Siga o link para sua função.

    4. Escolha Adicionar permissões e, em seguida, Criar política em linha.

    5. 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. Substitua region e accountID por seus valores reais antes de copiar a lista de declarações para a política embutida de sua função.

    6. Escolha Avançar e, em seguida, forneça um nome de política.

    7. Escolha Criar política.

    8. 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-accountSubstitua pelo ID da conta Amazon EMR Serverless e AssumableRole 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" } }
  3. 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.

    SageMaker console

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

    1. Navegue até o SageMaker console em https://console.aws.amazon.com/sagemaker/.

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

      • 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 JupyterLabseção.

      • Para adicionar suas funções de tempo de execução ao seu perfil de usuário: na página Detalhes do domínio, escolha a guia Perfis de usuário, selecione o perfil de usuário usando a função de SageMaker execução cujas permissões você atualizou. Na guia Configurações do aplicativo, navegue até a JupyterLabseção.

    3. Escolha Editar e adicione suas funções presumíveis e as funções ARNs de execução de tempo de execução EMR sem servidor.

    4. Selecione Enviar.

    Na próxima vez em que você se conectar a um aplicativo EMR sem servidor 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 SageMaker execução cujas permissões você atualizou, execute o comando a seguir em um terminal. Substitua o domainIDuser-profile-name,studio-accountID,, e EMRServerlessRuntimeExecutionRole por seus valores adequados. Esse trecho de código atualiza as configurações do perfil do usuário para um perfil de usuário específico (client.update_userprofile) ou configurações de domínio (client.update_domain) em um SageMaker domínio. Especificamente, ele define as funções de execução de tempo de execução do Amazon EMR Serverless, que você criou anteriormente. Também permite que o JupyterLab aplicativo assuma uma IAM função específica (AssumableRole) para executar aplicativos EMR sem servidor na conta da AmazonEMR.

    import botocore.session import json sess = botocore.session.get_session() client = sess.create_client('sagemaker') client.update_userprofile( 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

  • 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 para emr-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 DeleteApplicationAccessLivyEndpoints, 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/*" ] } ] }