Роли / разрешения для создания кластера EMR с помощью aws cli

Я пытаюсь создать кластер с помощью команды aws emr. Для начала, у меня нет роли администратора, чтобы делать большую часть работы.

aws emr create-cluster --release-label emr-4.2.0  --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=2,InstanceType=m3.xlarge --service-role MY_ROLE--ec2-attributes KeyName=MY_KEY_PAIR,SubnetId=subnet-xxxxxxxx,InstanceProfile=MY_ROLE

Я пытаюсь запустить эту команду на экземпляре EC2. Я сразу получаю сообщение об успешном выполнении с отображаемым идентификатором кластера. Однако машина завершает работу с сообщением об ошибке недопустимой роли.

Если я попытаюсь увидеть состояние кластера в консоли AWS, я увижу так много сообщений об ошибках разрешений.

Есть ли набор разрешений, требуемых ролью / политиками, которые обеспечат создание кластера без каких-либо ошибок?

Я не могу использовать --use-default-role, так как у меня нет разрешения на создание роли.


person Arjun K R    schedule 28.01.2016    source источник


Ответы (1)


Я могу дать вам EMR_DefaultRole, который я использую для создания emr с:

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Resource": "*",
        "Action": [
            "ec2:AuthorizeSecurityGroupEgress",
            "ec2:AuthorizeSecurityGroupIngress",
            "ec2:CancelSpotInstanceRequests",
            "ec2:CreateNetworkInterface",
            "ec2:CreateSecurityGroup",
            "ec2:CreateTags",
            "ec2:DeleteNetworkInterface",
            "ec2:DeleteSecurityGroup",
            "ec2:DeleteTags",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeAccountAttributes",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeInstanceStatus",
            "ec2:DescribeInstances",
            "ec2:DescribeKeyPairs",
            "ec2:DescribeNetworkAcls",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribePrefixLists",
            "ec2:DescribeRouteTables",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSpotInstanceRequests",
            "ec2:DescribeSpotPriceHistory",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcAttribute",
            "ec2:DescribeVpcEndpoints",
            "ec2:DescribeVpcEndpointServices",
            "ec2:DescribeVpcs",
            "ec2:DetachNetworkInterface",
            "ec2:ModifyImageAttribute",
            "ec2:ModifyInstanceAttribute",
            "ec2:RequestSpotInstances",
            "ec2:RevokeSecurityGroupEgress",
            "ec2:RunInstances",
            "ec2:TerminateInstances",
            "iam:GetRole",
            "iam:GetRolePolicy",
            "iam:ListInstanceProfiles",
            "iam:ListRolePolicies",
            "iam:PassRole",
            "s3:CreateBucket",
            "s3:Get*",
            "s3:List*",
            "sdb:BatchPutAttributes",
            "sdb:Select",
            "sqs:CreateQueue",
            "sqs:Delete*",
            "sqs:GetQueue*",
            "sqs:PurgeQueue",
            "sqs:ReceiveMessage"
        ]
    }]
}

А также роль профиля EC2 по умолчанию EMR_EC2_DefaultRole:

{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Resource": "*",
        "Action": [
            "cloudwatch:*",
            "dynamodb:*",
            "ec2:Describe*",
            "elasticmapreduce:Describe*",
            "elasticmapreduce:ListBootstrapActions",
            "elasticmapreduce:ListClusters",
            "elasticmapreduce:ListInstanceGroups",
            "elasticmapreduce:ListInstances",
            "elasticmapreduce:ListSteps",
            "kinesis:CreateStream",
            "kinesis:DeleteStream",
            "kinesis:DescribeStream",
            "kinesis:GetRecords",
            "kinesis:GetShardIterator",
            "kinesis:MergeShards",
            "kinesis:PutRecord",
            "kinesis:SplitShard",
            "rds:Describe*",
            "s3:*",
            "sdb:*",
            "sns:*",
            "sqs:*"
        ]
    }]
}
person Avihoo Mamka    schedule 28.01.2016
comment
Я вижу, что это то, что мы получаем по умолчанию, если используем --use-defualt-role ?? Некоторые из этих разрешений могут не понадобиться, верно ??? или все они точно нужны ??? - person Arjun K R; 28.01.2016
comment
Это роль по умолчанию, которую вы получаете при использовании --use-default-role. Я не уверен, что все эти разрешения необходимы, это зависит от того, как вы настроили свой EMR. Например: использовать CloudWatch для мониторинга? или не? так что это в основном зависит от вас. - person Avihoo Mamka; 28.01.2016
comment
Спасибо. Разберусь, какие все варианты мне действительно нужны. - person Arjun K R; 28.01.2016