The Auto Scaling role for Amazon EMR performs a similar function as the service role, but allows additional actions for dynamically scaling environments.
-
The default role name is
EMR_AutoScaling_DefaultRole
. -
The default managed policy attached to
EMR_AutoScaling_DefaultRole
isAmazonElasticMapReduceforAutoScalingRole
.
The contents of version 1 of AmazonElasticMapReduceforAutoScalingRole
are shown below.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudwatch:DescribeAlarms",
"elasticmapreduce:ListInstanceGroups",
"elasticmapreduce:ModifyInstanceGroups"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
Your service role should use the following trust policy.
Important
The following trust policy includes the aws:SourceArn
and aws:SourceAccount
global condition keys, which
limit the permissions that you give Amazon EMR to particular resources in your
account. Using them can protect you against the confused deputy
problem.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "application-autoscaling.amazonaws.com"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<account-id>
"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:application-autoscaling:<region>
:<account-id>
:scalable-target/*"
}
}
}
]
}