Como configurar a propagação de identidade confiável com o Amazon EMR Studio - Centro de Identidade do AWS IAM

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

Como configurar a propagação de identidade confiável com o Amazon EMR Studio

O procedimento a seguir orienta você na configuração do Amazon EMR Studio para a propagação confiável de identidade em consultas em grupos de trabalho do Amazon Athena ou clusters do Amazon EMR que executam o Apache Spark.

Pré-requisitos

Antes de começar este tutorial, você precisará configurar o seguinte:

Para concluir a configuração da propagação de identidade confiável do Amazon EMR Studio, o administrador do EMR Studio deve executar as seguintes etapas.

Etapa 1. Criar os perfis do IAM exigidos para o EMR Studio

Nesta etapa, o administrador do Amazon EMR Studio cria um perfil de serviço do IAM e um perfil de usuário do IAM para o EMR Studio.

  1. Crie um perfil de serviço do EMR Studio — O EMR Studio assume esse perfil do IAM para gerenciar com segurança espaços de trabalho e notebooks, conectar-se a clusters e lidar com interações de dados.

    1. Navegue até o console do IAM (https://console.aws.amazon.com/iam/) e crie uma função do IAM.

    2. Selecione AWS service (Serviço da AWS) como entidade confiável e, em seguida, escolha Amazon EMR. Anexe as políticas a seguir para definir as permissões e a relação de confiança do perfil.

      Para usar essas políticas, substitua a política italicized placeholder text no exemplo por suas próprias informações. Para obter instruções adicionais, consulte Criar uma política ou Editar uma política.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" } } }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": [ "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "Your-AWS-Account-ID" } } } ] }

      Para obter uma referência de todas as permissões de perfil de serviço, consulte Permissões de perfil de serviço do EMR Studio.

  2. Crie um perfil de usuário do EMR Studio para autenticação do IAM Identity Center — o EMR Studio assume esse perfil quando um usuário faz login pelo IAM Identity Center para gerenciar espaços de trabalho, clusters do EMR, tarefas e repositórios git. Esse perfil é usado para iniciar o fluxo de trabalho de propagação de identidade confiável.

    nota

    A função de usuário do EMR Studio não precisa incluir permissões para acessar as localizações das tabelas no Amazon S3 no Catálogo. AWS Glue AWS Lake Formation as permissões e as localizações registradas dos lagos serão usadas para receber permissões temporárias.

    O exemplo de política a seguir pode ser usado em um perfil que permite que um usuário do EMR Studio use grupos de trabalho do Athena para executar consultas.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:vpc/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:security-group/*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true", "ec2:CreateAction": "CreateSecurityGroup" } } }, { "Sid": "AllowSecretManagerListSecrets", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*", "Effect": "Allow" }, { "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:CreateSecret", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*", "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix", "Effect": "Allow", "Action": "secretsmanager:TagResource", "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*" }, { "Sid": "AllowPassingServiceRoleForWorkspaceCreation", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::111122223333:role/service-role/AmazonEMRStudio_ServiceRole_Name" ], "Effect": "Allow" }, { "Sid": "AllowS3ListAndLocationPermissions", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::*", "Effect": "Allow" }, { "Sid": "AllowS3ReadOnlyAccessToLogs", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::aws-logs-Your-AWS-Account-ID-Region/elasticmapreduce/*" ], "Effect": "Allow" }, { "Sid": "AllowAthenaQueryExecutions", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution", "athena:ListQueryExecutions", "athena:GetQueryResultsStream", "athena:ListWorkGroups", "athena:GetWorkGroup", "athena:CreatePreparedStatement", "athena:GetPreparedStatement", "athena:DeletePreparedStatement" ], "Resource": "*" }, { "Sid": "AllowGlueSchemaManipulations", "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }, { "Sid": "AllowQueryEditorToAccessWorkGroup", "Effect": "Allow", "Action": "athena:GetWorkGroup", "Resource": "arn:aws:athena:*:111122223333:workgroup*" }, { "Sid": "AllowConfigurationForWorkspaceCollaboration", "Action": [ "elasticmapreduce:UpdateEditor", "elasticmapreduce:PutWorkspaceAccess", "elasticmapreduce:DeleteWorkspaceAccess", "elasticmapreduce:ListWorkspaceAccessIdentities" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}" } } }, { "Sid": "DescribeNetwork", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid": "ListIAMRoles", "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" }, { "Sid": "AssumeRole", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }

    A política de confiança a seguir permite que o EMR Studio assuma o perfil:

    nota

    Permissões adicionais são necessárias para aproveitar os EMR Studio Workspaces e os EMR Notebooks. Consulte Criar políticas de permissões para usuários do EMR Studio para obter mais informações.

Etapa 2. Criar e configurar o EMR Studio

Nesta etapa, você criará um Amazon EMR Studio no console do EMR Studio e usará os perfis do IAM que você criou em Etapa 1. Criar os perfis do IAM exigidos para o EMR Studio.

  1. Navegue até o console do EMR Studio, selecione Criar Studio e a opção Configuração personalizada. Você pode criar um bucket S3 ou novo usar um existente. Você pode marcar a caixa Criptografar arquivos do espaço de trabalho com as próprias chaves KMS. Para obter mais informações, consulte AWS Key Management Service.

    Etapa 1: criar o EMR Studio no console do EMR.
  2. Em Perfil de serviço para permitir que o Studio acesse os recursos, selecione um perfil de serviço criado em Etapa 1. Criar os perfis do IAM exigidos para o EMR Studio no menu.

  3. Escolha IAM Identity Center em Autenticação. Selecione o perfil de usuário criado em Etapa 1. Criar os perfis do IAM exigidos para o EMR Studio.

    Etapa 3: criar o EMR Studio no console do EMR, selecionando o IAM Identity Center como método de autenticação.
  4. Marque a caixa Propagação de identidade confiável. Escolha Somente usuários e grupos atribuídos na seção Acesso à aplicação, o que permitirá que você conceda somente usuários e grupos autorizados a acessar este studio.

  5. (Opcional) — Você pode configurar a VPC e a sub-rede se estiver usando este Studio com clusters do EMR.

    Etapa 4: criar o EMR Studio no console do EMR selecionando as configurações de rede e segurança.
  6. Revise todos os detalhes e selecione Criar Studio.

  7. Depois de configurar um cluster do WorkGroup Athena ou do EMR, faça login na URL do Studio para:

    1. Executar consultas do Athena com o Editor de Consultas.

    2. Execute as tarefas do Spark no espaço de trabalho usando o caderno Jupyter.