Crie um perfil de serviço do EMR Studio - 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á.

Crie um perfil de serviço do EMR Studio

Sobre o perfil de serviço do EMR Studio

Cada EMR Studio usa um perfil do IAM com permissões que possibilitam ao Studio interagir com outros serviços da AWS. Esse perfil de serviço deve incluir permissões que possibilitam ao EMR Studio estabelecer um canal de rede seguro entre os Workspaces e os clusters, armazenar arquivos de cadernos no Amazon S3 Control e acessar o AWS Secrets Manager ao vincular um Workspace a um repositório Git.

Use o perfil de serviço do Studio (em vez das políticas de sessão) para definir todas as permissões de acesso do Amazon S3 para armazenar arquivos de cadernos e para definir as permissões de acesso do AWS Secrets Manager.

Como criar um perfil de serviço para o EMR Studio no Amazon EC2 ou no Amazon EKS

  1. Siga as instruções em Criação de um perfil para delegar permissões a um serviço da AWS para criar o perfil de serviço usando a política de confiança apresentada a seguir.

    Importante

    A política de confiança a seguir inclui as chaves de condição globais aws:SourceArn e aws:SourceAccount para limitar as permissões que você concede ao EMR Studio para recursos específicos em sua conta. Fazer isso pode proteger você contra o problema de “confused deputy”.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "<account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:elasticmapreduce:<region>:<account-id>:*" } } } ] }
  2. Remova as permissões de perfil padrão. Em seguida, inclua as permissões do exemplo de política de permissões do IAM a seguir. Como alternativa, você pode criar uma política personalizada que use as Permissões de perfil de serviço do EMR Studio.

    Importante
    • Para que o controle de acesso baseado em tags do Amazon EC2 funcione com o EMR Studio, você deve definir o acesso à API ModifyNetworkInterfaceAttribute conforme mostrado na política a seguir.

    • Para que o EMR Studio funcione com o perfil de serviço, você não deve alterar as seguintes instruções: AllowAddingEMRTagsDuringDefaultSecurityGroupCreation e AllowAddingTagsDuringEC2ENICreation.

    • Para usar a política de exemplo, você deve etiquetar os recursos apresentados a seguir com a chave "for-use-with-amazon-emr-managed-policies" e o valor "true".

      • Sua Amazon Virtual Private Cloud (VPC) para o EMR Studio.

      • Cada sub-rede que deseja usar com o Studio.

      • Qualquer grupo de segurança personalizado do EMR Studio. Você deve etiquetar todos os grupos de segurança criados durante o período de pré-visualização do EMR Studio se desejar continuar a usá-los.

      • Os segredos mantidos no AWS Secrets Manager que os usuários do Studio usam para vincular repositórios Git a um Workspace.

      Você pode aplicar etiquetas aos recursos usando a guia Etiquetas na tela de recursos relevantes no AWS Management Console.

    Quando aplicável, altere * em "Resource":"*" na política apresentada a seguir para especificar o nome do recurso da Amazon (ARN) dos recursos abrangidos pela instrução para o seu caso de uso.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowEMRReadOnlyActions", "Effect": "Allow", "Action": [ "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Sid": "AllowEC2ENIActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENIAttributeAction", "Effect": "Allow", "Action": [ "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Sid": "AllowEC2SecurityGroupActionsWithEMRTags", "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteNetworkInterfacePermission" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowDefaultEC2SecurityGroupsCreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateSecurityGroup" ], "Resource": [ "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "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": "AllowEC2ENICreationWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*" ], "Condition": { "StringEquals": { "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowAddingTagsDuringEC2ENICreation", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" } } }, { "Sid": "AllowEC2ReadOnlyActions", "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "AllowSecretsManagerReadOnlyActionsWithEMRTags", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:*", "Condition": { "StringEquals": { "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true" } } }, { "Sid": "AllowWorkspaceCollaboration", "Effect": "Allow", "Action": [ "iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers" ], "Resource": "*" } ] }
  3. Conceda ao seu perfil de serviço o acesso de leitura e de gravação ao local do Amazon S3 para o EMR Studio. Use o conjunto mínimo de permissões apresentado a seguir. Para obter mais informações, consulte o exemplo Amazon S3: permite acesso de leitura e gravação a objetos em um bucket do S3 de forma programática e no console.

    "s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

    Se você criptografar seu bucket do Amazon S3, inclua as permissões a seguir para o AWS Key Management Service.

    "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
  4. Se você quiser controlar o acesso aos segredos do Git no nível do usuário, adicione permissões baseadas em tags a secretsmanager:GetSecretValue na política de perfil de usuário do EMR Studio e remova as permissões da política secretsmanager:GetSecretValue da política de perfil de serviço do EMR Studio. Para obter mais informações sobre como configurar as permissões refinadas de usuário, consulte Criação de políticas de permissões para usuários do EMR Studio.

Perfil de serviço mínimo para o EMR Serverless

Se quiser executar workloads interativas com o EMR Serverless por meio de cadernos do EMR Studio, use a mesma política de confiança usada para configurar o EMR Studio na seção anterior, Como criar um perfil de serviço para o EMR Studio no Amazon EC2 ou no Amazon EKS.

Para sua política do IAM, a política mínima viável tem as permissões a seguir. Atualize bucket-name com o nome do bucket que planeja usar ao configurar o EMR Studio e o Workspace. O EMR Studio usa o bucket para fazer backup dos Workspaces e dos arquivos de caderno no seu Studio.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": ["arn:aws:s3:::bucket-name/*"] }, { "Sid": "BucketActions", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetEncryptionConfiguration" ], "Resource": ["arn:aws:s3:::bucket-name"] } ] }

Se usar um bucket criptografado do Amazon S3, inclua as seguintes permissões na sua política:

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"

Permissões de perfil de serviço do EMR Studio

A tabela a seguir lista as operações que o EMR Studio executa usando o perfil de serviço, em conjunto com as ações do IAM obrigatórias para cada operação.

Operation Ações
Estabelecimento de um canal de rede seguro entre um Workspace e um cluster do EMR e execução das ações de limpeza necessárias.
"ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps"
Uso das credenciais do Git armazenadas no AWS Secrets Manager para vincular repositórios Git a um Workspace.
"secretsmanager:GetSecretValue"
Aplicação de etiquetas da AWS à interface de rede e aos grupos de segurança padrão que o EMR Studio cria ao configurar o canal de rede seguro. Para obter mais informações, consulte Etiquetar recursos da AWS.
"ec2:CreateTags"
Acesso ou upload de arquivos e metadados de cadernos para o Amazon S3.
"s3:PutObject", "s3:GetObject", "s3:GetEncryptionConfiguration", "s3:ListBucket", "s3:DeleteObject"

Se você usar um bucket criptografado do Amazon S3, inclua as permissões a seguir.

"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"
Habilitação e configuração da colaboração no Workspace.
"iam:GetUser", "iam:GetRole", "iam:ListUsers", "iam:ListRoles", "sso:GetManagedApplicationInstance", "sso-directory:SearchUsers"
Criptografe cadernos e arquivos do espaço de trabalho do EMR Studio usando chaves gerenciadas pelo cliente (CMK) com AWS Key Management Service
"kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:DescribeKey"