Произошла ошибка (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 из политики доверия и попробуйте еще раз, и ваша политика заработает.

Другие вопросы по тегам