Perfil de serviço para Cadernos do EMR - Amazon EMR

Perfil de serviço para Cadernos do EMR

Todo Caderno do EMR precisa de permissões para acessar outros recursos da AWS e realizar ações. As políticas do IAM anexadas ao perfil de serviço fornecem permissões para o caderno interoperar com outros serviços da AWS. Ao criar um caderno usando o AWS Management Console, você especifica um perfil de serviço da AWS. É possível usar a função padrão, EMR_Notebooks_DefaultRole, ou especificar uma função criada por você. Se um bloco de anotações não foi criado anteriormente, é possível optar por criar a função padrão.

  • O nome de perfil padrão é EMR_Notebooks_DefaultRole.

  • As políticas gerenciadas listadas anexadas a EMR_Notebooks_DefaultRole são AmazonElasticMapReduceEditorsRole e S3FullAccessPolicy.

Seu perfil de serviço deve usar a seguinte política de confiança.

Importante

A política de confiança a seguir inclui as chaves de condição globais aws:SourceArn e aws:SourceAccount, que limitam as permissões que você concede ao Amazon EMR para recursos específicos em sua conta. O uso delas 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>:*" } } } ] }

O conteúdo da versão 1 de AmazonElasticMapReduceEditorsRole é o seguinte.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CreateSecurityGroup", "ec2:DescribeSecurityGroups", "ec2:RevokeSecurityGroupEgress", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeTags", "ec2:DescribeInstances", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "elasticmapreduce:ListInstances", "elasticmapreduce:DescribeCluster", "elasticmapreduce:ListSteps" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "aws:elasticmapreduce:editor-id", "aws:elasticmapreduce:job-flow-id" ] } } } ] }

Veja a seguir o conteúdo de S3FullAccessPolicy. S3FullAccessPolicy permite que seu perfil de serviço para cadernos EMR executem todas as ações do Amazon S3 em objetos em sua Conta da AWS. Ao criar um perfil de serviço personalizado para Cadernos do EMR, você deve conceder permissões do Amazon S3 ao perfil de serviço.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }

Você pode restringir o acesso de leitura e gravação do perfil de serviço ao local do Amazon S3 em que deseja salvar os arquivos do caderno. Use o conjunto mínimo de permissões do Amazon S3 apresentado a seguir.

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

Se o seu bucket do Amazon S3 estiver criptografado, você deverá incluir as seguintes permissões para o AWS Key Management Service.

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

Quando você vincula repositórios do Git ao caderno e precisa criar um segredo para o repositório, é necessário adicionar a permissão secretsmanager:GetSecretValue à política do IAM anexada ao perfil de serviço dos Cadernos do Amazon EMR. Um exemplo de política é demonstrado a seguir:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }

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

Esta tabela lista as ações que os Cadernos do EMR executam usando o perfil de serviço, junto com as permissões necessárias para cada ação.

Ação Permissões
Estabelecimento de um canal de rede seguro entre um caderno e um cluster do Amazon 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 caderno.
"secretsmanager:GetSecretValue"
Aplicação de etiquetas da AWS à interface de rede e aos grupos de segurança padrão que o os Cadernos do EMR criam 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"

As permissões a seguir serão necessárias somente se você usar um bucket criptografado do Amazon S3.

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

Cadernos do EMR: atualizações para políticas gerenciadas pela AWS

Visualize os detalhes sobre atualizações de políticas gerenciadas pela AWS para Cadernos do EMR a partir de 1.º de março de 2021.

Alteração Descrição Data
AmazonElasticMapReduceEditorsRole - Added permissions

Cadernos do EMR foram adicionadas as permissões ec2:describeVPCs e elastmicmapreduce:ListSteps para AmazonElasticMapReduceEditorsRole.

8 de fevereiro de 2023

Os Cadernos do EMR começaram a monitorar alterações

Os Cadernos do EMR começaram a monitorar as alterações para as políticas gerenciadas pela AWS.

8 de fevereiro de 2023