AWS InvalidParameter при вызове операции ImportImage

У меня есть .ovaВиртуальные машины хранятся в моей корзине S3, я пытаюсь создать AMI из этих OVA. Я просматривал это видео, чтобы импортировать виртуальную машину как образ с помощью импорта/экспорта виртуальной машины в Amazon EC2.

Я создал экземпляр EC2, который буду использовать для запуска необходимых команд CLI для импорта. Я создал роль IAM и прикрепил ее к экземпляру EC2.

Пожалуйста, ознакомьтесь с информацией о роли:

Политика доверия

      {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "vmie.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

Встроенная политика доступа к S3 и EC2

      {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:CopySnapshot",
                "s3:ListAccessPointsForObjectLambda",
                "s3:GetAccessPoint",
                "s3:PutAccountPublicAccessBlock",
                "s3:ListAccessPoints",
                "ec2:RegisterImage",
                "s3:ListJobs",
                "s3:PutStorageLensConfiguration",
                "s3:ListMultiRegionAccessPoints",
                "s3:ListStorageLensConfigurations",
                "ec2:Describe*",
                "s3:GetAccountPublicAccessBlock",
                "ec2:ModifySnapshotAttribute",
                "s3:ListAllMyBuckets",
                "s3:PutAccessPointPublicAccessBlock",
                "s3:CreateJob",
                "ec2:ImportImage"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::vms"
        },
        {
            "Sid": "AllowStsDecode",
            "Effect": "Allow",
            "Action": "sts:DecodeAuthorizationMessage",
            "Resource": "*"
        }
    ]
}

Встроенная политика для расшифровки KMS

      {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "*"
        }
    ]
}

Кроме того, я приложил AWSImportExportFullAccessуправляемая политика для роли.

Я использую следующую команду для импорта виртуальной машины в AMI:

      aws ec2 import-image --description "MY_VM_Image" --disk-containers "file://configuration.json"

Вот содержание configuration.json

      [{
                "Description": "Image",
                "Format": "ova",
                "UserBucket": {
                        "S3Bucket": "vm",
                        "S3Key": "xzt.ova"
                }

        }

]

Но я сталкиваюсь со следующей ошибкой:

      An error occurred (InvalidParameter) when calling the ImportImage operation: The service role vmimport provided does not exist or does not have sufficient permissions

Я попытался взглянуть на документ по устранению неполадок . В нем говорится следующее

      This error can also occur if the user calling ImportImage has Decrypt permission but the vmimport role does not.

Итак, я также отключил шифрование по умолчанию на S3.

Все равно не повезло. Какие еще разрешения необходимы для успешного выполнения команды.

1 ответ

Я столкнулся с той же проблемой, и оказалось, что часы не синхронизированы с серверами NTP (около 6 минут). Как только время было синхронизировано, образ импорта aws ec2 заработал, как и ожидалось.

Вот ссылка о важности синхронизации времени в Kerberos:

https://tldp.org/HOWTO/Kerberos-Infrastructure-HOWTO/time-sync.html#:~:text=If%20you%20allow%20your%20clocks,errors%20and%20refuse%20to%20function.

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