Uso de perfis vinculados ao serviço para limpeza do Amazon EMR
O Amazon EMR usa perfis vinculados ao serviço do AWS Identity and Access Management (IAM). Um perfil vinculado ao serviço é um tipo especial de perfil do IAM vinculado diretamente ao Amazon EMR. Os perfis vinculados ao serviço são pré-definidos pelo Amazon EMR e incluem todas as permissões que o serviço requer para chamar outros serviços da AWS 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 perfis de serviço do IAM para permissões do Amazon EMR aos serviços e recursos da AWS.
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
O Amazon EMR usa o perfil AWSServiceRoleForEMRCleanup baseado em serviço para conceder permissão ao Amazon EMR para encerrar e excluir recursos do Amazon EC2 em seu nome se o perfil vinculado 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.
O perfil vinculado ao serviço AWSServiceRoleForEMRCleanup service-linked confia nos seguintes serviços para assumir o perfil:
-
elasticmapreduce.amazonaws.com
A política de permissões de perfil vinculado ao serviço AWSServiceRoleForEMRCleanup service-linked permite que o Amazon EMR conclua as seguintes ações nos recursos especificados:
-
Ação:
DescribeInstancesemec2 -
Ação:
DescribeLaunchTemplatesemec2 -
Ação:
DeleteLaunchTemplateemec2 -
Ação:
DescribeSpotInstanceRequestsemec2 -
Ação:
ModifyInstanceAttributeemec2 -
Ação:
TerminateInstancesemec2 -
Ação:
CancelSpotInstanceRequestsemec2 -
Ação:
DeleteNetworkInterfaceemec2 -
Ação:
DescribeInstanceAttributeemec2 -
Ação:
DescribeVolumeStatusemec2 -
Ação:
DescribeVolumesemec2 -
Ação:
DetachVolumeemec2 -
Ação:
DeleteVolumeemec2 -
Ação:
DescribePlacementGroupsemec2 -
Ação:
DeletePlacementGroupemec2
Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua um perfil vinculado a serviço.
Criar um perfil vinculado ao serviço para Amazon EMR
Não é necessário criar o perfil AWSServiceRoleForEMRCleanup manualmente. Ao iniciar um cluster, pela primeira vez ou quando o perfil vinculado ao serviço AWSServiceRoleForEMRCleanup não está presente, o Amazon EMR cria o perfil vinculado ao serviço AWSServiceRoleForEMRCleanup 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ê estava usando o Amazon EMR antes de 24 de outubro de 2017, quando não havia suporte para perfis vinculados ao serviço, o Amazon EMR criou o perfil AWSServiceRoleForEMRCleanup na sua conta. Para obter mais informações, consulte Uma nova função apareceu na minha conta do IAM.
Editar um perfil vinculado ao serviço do Amazon EMR
O Amazon EMR não permite editar o perfil vinculado ao serviço AWSServiceRoleForEMRCleanup. 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)
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)
-
No painel de navegação do console do IAM, escolha Perfis.
-
Escolha o nome da função a ser modificada.
-
À direita de Descrição do perfil, escolha Editar.
-
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)
Você pode usar comandos do IAM na 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)
-
(Opcional) Para visualizar a descrição atual de a uma função, use um dos comandos a seguir:
$aws iam get-role --role-namerole-nameUse 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 comomyrole. -
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-namerole-name--descriptiondescription
Editar a descrição de uma função vinculada ao serviço (API do IAM)
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)
-
(Opcional) Para visualizar a descrição atual de uma função, use o comando a seguir:
API do IAM: GetRole
-
Para atualizar a descrição de uma função, use o comando a seguir:
API do IAM: UpdateRoleDescription
Excluir um perfil vinculado ao serviço do Amazon EMR
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
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
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Perfis. Selecione o nome (não a caixa de seleção) do perfil vinculado ao serviço AWSServiceRoleForEMRCleanup.
-
Na página Resumo do perfil vinculado ao serviço selecionado, escolha Consultor de acesso.
-
Na guia Consultor de acesso, revise a atividade recente para a função vinculada ao serviço.
nota
Se não tiver certeza se o Amazon EMR está usando o perfil vinculado ao serviço AWSServiceRoleForEMRCleanup, tente exclui-lo. 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.
Remover os recursos do Amazon EMR usados por AWSServiceRoleForEMRCleanup
-
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.
Excluir um perfil vinculado ao serviço (console do IAM)
É 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)
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Perfis. Marque a caixa de seleção ao lado de AWSServiceRoleForEMRCleanup e não o nome ou a linha em si.
-
Em ações de Role (Função) na parte superior da página, escolha a função Delete (Excluir).
-
Na caixa de diálogo de confirmação, revise os dados do último acesso ao serviço, que mostram quando cada uma das funções selecionadas acessou pela última vez um serviço da AWS. Isso ajuda você a confirmar se a função está ativo no momento. Para prosseguir, selecione Yes, Delete.
-
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)
Você pode usar comandos do IAM na 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)
-
Para verificar o status da tarefa de exclusão, você deve capturar o
deletion-task-idda 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 --role-name AWSServiceRoleForEMRCleanup -
Digite o seguinte comando para verificar o estado da tarefa de exclusão:
$aws iam get-service-linked-role-deletion-status --deletion-task-iddeletion-task-idO status da tarefa de exclusão pode ser
NOT_STARTED,IN_PROGRESS,SUCCEEDED, ouFAILED. 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)
É 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)
-
Para enviar uma solicitação de exclusão de uma função vinculada ao serviço, chame DeleteServiceLinkedRole. Na solicitação, especifique o nome do perfil AWSServiceRoleForEMRCleanup.
Para verificar o status da tarefa de exclusão, você deve capturar o
DeletionTaskIdda resposta. -
Para verificar o status da exclusão, chame GetServiceLinkedRoleDeletionStatus. Na solicitação, especifique o
DeletionTaskId.O status da tarefa de exclusão pode ser
NOT_STARTED,IN_PROGRESS,SUCCEEDED, ouFAILED. Se a exclusão falhar, a chamada informará o motivo de falha para que você possa solucionar o problema.
Regiões compatíveis com o AWSServiceRoleForEMRCleanup
O Amazon EMR é compatível com o uso do perfil vinculado ao serviço AWSServiceRoleForEMRCleanup nas regiões a seguir.
| 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 |