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.
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-labelemr-7.10.0\ --applications Name=Hive Name=Pig --service-roleMyCustomServiceRoleForEMR\ --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 =myAccessKeyIDaws_secret_access_key =mySecretAccessKeyemr = service_role =MyCustomServiceRoleForEMRinstance_profile =MyCustomServiceRoleForClusterEC2Instances