Criação de um perfil de execução de trabalho
Para executar workloads no Amazon EMR no EKS, você precisa criar um perfil do IAM. Referimo-nos a esse perfil como perfil de execução de trabalho nesta documentação. Para obter mais informações sobre como criar perfis do IAM, consulte Criação de perfis do IAM no Guia do usuário do IAM.
Você também deve criar uma política do IAM que especifique as permissões para o perfil de execução de trabalho e, em seguida, anexar a política do IAM ao perfil de execução de trabalho.
A política a seguir para o perfil de execução de trabalho permite acesso aos destinos de recursos, ao Amazon S3 e ao CloudWatch. Essas permissões são necessárias para monitorar trabalhos e acessar logs. Para seguir o mesmo processo usando o AWS CLI:
Crie o perfil do IAM para execução do trabalho: vamos criar o perfil que o EMR usará para a execução do trabalho. Essa é o perfil que os trabalhos do EMR assumirão quando forem executados no EKS.
cat <<EoF > ~/environment/emr-trust-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "elasticmapreduce.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EoF aws iam create-role --role-name EMRContainers-JobExecutionRole --assume-role-policy-document file://~/environment/emr-trust-policy.json
Em seguida, precisamos anexar as políticas do IAM necessárias ao perfil para que ele possa gravar logs no S3 e no cloudwatch.
cat <<EoF > ~/environment/EMRContainers-JobExecutionRole.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] } EoF aws iam put-role-policy --role-name EMRContainers-JobExecutionRole --policy-name EMR-Containers-Job-Execution --policy-document file://~/environment/EMRContainers-JobExecutionRole.json
nota
O acesso deve ter um escopo adequado e não ser concedido a todos os objetos do S3 no perfil de execução de trabalho.
Para obter mais informações, consulte Uso de perfis de execução de trabalho, Configuração de uma execução de trabalho para usar logs do S3 e Configuração de uma execução de trabalho para usar o CloudWatch Logs.