Personalização de perfis do IAM com o Amazon EMR - Amazon EMR

Personalização de perfis do IAM com o Amazon EMR

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.

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 no Guia do usuário do IAM e em Especificar perfis personalizados do IAM ao criar um cluster.

Para obter mais informações sobre como trabalhar com perfis do IAM, consulte os seguintes tópicos no Guia do usuário do IAM:

Especificar perfis personalizados do IAM ao criar um cluster

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.

Usar o console para especificar perfis personalizados

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.

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.

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

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

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

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

  5. Para iniciar o cluster, escolha Criar cluster.

Usar a AWS CLI para especificar perfis personalizados

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

Especificar perfis do IAM personalizados usando a 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 (\) 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.10.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 arquivo config para a AWS CLI que especifica perfis personalizados do 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