Ниже приведена роль, принятая экземпляром EC2:
"AScaleLaunchConfig": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Properties":{
…..
"IamInstanceProfile": { "Ref": "EC2InstProfl” },
…..
}
}
"EC2InstProfl": {
"Type": "AWS::IAM::InstanceProfile",
"Properties":{
"Path": "/",
"Roles": [ { "Ref": "EC2InstRole" } ]
}
}
"EC2InstRole": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": [ "ec2.amazonaws.com" ] },
"Action": [ "sts:AssumeRole" ]
}
]
},
"Path": "/",
"ManagedPolicyArns": [ "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role" ],
}
}
Ниже SomeTaskRole
назначена задача (контейнер docker), запущенная в этом экземпляре EC2:
"EcsTaskDef": {
"Type": "AWS::ECS::TaskDefinition",
"Properties":{
"NetworkMode": "host",
"TaskRoleArn": "arn:aws:iam::xxxxxxxxx:role/SomeTaskRole",
"ContainerDefinitions": [
{
"Name": “someapp",
"Image": “someaccout/someimage:test",
}
]
}
}
где SomeTaskRole
:
{
"Version": "2012-10-17",
"Statement": [
{
"Description": “Allow access to all EC2/ELB/cloudformation/s3 and aim passrole",
…..
"Resource": "*"
},
{
"Description": “Assume iam User role“,
…..
"Effect": "Allow"
},
{
"Description": “Assume xyz role across all accouts“,
…..
"Effect": "Allow"
},
{
"Description": “Allow * access to all resource across n regions",
….
},
{
"Description": “Deny delete permission on network related resources like Subnets/Route/VPC/VPN/IGW etc…*,
….
},
{
"Description": “There are many such rules",
….
}
]
}
Если для экземпляра EC2 назначено EC2InstRole
, то стек Cloudformation запускается успешно.
Если SomeTaskRole
присваивается EcsTaskDef
, а EC2InstRole
присваивается экземпляру EC2, после чего запуск стека Cloudformation идет в течение нескольких часов и выдает ошибку. Еще предстоит найти точную ошибку. Если я удаляю "TaskRoleArn": "arn:aws:iam::xxxxxxxxx:role/SomeTaskRole"
, то стек CloudFormation запускается успешно.
1)
Позволяет ли служба AWS IAM обоим?
назначать роль для задачи ECS
и
, чтобы назначить роль для экземпляра EC2?
2)
Если да, накладываются ли правила, указанные в роли EC2, на (и переопределяют) правила задан в роли задания ECS?