Я пытаюсь создать кластер eks через aws cli с помощью следующих команд:
aws eks create-cluster --name ekCsluster --role-arn arn:aws:iam::111111111111:role/eksServiceRole --resources-vpc-config subnetIds=subnet-1,subnet-2,subnet-3,subnet-4,subnet-5,subnet-6,securityGroupIds=sg-1
И получите следующую ошибку:
An error occurred (AccessDeniedException) when calling the CreateCluster operation: User: arn:aws:iam::111111111111:user/userName is not authorized to perform: iam:PassRole on resource: arn:aws:iam::111111111111:role/eksServiceRole
Однако я создал политику разрешений, AssumeEksServiceRole
и прикрепил его непосредственно к пользователю, arn:aws:iam::111111111111:user/userName
:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:PassRole"
],
"Resource": "arn:aws:iam::111111111111:role/eksServiceRole"
}
]
}
в eksServiceRole
роль, я определил доверительные отношения следующим образом:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111111111111:user/userName"
},
"Action": "sts:AssumeRole"
}
]
}
Что мне не хватает? Как я могу отладить это сообщение об ошибке? Спасибо за любую помощь.
В вашем случае вы можете просто использовать:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:PassRole"
],
"Resource": "arn:aws:iam::111111111111:role/eksServiceRole"
}
]
}
Я использую это:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CustomEditor",
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:PassRole"
],
"Resource": "*"
}
]
}
Ваша запись в eksServiceRole
роль не нужна.
Я бы попытался удалить пользователя из доверительных отношений (что в любом случае не нужно). Сервисы AWS не работают хорошо, когда в доверительных отношениях используются одновременно учетные записи и сервисы, например, если вы попытаетесь сделать это с помощью CodeBuild, он будет жаловаться, что ему не принадлежит принципал.