Uso de perfis vinculados ao serviço com o Amazon EMR para registro em log com gravação antecipada - Amazon EMR

Uso de perfis vinculados ao serviço com o Amazon EMR para registro em log com gravação antecipada

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, e essa política 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)

O Amazon EMR usa o perfil vinculado ao serviço AWSServiceRoleForEMRWAL para recuperar o status de um cluster.

O perfil vinculado ao serviço AWSServiceRoleForEMRWAL confia nos seguintes serviços para assumir o perfil:

  • emrwal.amazonaws.com

A política de permissões EMRDescribeClusterPolicyForEMRWAL 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:

Para permitir que uma entidade do IAM crie o perfil vinculado ao serviço AWSServiceRoleForEMRWAL

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.goskope.com.cn" ] } } }

Para permitir que uma entidade do IAM edite a descrição do perfil vinculado ao serviço AWSServiceRoleForEMRWAL

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.goskope.com.cn" ] } } }

Para permitir que uma entidade do IAM exclua o perfil vinculado ao serviço AWSServiceRoleForEMRWAL

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.goskope.com.cn" ] } } }

Criar um perfil vinculado ao serviço para Amazon EMR

Não é necessário criar o perfil AWSServiceRoleForEMRWAL manualmente. O Amazon EMR cria esse perfil vinculado ao serviço automaticamente quando você cria um Workspace do WAL com a CLI do EMRWAL ou o AWS CloudFormation, ou o HBase criará o perfil vinculado ao serviço ao configurar um Workspace para o Amazon EMR WAL e o perfil vinculado ao serviço ainda não existir. 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).

Editar um perfil vinculado ao serviço do Amazon EMR

O Amazon EMR não permite editar o perfil vinculado ao serviço AWSServiceRoleForEMRWAL. 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)
  1. No painel de navegação do console do IAM, escolha Perfis.

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

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

  4. 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)
  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.

  2. 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)

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

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

nota

A operação de log com gravação antecipada não será afetada se você excluir o perfil AWSServiceRoleForEMRWAL, mas o Amazon EMR não excluirá automaticamente os logs 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

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

  2. No painel de navegação, escolha Perfis. Selecione o nome (não a caixa de seleção) do perfil AWSServiceRoleForEMRWAL.

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

  4. 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 AWSServiceRoleForEMRWAL, tente excluir o perfil vinculado 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 por AWSServiceRoleForEMRWAL

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)
  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Perfis. Marque a caixa de seleção ao lado de AWSServiceRoleForEMRWAL e não o nome ou a linha em si.

  3. Em ações de Role (Função) na parte superior da página, escolha a função Delete (Excluir).

  4. 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 produto da AWS. Isso ajuda você a confirmar se a função está ativo no momento. Para prosseguir, selecione Yes, Delete.

  5. 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)

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)
  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 --role-name AWSServiceRoleForEMRWAL
  2. Digite o seguinte comando para verificar o estado da tarefa de exclusão:

    $ aws iam get-service-linked-role-deletion-status --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)

É 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 de uma função vinculada ao serviço, chame DeleteServiceLinkedRole. Na solicitação, especifique o nome do perfil AWSServiceRoleForEMRWAL.

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

  2. 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, ou FAILED. 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 AWSServiceRoleForEMRWAL

O Amazon EMR é compatível com o uso do perfil vinculado ao serviço AWSServiceRoleForEMRWAL 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-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