代码之家  ›  专栏  ›  技术社区  ›  Sharp Dev

调用ImportImage操作时出错(InvalidParameter):服务角色vmimport没有权限

  •  0
  • Sharp Dev  · 技术社区  · 4 年前

    我正在尝试将磁盘映像导入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的完全权限。我尝试了很多不同的解决方案,包括:。将S3桶公开,2。添加访问策略,以便我的AWS cli用户有权访问存储桶。我尝试过的每件事都会返回完全相同的错误信息。。。我想可能是区域问题吧?我在AWS cli用户配置和S3区域中使用us-east-2。还有什么我没有考虑的吗?

    另外,我正在尝试导入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": "*"
          }
       ]
    }
    

    最后是容器。json

    [
      {
        "Description": "My Special OVA",
        "Format": "ova",
        "Url": "s3://MY-IMPORT-BUCKET/VM.ova"
      }
    ]
    

    更新: 在进一步调查该问题后,我发现vmimport last access角色“未被访问”,即从不,这意味着该角色甚至没有被尝试使用!因此,这个错误明确表示它不存在(它找不到服务角色)。在最后一个命令中,命令中没有任何内容表明要使用vmimport,容器中也没有。json。我以为这就是允许vmie的目的。亚马逊。com来控制局面。很明显,它并没有承担这个角色,所以我需要调查这一点和sts。

    0 回复  |  直到 4 年前
        1
  •  0
  •   Sharp Dev    4 年前

    问题在于你(我)的信任政策。json文件。如果你注意到它担任这个角色的条件,那是外部因素吗 o id必须等于vmimport。还有一个额外的问题 o 在它正在检查的属性中,这将始终为false,因此vmie永远无法承担该角色。从信任策略中删除o,然后重试,您的策略就会生效。

    推荐文章