Introdução à propagação de identidade confiável para o EMR Serverless - Amazon EMR

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

Introdução à propagação de identidade confiável para o EMR Serverless

Esta seção ajuda você a configurar o aplicativo EMR-Serverless com o Apache Livy Endpoint para integrar-se ao AWS IAM Identity Center e permitir a propagação confiável de identidades.

Pré-requisitos

  • Uma instância do Identity Center na AWS região em que você deseja criar uma propagação de identidade confiável habilitada para EMR Serverless Apache Livy Endpoint. Uma instância do Identity Center só pode existir em uma única região para uma AWS conta. Consulte Habilitar o IAM Identity Center e provisione os usuários e grupos da sua fonte de identidades no IAM Identity Center.

  • Habilite a propagação de identidade confiável para serviços downstream, como Lake Formation ou S3 Access Grants ou cluster Amazon Redshift com os quais a carga de trabalho interativa interage para acessar dados.

Permissões necessárias para criar o aplicativo EMR Serverless habilitado para propagação de identidade confiável

Além das permissões básicas necessárias para acessar o EMR Serverless, você deve configurar permissões adicionais para sua identidade ou função do IAM que é usada para criar o aplicativo EMR Serverless habilitado para propagação de identidade confiável. Para propagação de identidade confiável, o EMR creates/bootstraps Serverless é um aplicativo de centro de identidade gerenciado por um único serviço em sua conta, que o serviço utiliza para validação de identidade e propagação de identidade para downstream.

"sso:DescribeInstance", "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationGrant", "sso:PutApplicationAccessScope"
  • sso:DescribeInstance— Concede permissão para descrever e validar o IAM Identity Center InstanceARN que você especifica no parâmetro. identity-center-configuration

  • sso:CreateApplication— Concede permissão para criar um aplicativo IAM Identity Center gerenciado pelo EMR Serverless, que é usado para ações. trusted-identity-propatgion

  • sso:DeleteApplication— concede permissão para limpar um aplicativo IAM Identity Center gerenciado pelo EMR Serverless

  • sso:PutApplicationAuthenticationMethod— Concede permissão para colocar AuthenticationMethod no aplicativo IAM Identity Center gerenciado sem servidor do EMR, que permite que o principal de serviço sem servidor do EMR interaja com o aplicativo IAM Identity Center.

  • sso:PutApplicationAssignmentConfiguration— Concede permissão para definir a configuração ser-assignment-not-required “U” no aplicativo IAM Identity Center.

  • sso:PutApplicationGrant— Concede permissão para aplicar concessões de troca de tokens, IntrospectToken, RefreshToken e RevokeToken em um aplicativo do IAM Identity Center.

  • sso:PutApplicationAccessScope— Concede permissão para aplicar a propagação de identidade confiável habilitada no escopo downstream ao aplicativo IAM Identity Center. Aplicamos os escopos “redshift:connect”, “lakeformation:query” e “s3:read_write” para habilitar esses serviços. trusted-identity-propagation

Crie um aplicativo EMR Serverless habilitado para propagação de identidade confiável

Você precisa especificar o —identity-center-configuration campo com identityCenterInstanceArn para habilitar a propagação de identidade confiável no aplicativo. Use o comando de exemplo a seguir para criar um aplicativo EMR Serverless que tenha a propagação de identidade confiável ativada.

nota

Você também precisa especificar --interactive-configuration '{"livyEndpointEnabled":true}' se a propagação de identidade confiável está habilitada somente para o Apache Livy Endpoint.

aws emr-serverless create-application \ --release-label emr-7.8.0 \ --type "SPARK" \ --identity-center-configuration '{"identityCenterInstanceArn" : "arn:aws:sso:::instance/ssoins-123456789"}' \ --interactive-configuration '{"livyEndpointEnabled":true}'
  • identity-center-configuration— (opcional) Habilita a propagação de identidade confiável do Identity Center, se especificado.

  • identityCenterInstanceArn: (obrigatório) o ARN da instância do Centro de Identidade.

Caso você não tenha as permissões necessárias do Identity Center (mencionadas acima), você deve primeiro criar o aplicativo EMR Serverless sem propagação de identidade confiável (por exemplo, não especificar —identity-center-configuration parâmetros) e depois pedir ao administrador do Identity Center que habilite a propagação de identidade confiável invocando a API update-application, veja o exemplo abaixo:

aws emr-serverless update-application \ --application-id applicationId \ --identity-center-configuration '{"identityCenterInstanceArn" : "arn:aws:sso:::instance/ssoins-123456789"}'

O EMR Serverless cria um aplicativo de centro de identidade gerenciado por serviços em sua conta que o serviço utiliza para validações de identidade e propagação de identidade para serviços posteriores. O aplicativo Identity Center gerenciado criado pelo EMR Serverless é compartilhado entre todos os aplicativos trusted-identity-propagation EMR Serverless habilitados em sua conta.

nota

Não modifique manualmente as configurações no aplicativo gerenciado do Identity Center. Qualquer alteração pode afetar todos os aplicativos EMR Serverless trusted-identity-propagation habilitados em sua conta.

Permissões do Job Execution Role para propagar a identidade

Como o EMR-Serverless utiliza job-execution-role credenciais aprimoradas de identidade para propagar a identidade para AWS serviços posteriores, a política de confiança da Job Execution Role deve ter sts:SetContext permissão adicional para aprimorar a credencial da função de execução de tarefas com identidade para permitir serviços posteriores, como S3 access-grant trusted-identity-propagation, Lake Formation ou Amazon Redshift. Para saber mais sobre como criar uma função, consulte Criar uma função de tempo de execução de trabalho.

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

Além disso, JobExecutionRole precisaria de permissões para AWS serviços posteriores que o job-run invocaria para buscar dados usando a identidade do usuário. Consulte os links abaixo para configurar o S3 Access Grant, Lake Formation.