Configurar EMR CloudFormation modelos da Amazon no Service Catalog - 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á.

Configurar EMR CloudFormation modelos da Amazon no Service Catalog

Este tópico pressupõe que os administradores estejam familiarizados com AWS CloudFormationos portfólios e produtos da Amazon. AWS Service Catalog EMR

Para simplificar a criação de EMR clusters da Amazon a partir do Studio, os administradores podem registrar um EMR CloudFormation modelo da Amazon como um produto em um AWS Service Catalogportfólio. Para disponibilizar o modelo aos cientistas de dados, eles devem associar o portfólio à função de SageMaker execução usada no Studio ou no Studio Classic. Por fim, para permitir que os usuários descubram modelos, provisionem clusters e se conectem aos EMR clusters da Amazon a partir do Studio ou do Studio Classic, os administradores precisam definir as permissões de acesso apropriadas.

Os EMR AWS CloudFormation modelos da Amazon podem permitir que os usuários finais personalizem vários aspectos do cluster. Por exemplo, os administradores podem definir uma lista aprovada de tipos de instância que os usuários podem escolher ao criar um cluster.

As instruções a seguir usam end-to-end CloudFormation pilhas para configurar um domínio Studio ou Studio Classic, um perfil de usuário, um portfólio do Service Catalog e preencher um modelo de EMR lançamento da Amazon. As etapas a seguir destacam as configurações específicas que os administradores devem aplicar em sua end-to-end pilha para permitir que o Studio ou o Studio Classic acessem os produtos do Service Catalog e provisionem clusters da AmazonEMR.

nota

O GitHub repositório aws-samples/ sagemaker-studio-emr contém exemplos de end-to-end CloudFormation pilhas que implantam as IAM funções, a rede, o domínio, o perfil de SageMaker usuário, o portfólio do Service Catalog necessários e adicionam um modelo de lançamento da Amazon. EMR CloudFormation Os modelos oferecem diferentes opções de autenticação entre o Studio ou o Studio Classic e o EMR cluster da Amazon. Nesses modelos de exemplo, a CloudFormation pilha principal passa SageMakerVPC, o grupo de segurança e os parâmetros de sub-rede para o modelo de EMR cluster da Amazon.

O repositório sagemaker-studio-emr/cloudformation/emr_servicecatalog_templates contém vários exemplos de modelos de lançamento da Amazon, incluindo opções para implantações em uma única conta e entre contas. EMR CloudFormation

Consulte Conecte-se a um EMR cluster da Amazon a partir do SageMaker Studio ou do Studio Classic para obter detalhes sobre os métodos de autenticação que você pode usar para se conectar a um EMR cluster da Amazon.

Para permitir que cientistas de dados descubram EMR CloudFormation modelos da Amazon e provisionem clusters do Studio ou do Studio Classic, siga estas etapas.

Etapa 0: verifique sua rede e prepare sua CloudFormation pilha

Antes de começar:

  • Verifique se você analisou os requisitos de rede e segurança emConfigurar redes.

  • Você deve ter uma end-to-end CloudFormation pilha existente que ofereça suporte ao método de autenticação de sua escolha. Você pode encontrar exemplos desses CloudFormation modelos no repositório sagemaker-studio-emr GitHub aws-samples/. As etapas a seguir destacam as configurações específicas em sua end-to-end pilha para permitir o uso de EMR modelos da Amazon no Studio ou no Studio Classic.

Etapa 1: Associar seu portfólio do Service Catalog ao SageMaker

Em seu portfólio do Service Catalog, associe seu ID de portfólio à função de SageMaker execução que acessa seu cluster.

Para fazer isso, adicione a seção a seguir (aqui em YAML formato) à sua pilha. Isso concede à função de SageMaker execução acesso ao portfólio especificado do Service Catalog contendo produtos como os EMR modelos da Amazon. Ele permite que as funções assumidas pela SageMaker lancem esses produtos.

Substituir SageMakerExecutionRole.Arn e SageMakerStudioEMRProductPortfolio.ID com seus valores reais.

SageMakerStudioEMRProductPortfolioPrincipalAssociation: Type: AWS::ServiceCatalog::PortfolioPrincipalAssociation Properties: PrincipalARN: SageMakerExecutionRole.Arn PortfolioId: SageMakerStudioEMRProductPortfolio.ID PrincipalType: IAM
nota

Qual função de execução você deve considerar?

A interface do usuário do Studio determina suas permissões a partir da função de execução associada ao perfil de usuário que a iniciou. A interface do usuário define essas permissões no momento do lançamento. No entanto, os espaços que iniciam JupyterLab os aplicativos do Studio Classic podem ter permissões separadas.

Para obter acesso consistente aos EMR modelos e clusters da Amazon em todos os aplicativos (como a interface do usuário do Studio e o Studio Classic), conceda o mesmo subconjunto de permissões para todas as funções no domínio, no perfil do usuário ou no nível do espaço. JupyterLab As permissões devem permitir a descoberta e o provisionamento de clusters da AmazonEMR.

Para obter detalhes sobre o conjunto de IAM permissões necessário, consulte a seção de permissões.

Etapa 2: referenciar um EMR modelo da Amazon em um produto do Service Catalog

Em um produto do Service Catalog do seu portfólio, faça referência a um recurso de EMR modelo da Amazon e garanta sua visibilidade no Studio ou no Studio Classic.

Para fazer isso, faça referência ao recurso de EMR modelo da Amazon na definição do produto Service Catalog e, em seguida, adicione o seguinte "sagemaker:studio-visibility:emr" conjunto de chaves de tag ao valor "true" (veja o exemplo em YAML formato).

Na definição do produto Service Catalog, o AWS CloudFormation modelo do cluster é referenciado por meio URL de. A tag adicional definida como true garante a visibilidade dos EMR modelos da Amazon no Studio ou no Studio Classic.

nota

O EMR modelo da Amazon referenciado pelo fornecido URL no exemplo não impõe nenhum requisito de autenticação quando lançado. Essa opção é destinada a fins de demonstração e aprendizado. Não é recomendado em um ambiente de produção.

SMStudioEMRNoAuthProduct: Type: AWS::ServiceCatalog::CloudFormationProduct Properties: Owner: AWS Name: SageMaker Studio Domain No Auth EMR ProvisioningArtifactParameters: - Name: SageMaker Studio Domain No Auth EMR Description: Provisions a SageMaker domain and No Auth EMR Cluster Info: LoadTemplateFromURL: Link to your CloudFormation template. For example, https://aws-blogs-artifacts-public.s3.amazonaws.com/artifacts/astra-m4-sagemaker/end-to-end/CFN-EMR-NoStudioNoAuthTemplate-v3.yaml Tags: - Key: "sagemaker:studio-visibility:emr" Value: "true"

Etapa 3: parametrizar o modelo da Amazon EMR CloudFormation

O CloudFormation modelo usado para definir o EMR cluster da Amazon dentro do produto Service Catalog permite que os administradores especifiquem parâmetros configuráveis. Os administradores podem definir Default valores e AllowedValues intervalos para esses parâmetros na Parameters seção do modelo. Durante o processo de lançamento do cluster, os cientistas de dados podem fornecer entradas personalizadas ou fazer seleções a partir dessas opções predefinidas para personalizar certos aspectos do cluster da Amazon. EMR

O exemplo a seguir ilustra parâmetros de entrada adicionais que os administradores podem definir ao criar um modelo da AmazonEMR.

"Parameters": { "EmrClusterName": { "Type": "String", "Description": "EMR cluster Name." }, "MasterInstanceType": { "Type": "String", "Description": "Instance type of the EMR master node.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge" ] }, "CoreInstanceType": { "Type": "String", "Description": "Instance type of the EMR core nodes.", "Default": "m5.xlarge", "AllowedValues": [ "m5.xlarge", "m5.2xlarge", "m5.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge" ] }, "CoreInstanceCount": { "Type": "String", "Description": "Number of core instances in the EMR cluster.", "Default": "2", "AllowedValues": [ "2", "5", "10" ] }, "EmrReleaseVersion": { "Type": "String", "Description": "The release version of EMR to launch.", "Default": "emr-5.33.1", "AllowedValues": [ "emr-5.33.1", "emr-6.4.0" ] } }

Depois que os administradores disponibilizarem os EMR CloudFormation modelos da Amazon no Studio, os cientistas de dados poderão usá-los para autoprovisionar clusters da AmazonEMR. A Parameters seção definida no modelo se traduz em campos de entrada no formulário de criação de cluster no Studio ou no Studio Classic. Para cada parâmetro, os cientistas de dados podem inserir um valor personalizado na caixa de entrada ou selecionar entre as opções predefinidas listadas em um menu suspenso, que corresponde ao AllowedValues especificado no modelo.

A ilustração a seguir mostra o formulário dinâmico montado a partir de um EMR modelo da CloudFormation Amazon para criar um EMR cluster da Amazon no Studio ou no Studio Classic.

Ilustração de um formulário dinâmico montado a partir de um EMR modelo da CloudFormation Amazon para criar um EMR cluster da Amazon a partir do Studio ou do Studio Classic.

Visite Inicie um EMR cluster da Amazon a partir do Studio ou do Studio Classic para saber como lançar um cluster do Studio ou do Studio Classic usando esses EMR modelos da Amazon.

Etapa 4: configurar as permissões para permitir a listagem e o lançamento de EMR clusters da Amazon a partir do Studio

Por fim, anexe IAM as permissões necessárias para permitir a listagem de EMR clusters Amazon existentes em execução e o autoprovisionamento de novos clusters do Studio ou do Studio Classic.

As funções às quais você deve adicionar essas permissões dependem se o Studio ou o Studio Classic e a Amazon EMR estão implantados na mesma conta (escolha Conta única) ou em contas diferentes (escolha Conta cruzada).

nota

Atualmente, o Studio não oferece suporte ao acesso aos EMR clusters da Amazon criados em uma AWS conta diferente da conta na qual o Studio está implantado. O acesso entre contas está disponível somente no Studio Classic.

Para obter mais informações sobre o acesso entre contas usando funções, consulte Acesso a recursos entre contas em IAM.

Se seus EMR clusters da Amazon e o Studio ou o Studio Classic estiverem implantados na mesma AWS conta, anexe as seguintes permissões à função de SageMaker execução que acessa seu cluster.

nota

Qual função de execução você deve considerar?

A interface do usuário do Studio determina suas permissões a partir da função de execução associada ao perfil de usuário que a iniciou. A interface do usuário define essas permissões no momento do lançamento. No entanto, os espaços que iniciam JupyterLab os aplicativos do Studio Classic podem ter permissões separadas.

Para obter acesso consistente aos EMR modelos e clusters da Amazon em todos os aplicativos (como a interface do usuário do Studio e o Studio Classic), conceda o mesmo subconjunto de permissões para todas as funções no domínio, no perfil do usuário ou no nível do espaço. JupyterLab As permissões devem permitir a descoberta e o provisionamento de clusters da AmazonEMR.

  1. Encontre a função de execução do seu domínio, perfil de usuário ou espaço. Para obter informações sobre como recuperar a função de execução, consulteObtenha sua função de execução.

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

  3. Escolha Funções e, em seguida, pesquise a função que você criou digitando o nome da função no campo Pesquisar.

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

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

  6. Na JSONguia, adicione a seguinte JSON política com as permissões:

    • AllowPresignedUrlpermite gerar pré-assinados URLs para acessar a interface do usuário do Spark a partir do Studio ou do Studio Classic.

    • AllowClusterDiscoverye AllowClusterDetailsDiscovery permita listar e descrever EMR clusters da Amazon na conta/região do Studio ou do Studio Classic.

    • AllowEMRTemplateDiscoverypermite pesquisar EMR modelos da Amazon no Service Catalog. O Studio e o Studio Classic usam isso para mostrar os modelos disponíveis.

    • AllowSagemakerProjectManagementpermite criar e excluir. Em SageMaker, o acesso ao AWS Service Catalog é gerenciado por meio deAutomatize MLOps com projetos SageMaker .

    A IAM política definida no fornecido JSON concede essas permissões. Substituir studio-region e studio-account com os valores reais de sua região e ID da AWS conta antes de copiar a lista de extratos para a política embutida de sua função.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:studio-region:studio-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" }, { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Escolha Avançar e, em seguida, forneça um nome de política.

  8. Escolha Criar política.

Se seus EMR clusters da Amazon e o Studio ou o Studio Classic forem implantados em AWS contas separadas, você configura as permissões em ambas as contas.

Na EMR conta da Amazon

Na conta em que a Amazon EMR está implantada, também chamada de conta confiável, crie uma IAM função personalizada nomeada ASSUMABLE-ROLE com a seguinte configuração:

  • Permissões: conceda as permissões necessárias para ASSUMABLE-ROLE permitir o acesso aos EMR recursos da Amazon.

  • Relação de confiança: configure a política de confiança ASSUMABLE-ROLE para permitir assumir a função da conta do Studio que requer acesso.

Ao assumir a função, o Studio ou o Studio Classic podem obter acesso temporário às permissões necessárias na AmazonEMR.

  • Crie uma nova política para a função.

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

    2. No menu à esquerda, escolha Políticas e, em seguida, Criar política.

    3. Na JSONguia, adicione a seguinte JSON política com as permissões:

      • AllowPresignedUrlpermite gerar pré-assinados URLs para acessar a interface do usuário do Spark de dentro do Studio.

      • AllowClusterDiscoverye AllowClusterDetailsDiscovery permite listar e descrever EMR clusters da Amazon na conta/região do Studio.

      Substituir emr-region e emr-account com seus valores reais de região e ID AWS da conta antes de copiá-los JSON para sua apólice.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPresignedUrl", "Effect": "Allow", "Action": [ "elasticmapreduce:CreatePersistentAppUI", "elasticmapreduce:DescribePersistentAppUI", "elasticmapreduce:GetPersistentAppUIPresignedURL", "elasticmapreduce:GetOnClusterAppUIPresignedURL" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDetailsDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListInstances", "elasticmapreduce:ListInstanceGroups", "elasticmapreduce:DescribeSecurityConfiguration" ], "Resource": [ "arn:aws:elasticmapreduce:emr-region:emr-account:cluster/*" ] }, { "Sid": "AllowClusterDiscovery", "Effect": "Allow", "Action": [ "elasticmapreduce:ListClusters" ], "Resource": "*" } ] }
    4. Dê um nome à sua política e escolha Criar política.

  • Crie uma IAM função personalizada chamada eASSUMABLE-ROLE, em seguida, anexe sua nova política à função.

    1. No IAM console, escolha Funções no menu à esquerda e, em seguida, Criar função.

    2. Para Tipo de entidade confiável, escolha AWS conta e, em seguida, Avançar.

    3. Selecione a permissão que você acabou de criar e escolha Avançar.

    4. Dê um nome à sua função ASSUMABLE-ROLE e escolha o botão Editar à direita da Etapa 1: Selecionar entidades confiáveis.

    5. Para Tipo de entidade confiável, escolha Política de confiança personalizada e cole a seguinte relação de confiança. Isso concede à conta em que o Studio está implantado (a conta confiável) a permissão para assumir essa função.

      Substituir studio-account com o ID real AWS da conta. Escolha Próximo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::studio-account:root" }, "Action": "sts:AssumeRole" } ] }
    6. Encontre e selecione a permissão que você acabou de criar novamente e escolha Avançar.

    7. Sua política de confiança deve ser atualizada com a última versão JSON que você colou. Selecione Criar função.

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 ou o Studio Classic está implantado, também chamada de conta confiável, atualize a função de SageMaker execução acessando seu cluster com as permissões necessárias para acessar recursos na conta confiável.

nota

Qual função de execução você deve considerar?

A interface do usuário do Studio determina suas permissões a partir da função de execução associada ao perfil de usuário que a iniciou. A interface do usuário define essas permissões no momento do lançamento. No entanto, os espaços que iniciam JupyterLab os aplicativos do Studio Classic podem ter permissões separadas.

Para obter acesso consistente aos EMR modelos e clusters da Amazon em todos os aplicativos (como a interface do usuário do Studio e o Studio Classic), conceda o mesmo subconjunto de permissões para todas as funções no domínio, no perfil do usuário ou no nível do espaço. JupyterLab As permissões devem permitir a descoberta e o provisionamento de clusters da AmazonEMR.

  1. Encontre a função de execução do seu domínio, perfil de usuário ou espaço. Para obter informações sobre como recuperar a função de execução, consulteObtenha sua função de execução.

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

  3. Escolha Funções e, em seguida, pesquise a função que você criou digitando o nome da função no campo Pesquisar.

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

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

  6. Na JSONguia, adicione a seguinte JSON política com as permissões:

    • AllowEMRTemplateDiscoverypermite pesquisar EMR modelos da Amazon no Service Catalog. O Studio Classic usa isso para mostrar os modelos disponíveis.

    • AllowSagemakerProjectManagementpermite criar e excluir. Em SageMaker, o acesso ao AWS Service Catalog é gerenciado por meio deAutomatize MLOps com projetos SageMaker .

    A IAM política definida no fornecido JSON concede essas permissões. Substituir studio-region e studio-account com seus valores reais de região e ID AWS da conta antes de copiar a lista de extratos para sua apólice.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRTemplateDiscovery", "Effect": "Allow", "Action": [ "servicecatalog:SearchProducts" ], "Resource": "*" }, { "Sid": "AllowSagemakerProjectManagement", "Effect": "Allow", "Action": [ "sagemaker:CreateProject", "sagemaker:DeleteProject" ], "Resource": "arn:aws:sagemaker:studio-region:studio-account:project/*" } ] }
  7. Escolha Avançar e, em seguida, forneça um nome de política.

  8. Escolha Criar política.

  9. Repita a etapa para adicionar outra política em linha à função de execução do Studio. A política deve permitir a suposição de funções entre contas para descobrir recursos em outra conta.

    Na página de detalhes da função de execução, escolha Adicionar permissões e, em seguida, Criar política embutida.

  10. Na JSONguia, adicione a JSON política a seguir. Atualize o emr-account com o ID da EMR conta da Amazon.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRoleAssumptionForCrossAccountDiscovery", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": ["arn:aws:iam::emr-account:role/ASSUMABLE-ROLE" ] }] }
  11. Escolha Avançar, forneça um nome de política e escolha Criar política.

  12. Para permitir a listagem de EMR clusters da Amazon implantados na mesma conta do Studio, adicione uma política embutida adicional à sua função de execução do Studio, conforme definido na guia Conta única do. Configurar a listagem de EMR clusters da Amazon

Passe a função ARN no lançamento do servidor Jupyter

Por fim, veja Configuração adicional para acesso entre contas para saber como fornecer o ARN do ASSUMABLE-ROLE para sua função de execução do Studio. O ARN é carregado pelo servidor Jupyter no lançamento. A função de execução usada pelo Studio assume essa função entre contas para descobrir e se conectar aos EMR clusters da Amazon na conta confiável.