我正在尝试将磁盘映像导入 AWS,以启动 EC2 实例。我遵循所述指南并满足所述的所有先决条件。但是,我遇到了一个我一直在尝试(未成功)调试的错误。错误如下。An error occurred (InvalidParameter) when calling the ImportImage operation: The service role vmimport provided does not exist or does not have sufficient permissions
但是,当我检查 vmimport 角色的权限时,它具有 EC2 和 S3 的所有必要权限!我的 aws cli 用户还拥有 EC2 和 S3 的完全权限。对于这个问题,我尝试了许多不同的解决方案,包括,1. 公开 S3 存储桶,2. 添加访问策略,以便我的 AWS cli 用户有权访问存储桶。我尝试过的一切仍然返回完全相同的错误消息......我在想可能存在区域问题?我在我的 AWS cli 用户配置和 S3 存储桶区域中使用 us-east-2。还有什么我没有考虑过的吗?
PS 我正在尝试导入 OVA 1 格式的 vm 映像。
这是我的信任政策
"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": "*"
}
]
}
最后是containers.json
[
{
"Description": "My Special OVA",
"Format": "ova",
"Url": "s3://MY-IMPORT-BUCKET/VM.ova"
}
]
更新:进一步调查问题后,我发现角色 vmimport last access 是“未访问”,即从不,这意味着甚至没有尝试使用该角色!所以这个错误显然是在说它不存在(它找不到服务角色)。在最后一个命令中,该命令中没有任何内容表明将使用 vmimport,containers.json 中也没有。我认为这是允许 vmie.amazonaws.com 控制的目的。显然它没有扮演这个角色,所以我需要调查这个和 sts。