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 perfis do IAM para solicitações do EMRFS para o Amazon S3
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.
Quando uma aplicação em execução em um cluster faz referência a dados usando o formato s3://
, 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 seu perfil de instância da Amazon. EC2 O mesmo perfil de EC2 instância da Amazon é usado independentemente do usuário ou grupo que executa o aplicativo ou da localização dos dados no Amazon S3. mydata
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 uma função de serviço diferente para EC2 instâncias de cluster com base no usuário ou 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 a função de serviço para EC2 instâncias de cluster, consulteFunção de serviço para EC2 instâncias de cluster (perfil de EC2 instância).
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.
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 de acesso, o EMRFS faz com que as instâncias de EC2 cluster assumam a função do IAM correspondente para a solicitação. As permissões do IAM anexadas a essa função se aplicam em vez das permissões do IAM anexadas à função de serviço para EC2 instâncias de 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 volta a usar a função de serviço para instâncias de cluster. EC2 Por esse motivo, recomendamos que as políticas anexadas ao perfil limitem as permissões ao Amazon S3. Para obter mais informações, consulte Função de serviço para EC2 instâncias de cluster (perfil de EC2 instância).
Configurar funções do
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 funcionam as funções das EC2 instâncias? no Guia do usuário do IAM. Ao criar políticas de permissões, recomendamos que você comece com a política gerenciada anexada à função padrão do Amazon EMR e EC2, em seguida, edite 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 Função de serviço para EC2 instâncias de cluster (perfil de EC2 instância).
Atualizar políticas de confiança para permissões para assumir perfil
Cada função usada pelo EMRFS deve ter uma política de confiança que permita que a função Amazon EMR do cluster a assuma. EC2 Da mesma forma, a função do Amazon EMR do cluster EC2 deve ter uma política de confiança que permita que as funções do EMRFS a assumam.
O exemplo de política de confiança a seguir está anexado a funções para o EMRFS. A declaração permite que a função padrão do Amazon EMR assuma EC2 a função. 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.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS":"arn:aws:iam::
AWSAcctID
:role/EMR_EC2_DefaultRole" }, "Action":"sts:AssumeRole" } ] }
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.
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "AWS": ["arn:aws:iam::
AWSAcctID
:role/EMRFSRole_First
", "arn:aws:iam::AWSAcctID
:role/EMRFSRole_Second
"] }, "Action":"sts:AssumeRole" } ] }
Atualizar a política de confiança de um perfil do IAM
Abra o console do IAM em https://console.aws.amazon.com/iam/
-
Selecione Roles (funções), insira o nome da função em Search (Pesquisar) e, em seguida, selecione o Role name (Nome da função).
-
Escolha Trust relationships (Relacionamentos de confiança), Edit trust relationship (Editar relacionamento de confiança).
-
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
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 obter mais informações, consulte Políticas de chaves no AWS KMS no Guia do desenvolvedor do AWS Key Management Service .
Definir uma configuração de segurança com perfis do IAM para EMRFS
Importante
Se nenhuma das funções do IAM para o EMRFS que você especificar se aplicar, o EMRFS retornará à função 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 ter mais informações, consulte Personalização de perfis do IAM com o Amazon EMR e Especificar perfis personalizados do IAM ao criar um cluster.
Especificar perfis do IAM para solicitações do EMRFS para o Amazon S3 usando o console
-
Crie uma configuração de segurança que especifica os mapeamentos de função:
-
No console do Amazon EMR, selecione Configurações de segurança, Criar.
-
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.
-
Escolha Usa perfis do IAM para solicitações do EMRFS ao Amazon S3.
-
Selecione um perfil do IAM a ser aplicado 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 abaixo.
-
Escolha Add role (Adicionar função) para configurar mapeamentos de funções adicionais, conforme descrito na etapa anterior.
-
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.
-
-
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.
Para especificar funções do IAM para solicitações do EMRFS para o Amazon S3 usando o AWS CLI
-
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 arquivoMyEmrfsSecConfig.json
, que é salvo no mesmo diretório onde o comando é executado.aws emr create-security-configuration --name
EMRFS_Roles_Security_Configuration
--security-configurationfile://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.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
" ] }] } } }Parameter Descrição "AuthorizationConfiguration":
Obrigatório.
"EmrFsConfiguration":
Obrigatório. Contém mapeamentos de perfil.
"RoleMappings":
Obrigatório. Contém uma ou mais definições de mapeamento de perfil. Os mapeamentos de perfil são avaliados na ordem em que aparecem, de cima para baixo. Se o mapeamento de perfil for avaliado como true para uma chamada do EMRFS para dados no Amazon S3, nenhum outro mapeamento de perfil será avaliado, e o EMRFS usará o perfil do IAM especificado para a solicitação. O mapeamento de perfil tem os seguintes parâmetros obrigatórios:
"Role":
Especifica o identificador ARN de um perfil do IAM no formato
arn:aws:iam::
. Essa é o perfil do IAM que o Amazon EMR assume se a solicitação do EMRFS para o Amazon S3 corresponder a qualquer um dosaccount-id
:role/role-name
Identifiers
especificados."IdentifierType":
Pode ser um dos seguintes:
"User"
especifica que os identificadores são um ou mais usuários do Hadoop, que podem ser usuários de contas Linux ou entidades principais do Kerberos. Quando a solicitação do EMRFS se origina com os usuários especificados, o perfil do IAM é assumido."Prefix"
especifica que o identificador é um local do Amazon S3. O perfil do IAM é assumido para chamadas para os locais com os prefixos especificados. Por exemplo, o prefixos3://amzn-s3-demo-bucket/
corresponde as3://amzn-s3-demo-bucket/mydir
es3://amzn-s3-demo-bucket/yetanotherdir
."Group"
especifica que os identificadores são um ou mais grupos do Hadoop. O perfil do IAM será assumido se a solicitação for originada de um usuário dos grupos especificados.
"Identifiers":
Especifica um ou mais identificadores do tipo de identificador adequado. Separe múltiplos identificadores por vírgulas sem espaços.
-
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 uma função personalizada do Amazon EMR para EC2,EC2_Role_EMR_Restrict_S3
, que é especificada usando oInstanceProfile
argumento do--ec2-attributes
parâmetro.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
MyEmrFsS3RolesCluster
\ --release-labelemr-7.6.0
--ec2-attributes InstanceProfile=EC2_Role_EMR_Restrict_S3
,KeyName=MyKey
\ --instance-typem5.xlarge
--instance-count3
\ --security-configurationEMRFS_Roles_Security_Configuration