Q1: Я пытаюсь создать пользователя в консоли IAM AWS, у которого есть ограниченные разрешения только для запуска новых экземпляров с использованием метода Knife ec2. В настоящее время работает только полный доступ с политикой «Полный доступ Amazon EC2». Создание пользователя и предоставление экземпляров запуска / остановки и описания изображений не работает.
Q2: Как я могу отладить это
ERROR: Fog::Compute::AWS::Error: UnauthorizedOperation => You are not authorized to perform this operation.
и проследите, какое именно разрешение мне нужно. (-V -V -V не работает)
В1: Мне пришлось отлаживать гем Knife-ec2, чтобы узнать минимальные разрешения IAM, необходимые для запуска экземпляра EC2. Вот минимальная политика:
{
"Statement": [
{
"Sid": "Stmt123",
"Action": [
"ec2:RunInstances",
"ec2:DescribeInstances",
"ec2:DescribeKeyPairs",
"ec2:DescribeImages",
"ec2:CreateTags",
"ec2:DescribeTags"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
Обратите внимание, что Сид должен быть уникальным.
Q2: Мои знания Ruby весьма ограничены, поэтому, возможно, нет удобного способа отладки. Лично я использовал binding.pry в качестве отладчика. Пожалуйста, обратитесь к следующему статья для получения дополнительной информации.
Вам нужно будет разрешить RunInstances.
Мне пришлось разрешить доступ в IAM пользователю, для которого мы используем «Идентификатор ключа доступа» и «Секретный ключ доступа».
Я придумал следующую политику:
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:RunInstances",
"ec2:CreateTags",
"ec2:DescribeInstances",
"ec2:DescribeImages",
"ec2:DescribeKeyPairs",
"ec2:DescribeVpcs",
"ec2:DescribeSubnets",
"ec2:DescribeTags",
"ec2:DescribeSecurityGroups",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeAddresses"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": <You should list the roles you want to be able to create here
or use '*' but that is dangerous because if it allows for privilege escalation>
}
]
}
Я думаю, это может зависеть от того, какие функции / параметры вы используете для создания ножа ec2. Я попробовал политику из другого ответа (с iam: PassRole и некоторыми дополнительными политиками), но получил удар именно по ec2: DescribeAddress.
Вы можете понять, почему ваша роль что-то не сделала, проверив мои журналы ButtTrail.