

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 funções de serviço do IAM para permissões do Amazon EMR para AWS serviços e recursos
<a name="emr-iam-roles"></a>

O Amazon EMR e aplicações como o Hadoop e o Spark precisam de permissões para acessar outros recursos da AWS e realizar ações quando são executados. Cada cluster no Amazon EMR deve ter um *perfil de serviço* e um perfil para o *perfil de instância* do Amazon EC2. Para obter mais informações, consulte [Perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) e [Usar perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) no *Guia do usuário do IAM*. As políticas do IAM anexadas a esses perfis fornecem permissões para o cluster interoperar com outros serviços da AWS em nome de um usuário.

Um perfil adicional, o perfil do Auto Scaling, será necessário se o cluster usar a ajuste de escala automático no Amazon EMR. A função AWS de serviço para Notebooks EMR é necessária se você usa Notebooks EMR.

O Amazon EMR fornece perfis padrão e políticas gerenciadas padrão para determinar permissões para cada perfil. As políticas gerenciadas são criadas e mantidas por AWS, portanto, são atualizadas automaticamente se os requisitos de serviço mudarem. Consulte [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies.html) no *Guia do usuário do IAM*.

Se você estiver criando um cluster ou um caderno pela primeira vez em uma conta, os perfis do Amazon EMR ainda não existirão. Depois de criá-las, você pode visualizar as funções, as políticas associadas a elas e as permissões permitidas ou negadas pelas políticas no console do IAM ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)). Você pode especificar perfis padrão para o Amazon EMR criar e usar, pode criar seus próprios perfis e especificá-los individualmente ao criar um cluster para personalizar as permissões e pode, ainda, especificar perfis padrão a serem usados ao criar um cluster usando a AWS CLI. Para obter mais informações, consulte [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md).

## Modificar políticas baseadas em identidade para permissões a fim de transmitir perfis de serviço ao Amazon EMR
<a name="emr-iam-roles-passrole"></a>

As políticas gerenciadas padrão de permissões completas do Amazon EMR incorporam configurações de segurança `iam:PassRole`, incluindo estas:
+ Permissões `iam:PassRole` somente para perfis padrão específicos do Amazon EMR.
+ `iam:PassedToService`condições que permitem que você use a política somente com AWS serviços específicos, como `elasticmapreduce.amazonaws.com` `ec2.amazonaws.com` e.

Você pode visualizar a versão JSON das políticas Amazon \$1v2 [EMRFullAccessPolicye [Amazon EMRService Policy\$1v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2)](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRFullAccessPolicy_v2) no console do IAM. É recomendável criar novos clusters com políticas gerenciadas v2.

## Resumo do perfil de serviço
<a name="emr-iam-roles-summary"></a>

A tabela a seguir lista os perfis de serviço do IAM associadas ao Amazon EMR para referência rápida.


| Função | Perfil padrão | Description | Política gerenciada padrão | 
| --- | --- | --- | --- | 
|  [Perfil de serviço para Amazon EMR (perfil do EMR)](emr-iam-role.md)  |  `EMR_DefaultRole_V2`  |  Permite que o Amazon EMR chame outros AWS serviços em seu nome ao provisionar recursos e realizar ações em nível de serviço. Essa função é necessária para todos os clusters.  |  `AmazonEMRServicePolicy_v2`  É necessário ter um perfil vinculado ao serviço para solicitar instâncias spot. Se esse perfil não existir, o perfil de serviço do Amazon EMR deve ter permissão para criá-lo ou ocorrerá um erro de permissão. Se você pretende solicitar instâncias spot, é necessário atualizar essa política para incluir uma instrução que permita a criação desse perfil vinculado ao serviço. Para obter mais informações, consulte [Perfil de serviço para Amazon EMR (perfil do EMR)](emr-iam-role.md) e [Perfil vinculado ao serviço para solicitações de instâncias spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html#service-linked-roles-spot-instance-requests) no *Guia do usuário do Amazon EC2*.    | 
| [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md) |  `EMR_EC2_DefaultRole`  |  Os processos de aplicativos que são executados no ecossistema do Hadoop em instâncias de cluster usam essa função quando chamam outros AWS serviços. Para acessar os dados no Amazon S3 usando o EMRFS, você pode especificar diferentes perfis a serem assumidos com base no local dos dados no Amazon S3. Por exemplo, múltiplas equipes podem acessar uma única “conta de armazenamento” de dados do Amazon S3. Para obter mais informações, consulte [Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3](emr-emrfs-iam-roles.md). Essa função é necessária para todos os clusters.  |  `AmazonElasticMapReduceforEC2Role`. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).  | 
| [Perfil de serviço para ajuste de escala automático no Amazon EMR (perfil do Auto Scaling)](emr-iam-role-automatic-scaling.md) |  `EMR_AutoScaling_DefaultRole`  |  Permite ações adicionais para ambientes de escalabilidade dinâmica. Necessária apenas para clusters que usam a ajuste de escala automático no Amazon EMR. Para obter mais informações, consulte [Uso do ajuste de escala automático com uma política personalizada para grupos de instâncias no Amazon EMR](emr-automatic-scaling.md).  |  `AmazonElasticMapReduceforAutoScalingRole`. Para obter mais informações, consulte [Perfil de serviço para ajuste de escala automático no Amazon EMR (perfil do Auto Scaling)](emr-iam-role-automatic-scaling.md).  | 
| [Perfil de serviço para Cadernos do EMR](emr-managed-notebooks-service-role.md) |  `EMR_Notebooks_DefaultRole`  |  Fornece as permissões que um notebook EMR precisa para acessar outros AWS recursos e realizar ações. Necessário somente se forem usados cadernos EMR.  |  `AmazonElasticMapReduceEditorsRole`. Para obter mais informações, consulte [Perfil de serviço para Cadernos do EMR](emr-managed-notebooks-service-role.md). `S3FullAccessPolicy` também é anexado por padrão. Veja a seguir o conteúdo da política.   JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:*"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowS3"
    }
  ]
}
```      | 
| [Função vinculada ao serviço](using-service-linked-roles.md) | `AWSServiceRoleForEMRCleanup` | O Amazon EMR cria automaticamente um perfil vinculado ao serviço. Se o serviço do Amazon EMR tiver perdido a capacidade de apagar os recursos do Amazon EC2, o Amazon EMR poderá usar esse perfil para fazer isso. Se um cluster usar instâncias spot, a política de permissões anexada ao [Perfil de serviço para Amazon EMR (perfil do EMR)](emr-iam-role.md) deverá permitir a criação de uma função vinculada ao serviço. Para obter mais informações, consulte [Uso de perfis vinculados ao serviço para o Amazon EMR](using-service-linked-roles.md). | `AmazonEMRCleanupPolicy` | 

**Topics**
+ [Modificar políticas baseadas em identidade para permissões a fim de transmitir perfis de serviço ao Amazon EMR](#emr-iam-roles-passrole)
+ [Resumo do perfil de serviço](#emr-iam-roles-summary)
+ [Perfis de serviço do IAM usados pelo Amazon EMR](emr-iam-service-roles.md)
+ [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md)
+ [Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3](emr-emrfs-iam-roles.md)
+ [Use políticas baseadas em recursos para o acesso do Amazon EMR ao Glue Data Catalog AWS](emr-iam-roles-glue.md)
+ [Use funções do IAM com aplicativos que chamam AWS serviços diretamente](emr-iam-roles-calling.md)
+ [Permitir que usuários e grupos criem e modifiquem perfis](emr-iam-roles-create-permissions.md)

# Perfis de serviço do IAM usados pelo Amazon EMR
<a name="emr-iam-service-roles"></a>

O Amazon EMR usa perfis de serviço do IAM para executar ações em seu nome ao provisionar recursos do cluster, executar aplicações, escalar recursos de forma dinâmica e criar e executar Cadernos do EMR. O Amazon EMR usa os seguintes perfis ao interagir com outros serviços da AWS . Cada perfil tem um papel exclusivo no Amazon EMR. Os tópicos desta seção descrevem o papel da função e fornecem as funções padrão e a política de permissões de cada função.

Se você tiver um código de aplicativo em seu cluster que chame AWS serviços diretamente, talvez seja necessário usar o SDK para especificar funções. Para obter mais informações, consulte [Use funções do IAM com aplicativos que chamam AWS serviços diretamente](emr-iam-roles-calling.md).

**Topics**
+ [Perfil de serviço para Amazon EMR (perfil do EMR)](emr-iam-role.md)
+ [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md)
+ [Perfil de serviço para ajuste de escala automático no Amazon EMR (perfil do Auto Scaling)](emr-iam-role-automatic-scaling.md)
+ [Perfil de serviço para Cadernos do EMR](emr-managed-notebooks-service-role.md)
+ [Uso de perfis vinculados ao serviço para o Amazon EMR](using-service-linked-roles.md)

# Perfil de serviço para Amazon EMR (perfil do EMR)
<a name="emr-iam-role"></a>

O perfil do Amazon EMR define as ações permitidas para o Amazon EMR durante o provisionamento de recursos e a execução de tarefas no nível de serviço que não são executadas no contexto de uma instância do Amazon EC2 em execução em um cluster. Por exemplo, a função de serviço é usada para provisionar instâncias do EC2 quando um cluster é executado.
+ O nome de perfil padrão é `EMR_DefaultRole_V2`.
+ A política gerenciada com escopo do Amazon EMR padrão anexada a `EMR_DefaultRole_V2` é `AmazonEMRServicePolicy_v2`. Essa política v2 substitui a política gerenciada padrão defasada, `AmazonElasticMapReduceRole`.

`AmazonEMRServicePolicy_v2` depende do acesso de escopo limitado aos recursos que o Amazon EMR provisiona ou usa. Ao usar essa política, é necessário passar a etiqueta de usuário `for-use-with-amazon-emr-managed-policies = true` ao provisionar o cluster. O Amazon EMR propagará essas etiquetas automaticamente. Além disso, talvez seja necessário adicionar manualmente uma etiqueta de usuário a tipos específicos de recursos, como grupos de segurança do EC2 que não foram criados pelo Amazon EMR. Consulte [Etiquetar recursos para usar políticas gerenciadas](emr-managed-iam-policies.md#manually-tagged-resources).

**Importante**  
O Amazon EMR usa esse perfil de serviço do Amazon EMR e o perfil `AWSServiceRoleForEMRCleanup` para limpar recursos de cluster em sua conta que você não usa mais, como instâncias do Amazon EC2. Você deve incluir ações nas políticas de perfil para excluir ou encerrar os recursos. Caso contrário, o Amazon EMR não poderá realizar essas ações de limpeza e você poderá ter custos com recursos não utilizados que permanecem no cluster.

O exemplo a seguir mostra o conteúdo de uma política `AmazonEMRServicePolicy_v2` atual. Você também pode ver o conteúdo atual da política gerenciada [https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AmazonEMRServicePolicy_v2) no console do IAM.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateInTaggedNetwork",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:RunInstances",
        "ec2:CreateFleet",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateWithEMRTaggedLaunchTemplate",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateFleet",
        "ec2:RunInstances",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRTaggedLaunchTemplate",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateLaunchTemplate"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRTaggedInstancesAndVolumes",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "ResourcesToLaunchEC2",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:CreateFleet",
        "ec2:CreateLaunchTemplate",
        "ec2:CreateLaunchTemplateVersion"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*::image/ami-*",
        "arn:aws:ec2:*:*:key-pair/*",
        "arn:aws:ec2:*:*:capacity-reservation/*",
        "arn:aws:ec2:*:*:placement-group/pg-*",
        "arn:aws:ec2:*:*:fleet/*",
        "arn:aws:ec2:*:*:dedicated-host/*",
        "arn:aws:resource-groups:*:*:group/*"
      ]
    },
    {
      "Sid": "ManageEMRTaggedResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateLaunchTemplateVersion",
        "ec2:DeleteLaunchTemplate",
        "ec2:DeleteNetworkInterface",
        "ec2:ModifyInstanceAttribute",
        "ec2:TerminateInstances"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "ManageTagsOnEMRTaggedResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*",
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateNetworkInterfaceNeededForPrivateSubnet",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "TagOnCreateTaggedEMRResources",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*",
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*",
        "arn:aws:ec2:*:*:launch-template/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:CreateAction": [
            "RunInstances",
            "CreateFleet",
            "CreateLaunchTemplate",
            "CreateNetworkInterface"
          ]
        }
      }
    },
    {
      "Sid": "TagPlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags",
        "ec2:DeleteTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ]
    },
    {
      "Sid": "ListActionsForEC2Resources",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeCapacityReservations",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypeOfferings",
        "ec2:DescribeLaunchTemplates",
        "ec2:DescribeNetworkAcls",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribePlacementGroups",
        "ec2:DescribeRouteTables",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVolumes",
        "ec2:DescribeVolumeStatus",
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeVpcs"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "CreateDefaultSecurityGroupWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSecurityGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:security-group/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateDefaultSecurityGroupInVPCWithEMRTags",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateSecurityGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "TagOnCreateDefaultSecurityGroupWithEMRTags",
      "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": "ManageSecurityGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEMRPlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:CreatePlacementGroup"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:placement-group/pg-*"
      ]
    },
    {
      "Sid": "DeletePlacementGroups",
      "Effect": "Allow",
      "Action": [
        "ec2:DeletePlacementGroup"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AutoScaling",
      "Effect": "Allow",
      "Action": [
        "application-autoscaling:DeleteScalingPolicy",
        "application-autoscaling:DeregisterScalableTarget",
        "application-autoscaling:DescribeScalableTargets",
        "application-autoscaling:DescribeScalingPolicies",
        "application-autoscaling:PutScalingPolicy",
        "application-autoscaling:RegisterScalableTarget"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "ResourceGroupsForCapacityReservations",
      "Effect": "Allow",
      "Action": [
        "resource-groups:ListGroupResources"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "AutoScalingCloudWatch",
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricAlarm",
        "cloudwatch:DeleteAlarms",
        "cloudwatch:DescribeAlarms"
      ],
      "Resource": [
        "arn:aws:cloudwatch:*:*:alarm:*_EMR_Auto_Scaling"
      ]
    },
    {
      "Sid": "PassRoleForAutoScaling",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/EMR_AutoScaling_DefaultRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "application-autoscaling.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "PassRoleForEC2",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam::*:role/EMR_EC2_DefaultRole"
      ],
      "Condition": {
        "StringLike": {
          "iam:PassedToService": "ec2.amazonaws.com*"
        }
      }
    },
    {
      "Sid": "CreateAndModifyEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:ModifyVpcEndpoint",
        "ec2:CreateVpcEndpoint"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*",
        "arn:aws:ec2:*:*:subnet/*",
        "arn:aws:ec2:*:*:security-group/*",
        "arn:aws:ec2:*:*:vpc/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
        }
      }
    },
    {
      "Sid": "CreateEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVpcEndpoint"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
          "aws:RequestTag/Name": "emr-service-vpce"
        }
      }
    },
    {
      "Sid": "TagEmrServiceVPCEndpoint",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:vpc-endpoint/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:CreateAction": "CreateVpcEndpoint",
          "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
          "aws:RequestTag/Name": "emr-service-vpce"
        }
      }
    }
  ]
}
```

------

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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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”](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSTSAssumerole",
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMRServiceRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
        }
      }
    }
  ]
}
```

------

# Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)
<a name="emr-iam-role-for-ec2"></a>

O perfil de serviço para instâncias do EC2 do cluster (também chamada de perfil de instância do EC2 para Amazon EMR) é um tipo especial de perfil de serviço atribuído a cada instância do EC2 no cluster do Amazon EMR quando a instância é iniciada. Os processos de aplicação que são executados no ecossistema do Hadoop assumem esse perfil para que as permissões interajam com outros serviços da AWS .

Para obter mais informações sobre perfis de serviço para instâncias do EC2, consulte [Uso de um perfil do IAM para conceder permissões a aplicações em execução em instâncias do Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) no *Guia do usuário do IAM*.

**Importante**  
A função de serviço padrão para instâncias EC2 de cluster e sua política gerenciada AWS padrão associada `AmazonElasticMapReduceforEC2Role` estão em vias de descontinuação, sem nenhuma política gerenciada AWS substituta fornecida. Será necessário criar e especificar um perfil de instância para substituir o perfil e a política padrão defasados.

## Perfil padrão e política gerenciada
<a name="emr-ec2-role-default"></a>
+ O nome de perfil padrão é `EMR_EC2_DefaultRole`.
+ A política gerenciada `EMR_EC2_DefaultRole` padrão, `AmazonElasticMapReduceforEC2Role`, está chegando ao fim do suporte. Em vez de usar uma política gerenciada padrão para o perfil de instância do EC2, aplique políticas baseadas em recursos aos buckets do S3 e outros recursos que o Amazon EMR precisa, ou use sua própria política gerenciada pelo cliente com um perfil do IAM como perfil de instância. Para obter mais informações, consulte [Criar um perfil de serviço para instâncias do EC2 do cluster com permissões de privilégio mínimo](#emr-ec2-role-least-privilege).

Veja a seguir o conteúdo da versão 3 de `AmazonElasticMapReduceforEC2Role`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Action": [
        "cloudwatch:*",
        "dynamodb:*",
        "ec2:Describe*",
        "elasticmapreduce:Describe*",
        "elasticmapreduce:ListBootstrapActions",
        "elasticmapreduce:ListClusters",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ListInstances",
        "elasticmapreduce:ListSteps",
        "kinesis:CreateStream",
        "kinesis:DeleteStream",
        "kinesis:DescribeStream",
        "kinesis:GetRecords",
        "kinesis:GetShardIterator",
        "kinesis:MergeShards",
        "kinesis:PutRecord",
        "kinesis:SplitShard",
        "rds:Describe*",
        "s3:*",
        "sdb:*",
        "sns:*",
        "sqs:*",
        "glue:CreateDatabase",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:CreateTable",
        "glue:UpdateTable",
        "glue:DeleteTable",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersions",
        "glue:CreatePartition",
        "glue:BatchCreatePartition",
        "glue:UpdatePartition",
        "glue:DeletePartition",
        "glue:BatchDeletePartition",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:BatchGetPartition",
        "glue:CreateUserDefinedFunction",
        "glue:UpdateUserDefinedFunction",
        "glue:DeleteUserDefinedFunction",
        "glue:GetUserDefinedFunction",
        "glue:GetUserDefinedFunctions"
      ],
      "Sid": "AllowCLOUDWATCH"
    }
  ]
}
```

------

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowSTSAssumerole",
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMR_EC2_DefaultRole"
    }
  ]
}
```

------

## Criar um perfil de serviço para instâncias do EC2 do cluster com permissões de privilégio mínimo
<a name="emr-ec2-role-least-privilege"></a>

Como prática recomendada, é altamente recomendável que você crie uma função de serviço para instâncias do EC2 de cluster e uma política de permissões que tenha as permissões mínimas para outros AWS serviços exigidos pelo seu aplicativo.

A política gerenciada padrão, `AmazonElasticMapReduceforEC2Role`, fornece permissões que facilitam a execução de um cluster inicial. No entanto, `AmazonElasticMapReduceforEC2Role` está em vias de descontinuação e o Amazon EMR não fornecerá uma política padrão AWS gerenciada substituta para a função obsoleta. Para iniciar um cluster inicial, é necessário fornecer uma política gerenciada pelo cliente baseada em recursos ou baseada em ID.

As instruções de política a seguir fornecem exemplos das permissões necessárias para diferentes atributos do Amazon EMR. Recomendamos que você use essas permissões para criar uma política de permissões que restrinja o acesso somente a esses recursos e aos recursos que o cluster exige. Todos os exemplos de declarações de política usam a *us-west-2* Região e o ID *123456789012* fictício AWS da conta. Faça as substituições apropriadas para o seu cluster.

Para obter mais informações sobre como criar e especificar funções personalizadas, consulte [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md).

**nota**  
Se você criar um perfil personalizado do EMR para o EC2, siga o fluxo de trabalho básico, que criará automaticamente um perfil de instância com o mesmo nome. O Amazon EC2 permite criar perfis e perfis de instância com nomes diferentes, mas o Amazon EMR não oferece suporte a essa configuração, o que resulta em um erro de “perfil de instância inválido” quando você cria o cluster. 

### Ler e gravar dados no Amazon S3 usando o EMRFS
<a name="emr-ec2-role-EMRFS"></a>

Quando uma aplicação em execução em um cluster do Amazon EMR faz referência a dados usando o formato `s3://mydata`, o Amazon EMR usa o perfil de instância do EC2 para fazer a solicitação. Normalmente, os clusters leem e gravam dados no Amazon S3 dessa maneira, e o Amazon EMR usa as permissões anexadas ao perfil de serviço para instâncias do cluster do EC2 por padrão. Para obter mais informações, consulte [Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3](emr-emrfs-iam-roles.md).

Já que os perfis do IAM para o EMRFS se enquadrarão às permissões anexadas ao perfil de serviço para instâncias de cluster do EC2, como prática recomendada, é aconselhável usar perfis do IAM para o EMRFS e limitar as permissões do EMRFS e do Amazon S3 anexadas ao perfil de serviço para instâncias de cluster do EC2.

O exemplo de instrução a seguir demonstra as permissões que o EMRFS exige para fazer solicitações ao Amazon S3.
+ *my-data-bucket-in-s3-for-emrfs-reads-and-writes* especifica o bucket no Amazon S3 em que o cluster lê e grava dados e todas as subpastas usando */\$1*. Adicione somente os buckets e as pastas que o aplicativo exige.
+ A instrução de política que permite ações `dynamodb` será necessária somente se a visualização consistente do EMRFS estiver habilitada. *EmrFSMetadata* especifica a pasta padrão para a visualização consistente do EMRFS.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:CreateBucket",
        "s3:DeleteObject",
        "s3:GetBucketVersioning",
        "s3:GetObject",
        "s3:GetObjectTagging",
        "s3:GetObjectVersion",
        "s3:ListBucket",
        "s3:ListBucketMultipartUploads",
        "s3:ListBucketVersions",
        "s3:ListMultipartUploadParts",
        "s3:PutBucketVersioning",
        "s3:PutObject",
        "s3:PutObjectTagging"
      ],
      "Resource": [
        "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes",
        "arn:aws:s3:::my-data-bucket-in-s3-for-emrfs-reads-and-writes/*"
      ],
      "Sid": "AllowS3Abortmultipartupload"
    },
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:CreateTable",
        "dynamodb:BatchGetItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:PutItem",
        "dynamodb:DescribeTable",
        "dynamodb:DeleteItem",
        "dynamodb:GetItem",
        "dynamodb:Scan",
        "dynamodb:Query",
        "dynamodb:UpdateItem",
        "dynamodb:DeleteTable",
        "dynamodb:UpdateTable"
      ],
      "Resource": [
        "arn:aws:dynamodb:*:123456789012:table/EmrFSMetadata"
      ],
      "Sid": "AllowDYNAMODBCreatetable"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricData",
        "dynamodb:ListTables",
        "s3:ListBucket"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowCLOUDWATCHPutmetricdata"
    },
    {
      "Effect": "Allow",
      "Action": [
        "sqs:GetQueueUrl",
        "sqs:ReceiveMessage",
        "sqs:DeleteQueue",
        "sqs:SendMessage",
        "sqs:CreateQueue"
      ],
      "Resource": [
        "arn:aws:sqs:*:123456789012:EMRFS-Inconsistency-*"
      ],
      "Sid": "AllowSQSGetqueueurl"
    }
  ]
}
```

------

### Arquivar arquivos de log no Amazon S3
<a name="emr-ec2-role-s3-logs"></a>

A instrução de política a seguir permite que o cluster do Amazon EMR arquive os arquivos de log no local especificada do Amazon S3. No exemplo abaixo, quando o cluster foi criado, *s3://MyLoggingBucket/MyEMRClusterLogs* foi especificado usando a **localização da pasta Log S3** no console, usando a `--log-uri` opção do AWS CLI, ou usando o `LogUri` parâmetro no `RunJobFlow` comando. Para obter mais informações, consulte [Arquivamento dos arquivos de log no Amazon S3](emr-plan-debugging.md#emr-plan-debugging-logs-archive).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::MyLoggingBucket/MyEMRClusterLogs/*"
      ],
      "Sid": "AllowS3Putobject"
    }
  ]
}
```

------

### Usando o AWS Glue Data Catalog
<a name="emr-ec2-role-glue"></a>

A declaração de política a seguir permite ações que são necessárias se você usar o AWS Glue Data Catalog como metastore para aplicativos. *Para obter mais informações, consulte [Usando o AWS Glue Data Catalog como metastore para o Spark SQL](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-spark-glue.html), Usando [o AWS Glue Data Catalog como metastore para o Hive](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-metastore-glue.html) e Usando o [Presto com o Glue Data AWS Catalog no Guia de lançamento do](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-presto-glue.html) Amazon EMR.*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:CreateDatabase",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:CreateTable",
        "glue:UpdateTable",
        "glue:DeleteTable",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersions",
        "glue:CreatePartition",
        "glue:BatchCreatePartition",
        "glue:UpdatePartition",
        "glue:DeletePartition",
        "glue:BatchDeletePartition",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:BatchGetPartition",
        "glue:CreateUserDefinedFunction",
        "glue:UpdateUserDefinedFunction",
        "glue:DeleteUserDefinedFunction",
        "glue:GetUserDefinedFunction",
        "glue:GetUserDefinedFunctions"
      ],
      "Resource": [
        "*"
      ],
      "Sid": "AllowGLUECreatedatabase"
    }
  ]
}
```

------

# Perfil de serviço para ajuste de escala automático no Amazon EMR (perfil do Auto Scaling)
<a name="emr-iam-role-automatic-scaling"></a>

O perfil do Auto Scaling para o Amazon EMR executa uma função semelhante ao perfil de serviço, mas permite outras ações para ambientes de ajusta de escala dinâmico.
+ O nome de perfil padrão é `EMR_AutoScaling_DefaultRole`.
+ A política gerenciada padrão anexada a `EMR_AutoScaling_DefaultRole` é `AmazonElasticMapReduceforAutoScalingRole`.

O conteúdo da versão 1 da `AmazonElasticMapReduceforAutoScalingRole` é mostrado a seguir.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "cloudwatch:DescribeAlarms",
        "elasticmapreduce:ListInstanceGroups",
        "elasticmapreduce:ModifyInstanceGroups"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ],
      "Sid": "AllowCLOUDWATCHDescribealarms"
    }
  ]
}
```

------

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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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”](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/ApplicationAutoScalingEMRRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:application-autoscaling:*:123456789012:scalable-target/*"
        }
      },
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

# Perfil de serviço para Cadernos do EMR
<a name="emr-managed-notebooks-service-role"></a>

Cada notebook do EMR precisa de permissões para acessar outros AWS recursos e realizar ações. As políticas do IAM anexadas a essa função de serviço fornecem permissões para que o notebook interopere com outros AWS serviços. Ao criar um notebook usando o Console de gerenciamento da AWS, você especifica uma *função AWS de serviço*. É 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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-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”](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMRServiceRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:elasticmapreduce:*:123456789012:*"
        }
      },
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

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

------
#### [ JSON ]

****  

```
{
  "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": [
        "*"
      ],
      "Sid": "AllowEC2Authorizesecuritygroupegress"
    },
    {
      "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"
          ]
        }
      },
      "Sid": "AllowEC2Createtags"
    }
  ]
}
```

------

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.

------
#### [ JSON ]

****  

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

------

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: 

------
#### [ JSON ]

****  

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

------

## Permissões de perfil de serviço de Cadernos do EMR
<a name="emr-managed-notebooks-service-role-permissions"></a>

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. |  <pre>"ec2:CreateNetworkInterface", <br />"ec2:CreateNetworkInterfacePermission", <br />"ec2:DeleteNetworkInterface", <br />"ec2:DeleteNetworkInterfacePermission", <br />"ec2:DescribeNetworkInterfaces", <br />"ec2:ModifyNetworkInterfaceAttribute", <br />"ec2:AuthorizeSecurityGroupEgress", <br />"ec2:AuthorizeSecurityGroupIngress", <br />"ec2:CreateSecurityGroup",<br />"ec2:DescribeSecurityGroups", <br />"ec2:RevokeSecurityGroupEgress",<br />"ec2:DescribeTags",<br />"ec2:DescribeInstances",<br />"ec2:DescribeSubnets",<br />"ec2:DescribeVpcs",<br />"elasticmapreduce:ListInstances", <br />"elasticmapreduce:DescribeCluster", <br />"elasticmapreduce:ListSteps"</pre>  | 
| Uso das credenciais do Git armazenadas no AWS Secrets Manager para vincular repositórios Git a um caderno. |  <pre>"secretsmanager:GetSecretValue"</pre>  | 
| Aplique AWS tags à interface de rede e aos grupos de segurança padrão que o EMR Notebooks cria ao configurar o canal de rede seguro. Para obter mais informações, consulte [Etiquetar recursos da AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html). |  <pre>"ec2:CreateTags"</pre>  | 
| Acesso ou upload de arquivos e metadados de cadernos para o Amazon S3. |  <pre>"s3:PutObject",<br />"s3:GetObject",<br />"s3:GetEncryptionConfiguration",<br />"s3:ListBucket",<br />"s3:DeleteObject" </pre> As permissões a seguir serão necessárias somente se você usar um bucket criptografado do Amazon S3. <pre>"kms:Decrypt",<br />"kms:GenerateDataKey",<br />"kms:ReEncryptFrom",<br />"kms:ReEncryptTo",<br />"kms:DescribeKey"</pre>  | 

## Notebooks EMR: atualizações para políticas gerenciadas AWS
<a name="notebooks-slr-updates"></a>

Veja detalhes sobre as atualizações das políticas AWS gerenciadas para Notebooks EMR desde 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  |  O EMR Notebooks começou a monitorar as mudanças em suas políticas gerenciadas AWS .  | 8 de fevereiro de 2023  | 

# Uso de perfis vinculados ao serviço para o Amazon EMR
<a name="using-service-linked-roles"></a>

O Amazon EMR usa funções vinculadas a [serviços AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Um perfil vinculado ao serviço é um tipo especial de perfil do IAM vinculado diretamente ao Amazon EMR. As funções vinculadas ao serviço são predefinidas pelo Amazon EMR e incluem todas as permissões que o serviço exige para chamar outros AWS serviços em seu nome.

**Topics**
+ [Uso de perfis vinculados ao serviço para limpeza do Amazon EMR](using-service-linked-roles-cleanup.md)
+ [Uso de perfis vinculados ao serviço com o Amazon EMR para registro em log com gravação antecipada](using-service-linked-roles-wal.md)

Para obter informações sobre outros serviços que oferecem suporte a funções vinculadas a serviços, consulte [AWS Serviços que funcionam com IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que têm **Sim** na coluna Funções **vinculadas ao serviço**. Escolha um **Sim** com um link para visualizar a documentação do perfil vinculado a esse serviço.

# Uso de perfis vinculados ao serviço para limpeza do Amazon EMR
<a name="using-service-linked-roles-cleanup"></a>

O Amazon EMR usa funções vinculadas a [serviços AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Um perfil vinculado ao serviço é um tipo especial de perfil do IAM vinculado diretamente ao Amazon EMR. As funções vinculadas ao serviço são predefinidas pelo Amazon EMR e incluem todas as permissões que o serviço exige para chamar outros AWS serviços em seu nome.

Os perfis vinculados ao serviço funcionam com o perfil de serviço do Amazon EMR e o perfil de instância do Amazon EC2 para o Amazon EMR. Para obter mais informações sobre a função de serviço e o perfil da instância, consulte [Configurar funções de serviço do IAM para permissões do Amazon EMR para AWS serviços e recursos](emr-iam-roles.md).

Um perfil vinculado ao serviço facilita a configuração do Amazon EMR porque você não precisa adicionar as permissões necessárias manualmente. O Amazon EMR define as permissões dos perfis vinculados ao serviço e, a não ser que esteja definido de outra forma, somente o Amazon EMR poderá assumir os perfis. As permissões definidas incluem a política de confiança e a política de permissões, que não pode ser anexada a nenhuma outra entidade do IAM.

É possível excluir esse perfil vinculado ao serviço no Amazon EMR somente depois de excluir quaisquer recursos relacionados e encerrar todos os clusters do EMR na conta. Isso protege os recursos do Amazon EMR, para que você não possa remover inadvertidamente a permissão de acesso aos recursos.

## Uso de perfis vinculados ao serviço para limpeza
<a name="using-service-linked-roles-permissions-cleanup"></a>

O Amazon EMR usa a função baseada em serviços para conceder permissão **AWSServiceRoleForEMRCleanup**ao Amazon EMR para encerrar e excluir recursos do Amazon EC2 em seu nome se a função vinculada ao serviço do Amazon EMR perder essa capacidade. O Amazon EMR cria o perfil vinculado ao serviço automaticamente durante a criação do cluster, caso ele ainda não exista.

A função AWSService RoleFor EMRCleanup vinculada ao serviço confia nos seguintes serviços para assumir a função:
+ `elasticmapreduce.amazonaws.com`

A política de permissões AWSService RoleFor EMRCleanup de função vinculada ao serviço permite que o Amazon EMR conclua as seguintes ações nos recursos especificados:
+ Ação: `DescribeInstances` em `ec2`
+ Ação: `DescribeLaunchTemplates` em `ec2`
+ Ação: `DeleteLaunchTemplate` em `ec2`
+ Ação: `DescribeSpotInstanceRequests` em `ec2`
+ Ação: `ModifyInstanceAttribute` em `ec2`
+ Ação: `TerminateInstances` em `ec2`
+ Ação: `CancelSpotInstanceRequests` em `ec2`
+ Ação: `DeleteNetworkInterface` em `ec2`
+ Ação: `DescribeInstanceAttribute` em `ec2`
+ Ação: `DescribeVolumeStatus` em `ec2`
+ Ação: `DescribeVolumes` em `ec2`
+ Ação: `DetachVolume` em `ec2`
+ Ação: `DeleteVolume` em `ec2`
+ Ação: `DescribePlacementGroups` em `ec2`
+ Ação: `DeletePlacementGroup` em `ec2`

É necessário configurar as permissões para permitir que uma entidade do IAM (como um usuário, grupo ou perfil) crie, edite ou exclua uma função vinculada ao serviço.

## Criar um perfil vinculado ao serviço para Amazon EMR
<a name="create-service-linked-role"></a>

Você não precisa criar a AWSService RoleFor EMRCleanup função manualmente. Quando você inicia um cluster, seja pela primeira vez ou quando a função AWSService RoleFor EMRCleanup vinculada ao serviço não está presente, o Amazon EMR cria a função vinculada ao AWSService RoleFor EMRCleanup serviço para você. Você deve ter permissões para criar um perfil vinculado ao serviço. Para obter um exemplo de instrução que acrescenta essa possibilidade à política de permissões de uma entidade do IAM (por exemplo, um usuário, grupo ou perfil): 

Adicione a instrução a seguir à política de permissões da entidade do IAM que precisa criar o perfil vinculado ao serviço.

```
{
             "Sid": "ElasticMapReduceServiceLinkedRole",
             "Effect": "Allow",
             "Action": "iam:CreateServiceLinkedRole",
             "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*",
             "Condition": {
                 "StringEquals": {
                     "iam:AWSServiceName": [
                         "elasticmapreduce.amazonaws.com",
                         "elasticmapreduce.amazonaws.com.rproxy.govskope.ca.cn"
                     ]
                 }
             }
 }
```

**Importante**  
Se você usou o Amazon EMR antes de 24 de outubro de 2017, quando as funções vinculadas ao serviço não eram suportadas, o Amazon EMR criou a função vinculada ao AWSService RoleFor EMRCleanup serviço em sua conta. Para obter mais informações, consulte [Uma nova função apareceu na minha conta do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared).

## Editar um perfil vinculado ao serviço do Amazon EMR
<a name="edit-service-linked-role"></a>

O Amazon EMR não permite que você edite a função vinculada ao AWSService RoleFor EMRCleanup serviço. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência a ele. No entanto, você pode editar a descrição do perfil vinculado ao serviço usando o IAM.

### Editar a descrição de uma função vinculada ao serviço (console do IAM)
<a name="edit-service-linked-role-iam-console"></a>

Você pode usar o console do IAM para editar a descrição de uma função vinculada ao serviço.

**Para editar a descrição de uma função vinculada ao serviço (console)**

1. No painel de navegação do console do IAM, escolha **Perfis**.

1. Escolha o nome da função a ser modificada.

1. À direita de **Descrição do perfil**, escolha **Editar**. 

1. Insira uma nova descrição na caixa e escolha **Save changes** (Salvar alterações).

### Editar descrição de um perfil vinculado ao serviço (CLI do IAM)
<a name="edit-service-linked-role-iam-cli"></a>

Você pode usar os comandos do IAM do AWS Command Line Interface para editar a descrição de uma função vinculada ao serviço.

**Para alterar a descrição de uma função (CLI)**

1. (Opcional) Para visualizar a descrição atual de a uma função, use um dos comandos a seguir:

   ```
   $ aws iam get-role --role-name role-name
   ```

   Use o nome da função, não o nome de recurso da Amazon (ARN), para fazer referência às funções com os comandos da CLI. Por exemplo, se uma função tiver o seguinte nome de recurso da Amazon (ARN): `arn:aws:iam::123456789012:role/myrole`, você fará referência à função como **myrole**.

1. Para atualizar a descrição de uma função vinculada a serviço, use um dos comandos a seguir:

   ```
   $ aws iam update-role-description --role-name role-name --description description
   ```

### Editar a descrição de uma função vinculada ao serviço (API do IAM)
<a name="edit-service-linked-role-iam-api"></a>

Você pode usar a API do IAM para editar a descrição de uma função vinculada ao serviço.

**Para alterar a descrição de uma função (API)**

1. (Opcional) Para visualizar a descrição atual de uma função, use o comando a seguir:

   API do IAM: [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Para atualizar a descrição de uma função, use o comando a seguir: 

   API do IAM: [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)

## Excluir um perfil vinculado ao serviço do Amazon EMR
<a name="delete-service-linked-role"></a>

Se você não precisar mais usar um recurso ou serviço que exija um perfil vinculado a um serviço, recomendamos excluir esse perfil. Dessa forma, você não terá uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar sua função vinculada ao serviço antes de excluí-la.

### Limpar um perfil vinculado ao serviço
<a name="service-linked-role-review-before-delete"></a>

Antes de usar o IAM para excluir um perfil vinculado ao serviço, você deve primeiro confirmar que o perfil não tem sessões ativas e remover todos os recursos usados por ele.

**Para verificar se a função vinculada ao serviço tem uma sessão ativa no console do IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. Selecione o nome (não a caixa de seleção) da função AWSService RoleFor EMRCleanup vinculada ao serviço.

1. Na página **Resumo** do perfil vinculado ao serviço selecionado, escolha **Consultor de acesso**.

1. Na guia **Consultor de acesso**, revise a atividade recente para a função vinculada ao serviço.
**nota**  
Se você não tiver certeza se o Amazon EMR está usando AWSService RoleFor EMRCleanup a função vinculada ao serviço, você pode tentar excluir a função vinculada ao serviço. Se o serviço estiver usando o perfil vinculado ao serviço, a exclusão falhará e você poderá exibir as regiões em que o perfil está sendo usado. Se o perfil vinculado ao serviço estiver sendo usado, você deverá aguardar o término da sessão antes de exclui-lo. Não é possível revogar a sessão de uma função vinculada a um serviço. 

**Para remover os recursos do Amazon EMR usados pelo AWSService RoleFor EMRCleanup**
+ Encerre todos os clusters em sua conta. Para obter mais informações, consulte [Encerramento de um cluster do Amazon EMR em estado iniciando, executando ou aguardando](UsingEMR_TerminateJobFlow.md).

### Excluir um perfil vinculado ao serviço (console do IAM)
<a name="delete-service-linked-role-iam-console"></a>

É possível usar o console do IAM para excluir uma função vinculada ao serviço.

**Para excluir uma função vinculada ao serviço (console)**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. Marque a caixa de seleção ao lado AWSService RoleForEMRCleanup, não o nome ou a linha em si. 

1. Em ações de **Função** na parte superior da página, escolha a função **Excluir**.

1. Na caixa de diálogo de confirmação, revise os últimos dados acessados do serviço, que mostram quando cada uma das funções selecionadas acessou um AWS serviço pela última vez. Isso ajuda a confirmar se a função está ativa no momento. Para prosseguir, selecione **Yes, Delete**.

1. Monitore as notificações do console do IAM para progresso da exclusão da função vinculada ao serviço. Como a exclusão do perfil vinculado ao serviço do IAM é assíncrona, depois de enviar o perfil para exclusão, a tarefa de exclusão pode ou não ser bem-sucedida. Se a tarefa obtiver êxito, você poderá escolher **Visualizar Detalhes** ou **Visualizar Recursos** a partir das notificações para saber por que a exclusão falhou. Se houve falha na exclusão porque há recursos no serviço que estão sendo usados pela função, o motivo da falha incluirá uma lista de recursos.

### Excluir um perfil vinculado ao serviço (CLI do IAM)
<a name="delete-service-linked-role-iam-cli"></a>

Você pode usar os comandos do IAM do AWS Command Line Interface para excluir uma função vinculada ao serviço. Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Se essas condições não forem atendidas, essa solicitação poderá ser negada. 

**Para excluir uma função vinculado ao serviço (CLI)**

1. Para verificar o status da tarefa de exclusão, você deve capturar o `deletion-task-id` da resposta. Digite o seguinte comando para enviar uma solicitação de exclusão de função vinculada ao serviço:

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name AWSServiceRoleForEMRCleanup
   ```

1. Digite o seguinte comando para verificar o estado da tarefa de exclusão:

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

### Excluir uma função vinculada ao serviço (API do IAM)
<a name="delete-service-linked-role-iam-api"></a>

É possível usar a API do IAM para excluir uma função vinculada ao serviço. Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Se essas condições não forem atendidas, essa solicitação poderá ser negada. 

**Para excluir uma função vinculada ao serviço (API)**

1. Para enviar uma solicitação de exclusão para uma função vinculada ao serviço, ligue. [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) Na solicitação, especifique o nome da AWSService RoleFor EMRCleanup função.

   Para verificar o status da tarefa de exclusão, você deve capturar o `DeletionTaskId` da resposta.

1. Para verificar o status da exclusão, chame [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html). Na solicitação, especifique o `DeletionTaskId`.

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

## Regiões suportadas para AWSService RoleFor EMRCleanup
<a name="emr-slr-regions"></a>

O Amazon EMR oferece suporte ao uso da função AWSService RoleFor EMRCleanup vinculada ao serviço nas seguintes regiões.


****  

| Nome da região | Identidade da região | Compatível com o Amazon EMR | 
| --- | --- | --- | 
| Leste dos EUA (Norte da Virgínia) | us-east-1 | Sim | 
| Leste dos EUA (Ohio) | us-east-2 | Sim | 
| Oeste dos EUA (N. da Califórnia) | us-west-1 | Sim | 
| Oeste dos EUA (Oregon) | us-west-2 | Sim | 
| Ásia-Pacífico (Mumbai) | ap-south-1 | Sim | 
| Ásia Pacifico (Osaka) | ap-northeast-3 | Sim | 
| Ásia-Pacífico (Seul) | ap-northeast-2 | Sim | 
| Ásia-Pacífico (Singapura) | ap-southeast-1 | Sim | 
| Ásia-Pacífico (Sydney) | ap-southeast-2 | Sim | 
| Ásia-Pacífico (Tóquio) | ap-northeast-1 | Sim | 
| Canadá (Central) | ca-central-1 | Sim | 
| Europa (Frankfurt) | eu-central-1 | Sim | 
| Europa (Irlanda) | eu-west-1 | Sim | 
| Europa (Londres) | eu-west-2 | Sim | 
| Europa (Paris) | eu-west-3 | Sim | 
| América do Sul (São Paulo) | sa-east-1 | Sim | 

# Uso de perfis vinculados ao serviço com o Amazon EMR para registro em log com gravação antecipada
<a name="using-service-linked-roles-wal"></a>

O Amazon EMR usa funções vinculadas a [serviços AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Um perfil vinculado ao serviço é um tipo especial de perfil do IAM vinculado diretamente ao Amazon EMR. As funções vinculadas ao serviço são predefinidas pelo Amazon EMR e incluem todas as permissões que o serviço exige para chamar outros AWS serviços em seu nome.

Os perfis vinculados ao serviço funcionam com o perfil de serviço do Amazon EMR e o perfil de instância do Amazon EC2 para o Amazon EMR. Para obter mais informações sobre a função de serviço e o perfil da instância, consulte [Configurar funções de serviço do IAM para permissões do Amazon EMR para AWS serviços e recursos](emr-iam-roles.md).

Um perfil vinculado ao serviço facilita a configuração do Amazon EMR porque você não precisa adicionar as permissões necessárias manualmente. O Amazon EMR define as permissões dos perfis vinculados ao serviço e, a não ser que esteja definido de outra forma, somente o Amazon EMR poderá assumir os perfis. As permissões definidas incluem a política de confiança e a política de permissões, que não pode ser anexada a nenhuma outra entidade do IAM.

É possível excluir esse perfil vinculado ao serviço no Amazon EMR somente depois de excluir os recursos relacionados e encerrar todos os clusters do EMR na conta. Isso protege os recursos do Amazon EMR, para que você não possa remover inadvertidamente a permissão de acesso aos recursos.

## Permissões de perfil vinculado ao serviço para registro em log com gravação antecipada (WAL)
<a name="using-service-linked-roles-permissions-wal"></a>

O Amazon EMR usa a função vinculada ao serviço **AWSServiceRoleForEMRWAL** para recuperar o status de um cluster. 

A função vinculada ao serviço AWSService RoleFor EMRWAL confia nos seguintes serviços para assumir a função:
+ `emrwal.amazonaws.com`

A política de permissões [`EMRDescribeClusterPolicyForEMRWAL`](EMRDescribeClusterPolicyForEMRWAL.md) do perfil vinculado ao serviço permite que o Amazon EMR conclua as seguintes ações nos recursos especificados:
+ Ação: `DescribeCluster` em `*`

Você deve configurar permissões para permitir que uma entidade do IAM (neste caso, o Amazon EMR WAL) crie, edite ou exclua um perfil vinculado ao serviço. Adicione as seguintes instruções conforme necessário à política de permissões do perfil de instância:

## CreateServiceLinkedRole
<a name="iam-create-wal"></a>

**Para permitir que uma entidade do IAM crie a função vinculada ao AWSService RoleFor serviço EMRWAL**

Adicione a seguinte declaração à política de permissões da entidade do IAM que precisa criar a função vinculada ao serviço:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:CreateServiceLinkedRole",
        "iam:PutRolePolicy"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/emrwal.amazonaws.com*/AWSServiceRoleForEMRWAL*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.ca.cn"
            ]
        }
    }
}
```

## UpdateRoleDescription
<a name="iam-update-wal"></a>

**Para permitir que uma entidade do IAM edite a descrição da função vinculada ao serviço AWSService RoleFor EMRWAL**

Adicione a seguinte declaração à política de permissões da entidade do IAM que precisa editar a descrição de uma função vinculada ao serviço:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:UpdateRoleDescription"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/emrwal.amazonaws.com*/AWSServiceRoleForEMRWAL*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.ca.cn"
            ]
        }
    }
}
```

## DeleteServiceLinkedRole
<a name="iam-delete-wal"></a>

**Para permitir que uma entidade do IAM exclua a função vinculada ao AWSService RoleFor serviço EMRWAL**

Adicione a seguinte declaração à política de permissões da entidade do IAM que precisa excluir uma função vinculada ao serviço:

```
{
    "Effect": "Allow",
    "Action": [
        "iam:DeleteServiceLinkedRole",
        "iam:GetServiceLinkedRoleDeletionStatus"
    ],
    "Resource": "arn:aws:iam::*:role/aws-service-role/elasticmapreduce.amazonaws.com*/AWSServiceRoleForEMRCleanup*",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName": [
                "emrwal.amazonaws.com",
                "elasticmapreduce.amazonaws.com.rproxy.govskope.ca.cn"
            ]
        }
    }
}
```

## Criar um perfil vinculado ao serviço para Amazon EMR
<a name="create-service-linked-role-wal"></a>

Você não precisa criar manualmente a função AWSService RoleFor EMRWAL. O Amazon EMR cria essa função vinculada ao serviço automaticamente quando você cria um espaço de trabalho do WAL com a CLI do EMRWAL ou a AWS CloudFormation partir de, HBase ou cria a função vinculada ao serviço quando você configura um espaço de trabalho para o Amazon EMR WAL e a função vinculada ao serviço ainda não existe. Você deve ter permissões para criar um perfil vinculado ao serviço. Para obter um exemplo de instrução que acrescenta essa capacidade à política de permissões de uma entidade do IAM (por exemplo, um usuário, grupo ou perfil), consulte a seção anterior, [Permissões de perfil vinculado ao serviço para registro em log com gravação antecipada (WAL)](#using-service-linked-roles-permissions-wal).

## Editar um perfil vinculado ao serviço do Amazon EMR
<a name="edit-service-linked-role-wal"></a>

O Amazon EMR não permite que você edite a função vinculada ao serviço AWSService RoleFor EMRWAL. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência a ele. No entanto, você pode editar a descrição do perfil vinculado ao serviço usando o IAM.

### Editar a descrição de uma função vinculada ao serviço (console do IAM)
<a name="edit-service-linked-role-iam-console"></a>

Você pode usar o console do IAM para editar a descrição de uma função vinculada ao serviço.

**Para editar a descrição de uma função vinculada ao serviço (console)**

1. No painel de navegação do console do IAM, escolha **Perfis**.

1. Escolha o nome da função a ser modificada.

1. À direita de **Descrição do perfil**, escolha **Editar**. 

1. Insira uma nova descrição na caixa e escolha **Save changes** (Salvar alterações).

### Editar descrição de um perfil vinculado ao serviço (CLI do IAM)
<a name="edit-service-linked-role-iam-cli"></a>

Você pode usar os comandos do IAM do AWS Command Line Interface para editar a descrição de uma função vinculada ao serviço.

**Para alterar a descrição de uma função (CLI)**

1. (Opcional) Para visualizar a descrição atual de a uma função, use um dos comandos a seguir:

   ```
   $ aws iam get-role --role-name role-name
   ```

   Use o nome da função, não o nome de recurso da Amazon (ARN), para fazer referência às funções com os comandos da CLI. Por exemplo, se uma função tiver o seguinte nome de recurso da Amazon (ARN): `arn:aws:iam::123456789012:role/myrole`, você fará referência à função como **myrole**.

1. Para atualizar a descrição de uma função vinculada a serviço, use um dos comandos a seguir:

   ```
   $ aws iam update-role-description --role-name role-name --description description
   ```

### Editar a descrição de uma função vinculada ao serviço (API do IAM)
<a name="edit-service-linked-role-iam-api"></a>

Você pode usar a API do IAM para editar a descrição de uma função vinculada ao serviço.

**Para alterar a descrição de uma função (API)**

1. (Opcional) Para visualizar a descrição atual de uma função, use o comando a seguir:

   API do IAM: [GetRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetRole.html) 

1. Para atualizar a descrição de uma função, use o comando a seguir: 

   API do IAM: [UpdateRoleDescription](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateRoleDescription.html)

## Excluir um perfil vinculado ao serviço do Amazon EMR
<a name="delete-service-linked-role-wal"></a>

Se você não precisar mais usar um recurso ou serviço que exija um perfil vinculado a um serviço, recomendamos excluir esse perfil. Dessa forma, você não terá uma entidade não utilizada que não seja monitorada ativamente ou mantida. No entanto, você deve limpar sua função vinculada ao serviço antes de excluí-la.

**nota**  
A operação de registro antecipado de gravação não será afetada se você excluir a função AWSService RoleFor EMRWAL, mas o Amazon EMR não excluirá automaticamente os registros criados quando o cluster do EMR for encerrado. Portanto, você precisará excluir manualmente os logs do Amazon EMR WAL se excluir o perfil vinculado ao serviço.

### Limpar uma função vinculada ao serviço
<a name="service-linked-role-review-before-delete"></a>

Antes de você poder usar o IAM para excluir uma função vinculada ao serviço, você deve primeiro confirmar que a função não tem sessões ativas e remover quaisquer recursos usados pela função.

**Para verificar se a função vinculada ao serviço tem uma sessão ativa no console do IAM**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. Selecione o nome (não a caixa de seleção) da função AWSService RoleFor EMRWAL.

1. Na página **Summary (Resumo)** da função selecionada, selecione a guia **Access Advisor (Consultor de acesso)**.

1. Na guia **Consultor de acesso**, revise a atividade recente para a função vinculada ao serviço.
**nota**  
Se você não tiver certeza se o Amazon EMR está usando AWSService RoleFor a função EMRWAL, você pode tentar excluir a função vinculada ao serviço. Se o serviço estiver usando o perfil, a exclusão falhará e você poderá exibir as regiões em que o perfil está sendo usado. Se o perfil vinculado ao serviço estiver sendo usado, você deverá aguardar o término da sessão antes de exclui-lo. Não é possível revogar a sessão de uma função vinculada a um serviço. 

**Para remover os recursos do Amazon EMR usados pelo EMRWAL AWSService RoleFor**
+ Encerre todos os clusters em sua conta. Para obter mais informações, consulte [Encerramento de um cluster do Amazon EMR em estado iniciando, executando ou aguardando](UsingEMR_TerminateJobFlow.md).

### Excluir um perfil vinculado ao serviço (console do IAM)
<a name="delete-service-linked-role-iam-console"></a>

É possível usar o console do IAM para excluir uma função vinculada ao serviço.

**Para excluir uma função vinculada ao serviço (console)**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**. Marque a caixa de seleção ao lado de AWSService RoleFor EMRWAL, não o nome ou a linha em si. 

1. Em ações de **Função** na parte superior da página, escolha a função **Excluir**.

1. Na caixa de diálogo de confirmação, revise os últimos dados acessados do serviço, que mostram quando cada uma das funções selecionadas acessou um AWS serviço pela última vez. Isso ajuda a confirmar se a função está ativa no momento. Para prosseguir, selecione **Yes, Delete**.

1. Monitore as notificações do console do IAM para progresso da exclusão da função vinculada ao serviço. Como a exclusão da função vinculada ao serviço do IAM é assíncrona, depois de enviar a função para exclusão, a tarefa pode ou não ser bem-sucedida. Se a tarefa obtiver êxito, você poderá escolher **Visualizar Detalhes** ou **Visualizar Recursos** a partir das notificações para saber por que a exclusão falhou. Se houve falha na exclusão porque há recursos no serviço que estão sendo usados pela função, o motivo da falha incluirá uma lista de recursos.

### Excluir um perfil vinculado ao serviço (CLI do IAM)
<a name="delete-service-linked-role-iam-cli"></a>

Você pode usar os comandos do IAM do AWS Command Line Interface para excluir uma função vinculada ao serviço. Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Se essas condições não forem atendidas, essa solicitação poderá ser negada. 

**Para excluir uma função vinculado ao serviço (CLI)**

1. Para verificar o status da tarefa de exclusão, você deve capturar o `deletion-task-id` da resposta. Digite o seguinte comando para enviar uma solicitação de exclusão de função vinculada ao serviço:

   ```
   $ aws iam [delete-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-service-linked-role.html) --role-name AWSServiceRoleForEMRWAL
   ```

1. Digite o seguinte comando para verificar o estado da tarefa de exclusão:

   ```
   $ aws iam [get-service-linked-role-deletion-status](https://docs.aws.amazon.com/cli/latest/reference/iam/get-service-linked-role-deletion-status.html) --deletion-task-id deletion-task-id
   ```

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

### Excluir uma função vinculada ao serviço (API do IAM)
<a name="delete-service-linked-role-iam-api"></a>

É possível usar a API do IAM para excluir uma função vinculada ao serviço. Como uma função vinculada ao serviço não podem ser excluída se estiver sendo usada ou tiver recursos associados, você deverá enviar uma solicitação de exclusão. Se essas condições não forem atendidas, essa solicitação poderá ser negada. 

**Para excluir uma função vinculada ao serviço (API)**

1. Para enviar uma solicitação de exclusão para uma função vinculada ao serviço, ligue. [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) Na solicitação, especifique o nome da função AWSService RoleFor EMRWAL.

   Para verificar o status da tarefa de exclusão, você deve capturar o `DeletionTaskId` da resposta.

1. Para verificar o status da exclusão, chame [GetServiceLinkedRoleDeletionStatus](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetServiceLinkedRoleDeletionStatus.html). Na solicitação, especifique o `DeletionTaskId`.

   O status da tarefa de exclusão pode ser `NOT_STARTED`, `IN_PROGRESS`, `SUCCEEDED`, ou `FAILED`. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.

## Regiões suportadas pelo AWSService RoleFor EMRWAL
<a name="emr-slr-regions-wal"></a>

O Amazon EMR oferece suporte ao uso da função vinculada ao serviço AWSService RoleFor EMRWAL nas seguintes regiões.


****  

| Nome da região | Identidade da região | Compatível com o Amazon EMR | 
| --- | --- | --- | 
| Leste dos EUA (Norte da Virgínia) | us-east-1 | Sim | 
| Leste dos EUA (Ohio) | us-east-2 | Sim | 
| Oeste dos EUA (N. da Califórnia) | us-west-1 | Sim | 
| Oeste dos EUA (Oregon) | us-west-2 | Sim | 
| Ásia-Pacífico (Mumbai) | ap-south-1 | Sim | 
| Ásia-Pacífico (Singapura) | ap-southeast-1 | Sim | 
| Ásia-Pacífico (Sydney) | ap-southeast-2 | Sim | 
| Ásia-Pacífico (Tóquio) | ap-northeast-1 | Sim | 
| Europa (Frankfurt) | eu-central-1 | Sim | 
| Europa (Irlanda) | eu-west-1 | Sim | 

# Personalização de perfis do IAM com o Amazon EMR
<a name="emr-iam-roles-custom"></a>

Talvez seja útil personalizar as permissões e os perfis de serviço do IAM para limitar os privilégios de acordo com seus requisitos de segurança. Para personalizar as permissões, recomendamos que você crie novas funções e políticas. Comece com as permissões nas políticas gerenciadas para as funções padrão (por exemplo, `AmazonElasticMapReduceforEC2Role` e `AmazonElasticMapReduceRole`). Em seguida, copie e cole o conteúdo em novas declarações de política, modifique as permissões conforme apropriado e anexe as políticas de permissões modificadas às funções que criar. Você deve ter as permissões apropriadas do IAM para trabalhar com perfis e políticas. Para obter mais informações, consulte [Permitir que usuários e grupos criem e modifiquem perfis](emr-iam-roles-create-permissions.md).

Se você criar um perfil personalizado do EMR para o EC2, siga o fluxo de trabalho básico, que criará automaticamente um perfil de instância com o mesmo nome. O Amazon EC2 permite criar perfis e perfis de instância com nomes diferentes, mas o Amazon EMR não oferece suporte a essa configuração, o que resulta em um erro de “perfil de instância inválido” quando você cria o cluster. 

**Importante**  
As políticas em linha não são atualizadas automaticamente quando os requisitos do serviço são alterados. Se você criar e anexar políticas em linha, lembre-se de que podem ocorrer atualizações de serviço que causem erros de permissão repentinamente. Para obter mais informações, consulte [Políticas gerenciadas e em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_managed-vs-inline.html) no *Guia do usuário do IAM* e em [Especificar perfis personalizados do IAM ao criar um cluster](#emr-iam-roles-launch-jobflow).

Para obter mais informações sobre como trabalhar com perfis do IAM, consulte os seguintes tópicos no *Guia do usuário do IAM*:
+  [Criação de uma função para delegar permissões a um serviço AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) 
+  [Modificar uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/modifying-role.html) 
+  [Excluir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/deleting-roles.html) 

## Especificar perfis personalizados do IAM ao criar um cluster
<a name="emr-iam-roles-launch-jobflow"></a>

Você especifica o perfil de serviço para o Amazon EMR e o perfil para o perfil de instância do Amazon EC2 ao criar um cluster. O usuário que está criando clusters precisa de permissões para recuperar e atribuir perfis a instâncias do EC2 e ao Amazon EMR. Caso contrário, ocorrerá um erro **account is not authorized to call EC2**. Para obter mais informações, consulte [Permitir que usuários e grupos criem e modifiquem perfis](emr-iam-roles-create-permissions.md).

### Usar o console para especificar perfis personalizados
<a name="emr-iam-roles-launch-console"></a>

Ao criar um cluster, você pode especificar um perfil de serviço personalizado para o Amazon EMR, um perfil personalizado para o perfil de instância do EC2 e um perfil do Auto Scaling personalizado usando as **Opções avançadas**. Quando você usa **Quick options (Opções avançadas)**, a função de serviço padrão e a função padrão para o perfil de instância do EC2 são especificadas. Para obter mais informações, consulte [Perfis de serviço do IAM usados pelo Amazon EMR](emr-iam-service-roles.md).

------
#### [ Console ]

**Para especificar perfis do IAM personalizados usando o console**

Ao criar um cluster usando o console, é necessário especificar um perfil de serviço personalizado para o Amazon EMR e um perfil personalizado para o perfil de instância do EC2. Para obter mais informações, consulte [Perfis de serviço do IAM usados pelo Amazon EMR](emr-iam-service-roles.md).

1. [Faça login no e abra Console de gerenciamento da AWS o console do Amazon EMR em https://console.aws.amazon.com /emr.](https://console.aws.amazon.com/emr)

1. Em **EMR no EC2**, no painel de navegação esquerdo, escolha **Clusters** e depois **Criar cluster**.

1. Em **Configuração e permissões de segurança**, encontre os campos **Perfil do IAM para o perfil de instância** e **Perfil de serviço para o Amazon EMR**. Para cada tipo de função, selecione uma função na lista. Apenas as funções em sua conta que têm a política de confiança apropriada para esse tipo de função são listadas.

1. Escolha qualquer outra opção que se aplique ao cluster. 

1. Para iniciar o cluster, escolha **Criar cluster**.

------

### Use o AWS CLI para especificar funções personalizadas
<a name="emr-iam-roles-launch-cli"></a>

É possível especificar um perfil de serviço do Amazon EMR e um perfil de serviço para instâncias de cluster do EC2 usando explicitamente opções com o comando `create-cluster` na AWS CLI. Use a opção `--service-role` para especificar a função de serviço. Use o argumento `InstanceProfile` da opção `--ec2-attributes` para especificar a função para o perfil de instância do EC2.

O perfil do Auto Scaling é especificado usando uma opção separada, `--auto-scaling-role`. Para obter mais informações, consulte [Uso do ajuste de escala automático com uma política personalizada para grupos de instâncias no Amazon EMR](emr-automatic-scaling.md).

**Para especificar funções personalizadas do IAM usando o AWS CLI**
+ O comando a seguir especifica o perfil de serviço personalizado, *MyCustomServiceRoleForEMR*, e um perfil personalizado para o perfil da instância do EC2, *MyCustomServiceRoleForClusterEC2Instances*, ao iniciar um cluster. Este exemplo usa o perfil padrão do Amazon EMR.
**nota**  
Os caracteres de continuação de linha do Linux (\$1) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

  ```
  aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
  --applications Name=Hive Name=Pig --service-role MyCustomServiceRoleForEMR \
  --ec2-attributes InstanceProfile=MyCustomServiceRoleForClusterEC2Instances,\
  KeyName=myKey --instance-type m5.xlarge --instance-count 3
  ```

Você pode usar essas opções para especificar funções padrão explicitamente em vez de usar a opção `--use-default-roles`. A opção `--use-default-roles` especifica a função de serviço e a função do perfil de instância do EC2 definidas no arquivo `config` para a AWS CLI.

O exemplo a seguir demonstra o conteúdo de um `config` arquivo para as funções personalizadas especificadas para AWS CLI o Amazon EMR. Com esse arquivo de configuração, quando a `--use-default-roles` opção é especificada, o cluster é criado usando *MyCustomServiceRoleForEMR* e *MyCustomServiceRoleForClusterEC2Instances*. Por padrão, o arquivo `config` especifica a `service_role` padrão como `AmazonElasticMapReduceRole` e o `instance_profile` padrão como `EMR_EC2_DefaultRole`.

```
[default]
output = json
region = us-west-1
aws_access_key_id = myAccessKeyID
aws_secret_access_key = mySecretAccessKey
emr =
     service_role = MyCustomServiceRoleForEMR
     instance_profile = MyCustomServiceRoleForClusterEC2Instances
```

# Configurar perfis do IAM para solicitações do EMRFS para o Amazon S3
<a name="emr-emrfs-iam-roles"></a>

**nota**  
O recurso de mapeamento de perfis do EMRFS descrito nesta página foi aprimorado com a introdução da solução Amazon S3 Access Grants no Amazon EMR 6.15.0. Para uma solução de controle de acesso escalável para os seus dados no Amazon S3, recomendamos usar o [S3 Access Grants com o Amazon EMR](emr-access-grants.md).

Quando uma aplicação em execução em um cluster faz referência a dados usando o formato `s3://mydata`, o Amazon EMR usa o EMRFS para fazer a solicitação. Para interagir com o Amazon S3, o EMRFS assume as políticas de permissões anexadas ao [perfil de instância do Amazon EC2](emr-iam-role-for-ec2.md). O mesmo perfil de instância do Amazon EC2 é usado independentemente do usuário ou do grupo que está executando a aplicação ou do local dos dados no Amazon S3. 

Se tiver um cluster com vários usuários que precisam de diferentes níveis de acesso aos dados no Amazon S3 por meio do EMRFS, você poderá definir uma configuração de segurança com perfis do IAM para o EMRFS. O EMRFS pode assumir um perfil de serviço diferente para instâncias de cluster do EC2 com base no usuário ou no grupo que faz a solicitação ou com base na localização dos dados no Amazon S3. Cada perfil do IAM para o EMRFS pode ter permissões diferentes para acesso aos dados no Amazon S3. Para obter mais informações sobre o uso de perfis de serviço para instâncias de cluster do EC2. consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

Há suporte para uso de perfis personalizados do IAM para o EMRFS nas versões 5.10.0 e posteriores do Amazon EMR. Se usar uma versão anterior ou se tiver requisitos além dos fornecidos pelos perfis do IAM para EMRFS, você poderá criar um provedor de credenciais personalizadas. Para obter mais informações, consulte [Authorizing access to EMRFS data in Amazon S3](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-plan-credentialsprovider). 

Ao usar uma configuração de segurança para especificar perfis do IAM para EMRFS, você configura mapeamentos de perfil. Cada mapeamento de perfil especifica um perfil do IAM que corresponde a identificadores. Esses identificadores determinam a base para o acesso ao Amazon S3 por meio do EMRFS. Os identificadores podem ser usuários, grupos ou prefixos do Amazon S3 que indicam um local de dados. Quando o EMRFS faz uma solicitação ao Amazon S3, se a solicitação corresponder à base para o acesso, o EMRFS fará com que as instâncias do EC2 do cluster assumam o perfil do IAM correspondente para a solicitação. As permissões do IAM anexadas ao perfil se aplicam no lugar das permissões do IAM anexadas ao perfil de serviço para instâncias do EC2 do cluster.

Os usuários e os grupos em um mapeamento de função são usuários e grupos do Hadoop definidos no cluster. Os usuários e os grupos são passados para o EMRFS no contexto do aplicativo que o usa (por exemplo, a personificação de usuário do YARN). O prefixo do Amazon S3 pode ser um especificador do bucket de qualquer profundidade (por exemplo `s3://amzn-s3-demo-bucket` ou `s3://amzn-s3-demo-bucket/myproject/mydata`). Você pode especificar vários identificadores em um único mapeamento de função, mas todos devem ser do mesmo tipo.

**Importante**  
Os perfis do IAM para o EMRFS fornecem isolamento no nível da aplicação entre os usuários da aplicação. Isso não fornece isolamento no nível do host entre os usuários no host. Qualquer usuário com acesso ao cluster pode ignorar o isolamento para assumir qualquer uma das funções.

Quando uma aplicação de cluster faz uma solicitação ao Amazon S3 por meio do EMRFS, o EMRFS avalia os mapeamentos do perfil de cima para baixo na ordem em que aparecem na configuração de segurança. Se uma solicitação feita por meio do EMRFS não corresponder a nenhum identificador, o EMRFS retornará ao uso do perfil de serviço para instâncias do EC2 do cluster. Por esse motivo, recomendamos que as políticas anexadas ao perfil limitem as permissões ao Amazon S3. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

## Configurar funções do
<a name="emr-emrfs-iam-roles-role-configuration"></a>

Antes de definir uma configuração de segurança com funções do IAM para EMRFS, planeje e crie perfis e as políticas de permissão a serem anexadas aos perfis. Para obter mais informações, consulte [Como os perfis para as instâncias do Amazon EC2 funcionam?](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html) no *Guia do usuário do IAM*. Ao criar políticas de permissão, recomendamos começar com a política gerenciada anexada ao perfil do Amazon EMR padrão para o EC2 e depois editar essa política de acordo com seus requisitos. O nome de perfil padrão é `EMR_EC2_DefaultRole`, e a política gerenciada padrão a ser editada é `AmazonElasticMapReduceforEC2Role`. Para obter mais informações, consulte [Perfil de serviço para instâncias do EC2 do cluster (perfil de instância do EC2)](emr-iam-role-for-ec2.md).

### Atualizar políticas de confiança para permissões para assumir perfil
<a name="emr-emrfs-iam-role-trust-policy"></a>

Cada perfil que o EMRFS usa deve ter uma política de confiança que permite que o perfil do Amazon EMR para o EC2 do cluster o assuma. Da mesma forma, o perfil do Amazon EMR para o EC2 do cluster deve ter uma política de confiança que permita que os perfis do EMRFS o assumam.

O exemplo de política de confiança a seguir está anexado a funções para o EMRFS. A instrução permite que o perfil padrão do Amazon EMR para o EC2 assuma o perfil. Por exemplo, se você tiver duas funções do EMRFS fictícias `EMRFSRole_First` e `EMRFSRole_Second`, esta declaração de política será adicionada às políticas de confiança para cada uma delas.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": "arn:aws:iam::123456789012:role/EMR_EC2_DefaultRole",
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

Além disso, o exemplo a seguir de declaração de política de confiança é adicionado à `EMR_EC2_DefaultRole` para permitir que as duas funções do EMRFS fictícias a assumam.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sts:AssumeRole"
      ],
      "Resource": [
        "arn:aws:iam::123456789012:role/EMRFSRole_First",
        "arn:aws:iam::123456789012:role/EMRFSRole_Second"
      ],
      "Sid": "AllowSTSAssumerole"
    }
  ]
}
```

------

**Atualizar a política de confiança de um perfil do IAM**

Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Selecione **Roles (funções)**, insira o nome da função em **Search (Pesquisar)** e, em seguida, selecione o **Role name (Nome da função)**.

1. Escolha **Trust relationships (Relacionamentos de confiança)**, **Edit trust relationship (Editar relacionamento de confiança)**.

1. Adicione uma instrução de confiança de acordo com o **Documento da política**, de acordo com as diretrizes acima e selecione **Atualizar política de confiança**.

### Especificar um perfil como um usuário da chave
<a name="emr-emrfs-iam-role-key-user"></a>

Se o perfil permitir acesso a um local no Amazon S3 que é criptografado usando uma AWS KMS key, especifique o perfil como um usuário de chaves. Isso concede permissões ao perfil para usar a chave do KMS. Para saber mais, consulte [Políticas de chaves no AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html#key-policy-default-allow-users) no *Guia do desenvolvedor do AWS Key Management Service *.

## Definir uma configuração de segurança com perfis do IAM para EMRFS
<a name="emr-emrfs-iam-roles-setup"></a>

**Importante**  
Se nenhuma das perfis do IAM para EMRFS que você especificar for aplicável, o EMRFS retornará para o perfil do Amazon EMR para EC2. Considere a possibilidade de personalizar esse perfil para restringir permissões para o Amazon S3 conforme apropriado para suas aplicação e especificar esse perfil personalizado em vez de `EMR_EC2_DefaultRole` ao criar um cluster. Para obter mais informações, consulte [Personalização de perfis do IAM com o Amazon EMR](emr-iam-roles-custom.md) e [Especificar perfis personalizados do IAM ao criar um cluster](emr-iam-roles-custom.md#emr-iam-roles-launch-jobflow).

**Especificar perfis do IAM para solicitações do EMRFS para o Amazon S3 usando o console**

1. Crie uma configuração de segurança que especifica os mapeamentos de função:

   1. No console do Amazon EMR, selecione **Configurações de segurança**, **Criar**.

   1. Digite um nome em **Name (Nome)** para a configuração de segurança. Esse nome é usado para especificar a configuração de segurança ao criar um cluster.

   1. Escolha **Usa perfis do IAM para solicitações do EMRFS ao Amazon S3**.

   1. Selecione um **Perfil do IAM** a ser aplicada e, em **Base para acesso**, selecione um tipo de identificador (**Usuários**, **Grupos** ou **Prefixos do S3**) na lista e insira os identificadores correspondentes. Se você usar vários identificadores, separe-os com uma vírgula e sem espaço. Para obter mais informações sobre cada tipo de identificador, consulte a [JSON configuration reference](#emrfs-seccfg-json) abaixo.

   1. Escolha **Add role (Adicionar função)** para configurar mapeamentos de funções adicionais, conforme descrito na etapa anterior.

   1. Configure outras opções de configuração de segurança conforme apropriado e escolha **Create (Criar)**. Para obter mais informações, consulte [Crie uma configuração de segurança com o console do Amazon EMR ou com o AWS CLI](emr-create-security-configuration.md).

1. Especifique a configuração de segurança criada acima ao criar um cluster. Para obter mais informações, consulte [Como especificar uma configuração de segurança para um cluster do Amazon EMR](emr-specify-security-configuration.md).

**Para especificar funções do IAM para solicitações do EMRFS para o Amazon S3 usando o AWS CLI**

1. Use o comando `aws emr create-security-configuration`, especificando um nome para a configuração de segurança e os detalhes da configuração de segurança no formato JSON.

   O comando de exemplo mostrado a seguir cria uma configuração de segurança com o nome `EMRFS_Roles_Security_Configuration`. Ele é baseado em uma estrutura JSON no arquivo `MyEmrfsSecConfig.json`, que é salvo no mesmo diretório onde o comando é executado.

   ```
   aws emr create-security-configuration --name EMRFS_Roles_Security_Configuration --security-configuration file://MyEmrFsSecConfig.json.
   ```

   Use as diretrizes a seguir para a estrutura do arquivo `MyEmrFsSecConfig.json`. Você pode especificar essa estrutura juntamente com estruturas de outras opções de configuração de segurança. Para obter mais informações, consulte [Crie uma configuração de segurança com o console do Amazon EMR ou com o AWS CLI](emr-create-security-configuration.md).

   Veja a seguir um exemplo de trecho JSON para especificar perfis do IAM personalizados para o EMRFS em uma configuração de segurança. Ele demonstra mapeamentos de perfil para os três tipos diferentes de identificadores, seguidos por uma referência de parâmetro. 

   ```
   {
     "AuthorizationConfiguration": {
       "EmrFsConfiguration": {
         "RoleMappings": [{
           "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_user1",
           "IdentifierType": "User",
           "Identifiers": [ "user1" ]
         },{
           "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_to_demo_s3_buckets",
           "IdentifierType": "Prefix",
           "Identifiers": [ "s3://amzn-s3-demo-bucket1/","s3://amzn-s3-demo-bucket2/" ]
         },{
           "Role": "arn:aws:iam::123456789101:role/allow_EMRFS_access_for_AdminGroup",
           "IdentifierType": "Group",
           "Identifiers": [ "AdminGroup" ]
         }]
       }
     }
   }
   ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html)

1. Use o comando `aws emr create-cluster` para criar um cluster e especifique a configuração de segurança que você criou na etapa anterior. 

   O exemplo a seguir cria um cluster com aplicativos Hadoop de núcleo padrão instalados. O cluster usa a configuração de segurança criada acima como `EMRFS_Roles_Security_Configuration` e também usa um perfil do Amazon EMR personalizado para o EC2, `EC2_Role_EMR_Restrict_S3`, que é especificada usando o argumento `InstanceProfile` do parâmetro `--ec2-attributes`.
**nota**  
Os caracteres de continuação de linha do Linux (\$1) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

   ```
   aws emr create-cluster --name MyEmrFsS3RolesCluster \
   --release-label emr-7.12.0 --ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3,KeyName=MyKey \
   --instance-type m5.xlarge --instance-count 3 \
   --security-configuration EMRFS_Roles_Security_Configuration
   ```

# Use políticas baseadas em recursos para o acesso do Amazon EMR ao Glue Data Catalog AWS
<a name="emr-iam-roles-glue"></a>

Se você usa o AWS Glue em conjunto com o Hive, o Spark ou o Presto no Amazon EMR AWS , o Glue oferece suporte a políticas baseadas em recursos para controlar o acesso aos recursos do catálogo de dados. Esses recursos incluem bancos de dados, tabelas, conexões e funções definidas pelo usuário. Para obter mais informações, consulte [Políticas baseadas em recursos no AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/glue-resource-policies.html) no *Guia do desenvolvedor do AWS Glue*.

Ao usar políticas baseadas em recursos para limitar o acesso ao AWS Glue de dentro do Amazon EMR, o principal que você especifica na política de permissões deve ser o ARN da função associado ao perfil de instância do EC2 que é especificado quando um cluster é criado. Por exemplo, para uma política baseada em recursos anexada a um catálogo, você pode especificar o ARN da função para a função de serviço padrão para instâncias EC2 de cluster, *EMR\$1EC2\$1DefaultRole* como a`Principal`, usando o formato mostrado no exemplo a seguir:

```
arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole
```

*acct-id*Pode ser diferente do ID da conta AWS Glue. Isso possibilita o acesso de clusters do EMR em outras contas. Você pode especificar várias entidades principais, cada uma de uma conta diferente.

# Use funções do IAM com aplicativos que chamam AWS serviços diretamente
<a name="emr-iam-roles-calling"></a>

Os aplicativos executados nas instâncias do EC2 de um cluster podem usar o perfil da instância do EC2 para obter credenciais de segurança temporárias ao chamar serviços. AWS 

As versões do Hadoop disponíveis com a versão 2.3.0 e posteriores do Amazon EMR já foram atualizadas para usar perfis do IAM. Se seu aplicativo é executado estritamente sobre a arquitetura do Hadoop e não chama diretamente nenhum serviço AWS, ele deve funcionar com funções do IAM sem modificações.

Se seu aplicativo chamar serviços AWS diretamente, você precisará atualizá-lo para aproveitar as funções do IAM. Isso significa que, em vez de obter credenciais de conta de `/etc/hadoop/conf/core-site.xml` nas instâncias do EC2 no cluster, sua aplicação usa um SDK para acessar os recursos usando perfis do IAM ou chama os metadados de instâncias do EC2 para obter as credenciais temporárias.

**Para acessar AWS recursos com funções do IAM usando um SDK**
+ Os tópicos a seguir mostram como usar vários deles AWS SDKs para acessar credenciais temporárias usando funções do IAM. Cada tópico começa com uma versão de uma aplicação que não usa perfis do IAM e depois percorre o processo de conversão dessa aplicação para usar perfis do IAM. 
  +  [Using IAM roles for Amazon EC2 instances with the SDK for Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-roles.html) no *Guia do usuário do AWS SDK para Java * 
  +  [Using IAM roles for Amazon EC2 instances with the SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-roles.html) no *Guia do usuário do AWS SDK para .NET * 
  +  [Using IAM roles for Amazon EC2 instances with the SDK for PHP](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/php-dg-roles.html) no *Guia do usuário do AWS SDK para PHP * 
  +  [Using IAM roles for Amazon EC2 instances with the SDK for Ruby](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/ruby-dg-roles.html) no *Guia do usuário do AWS SDK para Ruby * 

**Para obter credenciais temporárias de metadados de instâncias do EC2**
+ Chame a seguinte URL de uma instância do EC2 que está sendo executada com a função IAM especificada, que retorna as credenciais de segurança temporárias associadas (AccessKeyId, SecretAccessKey SessionToken, e Expiration). O exemplo a seguir usa o perfil de instância padrão para o Amazon EMR, `EMR_EC2_DefaultRole`. 

  ```
  GET http://169.254.169.254/latest/meta-data/iam/security-credentials/EMR_EC2_DefaultRole
  ```

Para obter mais informações sobre como escrever aplicativos que usam funções do IAM, consulte [Conceder acesso AWS a recursos para aplicativos executados em instâncias do Amazon EC2](https://docs.aws.amazon.com/IAM/latest/UserGuide/role-usecase-ec2app.html).

Para obter mais informações sobre credenciais de segurança temporárias, consulte [Using temporary security credentials](https://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html) no guia *Using Temporary Security Credentials*. 

# Permitir que usuários e grupos criem e modifiquem perfis
<a name="emr-iam-roles-create-permissions"></a>

As entidades principais do IAM (usuários e grupos) que criam, modificam e especificam os perfis para um cluster, incluindo perfis padrão, devem ter permissão para executar as ações a seguir. Para obter detalhes sobre cada ação, consulte [Actions](https://docs.aws.amazon.com/IAM/latest/APIReference/API_Operations.html) na *IAM API Reference*.
+ `iam:CreateRole`
+ `iam:PutRolePolicy`
+ `iam:CreateInstanceProfile`
+ `iam:AddRoleToInstanceProfile`
+ `iam:ListRoles`
+ `iam:GetPolicy`
+ `iam:GetInstanceProfile`
+ `iam:GetPolicyVersion`
+ `iam:AttachRolePolicy`
+ `iam:PassRole`

A permissão `iam:PassRole` permite a criação do cluster. As permissões restantes permitem a criação das funções padrão.

Para obter informações sobre como atribuir permissões a um usuário, consulte [Alteração de permissões de um usuário](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) no *Guia do usuário do IAM*.