Итак, я использую ec2.py скрипт (предоставленный Ansible) для создания динамических инвентаризаций. Я создал следующую политику IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:Region": "ca-central-1"
}
}
}
]
}
Потому что я хочу, чтобы контроллер Ansible собирал данные только с экземпляров EC2, поступающих из ca-central-1 (то есть из Канады). Я не хочу, чтобы это мешало другим регионам, поскольку они являются производственной / промежуточной средой, и я не хочу, чтобы там что-то испортилось. Проблема в том, что я получаю
ОШИБКА: «Ошибка при подключении к серверной части AWS.
У вас нет прав на выполнение этой операции. ", При этом: получение экземпляров EC2
Это работает, если я использую эту политику:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
}
]
}
Но эта политика предоставляет разрешения для всего, даже в производственной среде. Я считаю, что даже при использовании ролей это немного излишне. Я что-то не рассматриваю?
Что ж, похоже, проблема в том, что ini-файл настроен на запрос всех регионов, поэтому мне просто пришлось изменить ini-файл на:
regions = ca-central-1
и прокомментируйте
#regions_exclude = us-gov-west-1, cn-north-1