Произошла ошибка (InvalidParameter) при вызове операции ImportImage: роль службы vmimport не имеет разрешений.
Я пытаюсь импортировать образ диска в AWS для запуска инстанса EC2. Я следую инструкциям, как указано, и выполняю все необходимые условия. Однако я столкнулся с ошибкой, которую я пытался (безуспешно) отладить. Ошибка заключается в следующем.
Однако, когда я проверяю разрешения роли vmimport, у нее есть все необходимые разрешения для EC2 и S3! Мой пользователь aws cli также имеет полные привилегии для EC2 и S3. Я пробовал много разных решений этой проблемы, в том числе: 1. Сделать корзину S3 общедоступной, 2. Добавление политики доступа, чтобы у моего пользователя AWS cli были разрешения на доступ к корзине. Все, что я пробовал, по-прежнему возвращает то же самое сообщение об ошибке ... Я думаю, может быть проблема с регионом? Я использую us-east-2 в своей пользовательской конфигурации AWS cli и в области сегментов S3. Есть что-то еще, что я не рассмотрел?
PS Я пытаюсь импортировать образ vm формата OVA 1.
Вот моя политика доверия
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals":{
"sts:Externaloid": "vmimport"
}
}
}
]
}
и моя политика ролей
"Version":"2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::MY-IMPORT-BUCKET",
"arn:aws:s3:::MY-IMPORT-BUCKET/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:GetBucketAcl"
],
"Resource": [
"arn:aws:s3:::MY-EXPORT-BUCKET",
"arn:aws:s3:::MY-EXPORT-BUCKET/*"
]
},
{
"Effect": "Allow",
"Action": [
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"
],
"Resource": "*"
}
]
}
И, наконец, container.json
[
{
"Description": "My Special OVA",
"Format": "ova",
"Url": "s3://MY-IMPORT-BUCKET/VM.ova"
}
]
2 ответа
У меня был точно такой же сценарий, вам нужно создать роль vmimport, как описано здесь (документы AWS):https://docs.aws.amazon.com/vm-import/latest/userguide/required-permissions.html
Проблема в вашем (моем) файле Trust Policy.json. Если вы заметили , что условия для того , чтобы взять на себя роль, в том , что внешняя о идентификатор должен быть равен vmimport. К проверяемому атрибуту добавлен o , он всегда будет ложным, и vmie никогда не сможет взять на себя эту роль. Удалите o из политики доверия и попробуйте еще раз, и ваша политика заработает.