VM Import/Export 所需的权限
VM Import/Export 需要您的用户、群组和角色拥有一定的权限。此外,还需要服务角色才能代表您执行某些操作。
所需的权限
您的用户、群组和角色需要在其 IAM policy 中拥有以下权限才能使用 VM Import/Export:
注意
有些操作需要使用 Amazon Simple Storage Service(Amazon S3)存储桶。此示例策略不授予创建 S3 存储桶的权限。您使用的用户或角色需要指定一个现有存储桶,或者需要有权使用 s3:CreateBucket 操作创建一个新的存储桶。
所需的服务角色
VM Import/Export 需要一个角色代表您执行某些操作。您必须创建名为 vmimport 的服务角色,并附带可允许 VM Import/Export 担任相关角色的信任关系策略文档,您还必须将 IAM policy 附加到该角色。有关更多信息,请参阅《IAM 用户指南》中的 IAM 角色。
先决条件
您必须在您计划使用 VM Import/Export 的任何区域中启用 AWS Security Token Service (AWS STS)。有关更多信息,请参阅在 AWS 区域中激活和停用 AWS STS。
若要创建服务角色
-
在您的计算机上创建一个名为
trust-policy.json的文件。将以下策略添加到该文件中: -
使用 create-role 命令创建名为
vmimport的角色,并向 VM Import/Export 提供对该角色的访问权。确保您已指定在上一步中创建的trust-policy.json文件的位置的完整路径,并包含file://前缀,如下例所示:aws iam create-role --role-name vmimport --assume-role-policy-document "file://C:\import\trust-policy.json" -
创建名为
role-policy.json的文件并附上以下策略,其中,amzn-s3-demo-import-bucket为导入磁盘映像的存储桶,amzn-s3-demo-export-bucket为导出磁盘映像的存储桶: -
(可选)如果您需要从 AWS Key Management Service 导入使用AWS KMS密钥加密的资源,请将以下权限添加到
role-policy.json文件中。{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }如果您使用 Amazon EBS 提供的默认密钥以外的 KMS 密钥,则如果您默认启用 Amazon EBS 加密或在导入操作中启用加密,则必须向 KMS 密钥授予 VM Import/Export 权限。您可以将 KMS 密钥的 Amazon 资源名称(ARN)指定为资源,而不是 *。
-
(可选)如果您想将许可证配置附加到 AMI,请向
role-policy.json文件添加以下 License Manager 权限。{ "Effect": "Allow", "Action": [ "license-manager:GetLicenseConfiguration", "license-manager:UpdateLicenseSpecificationsForResource", "license-manager:ListLicenseSpecificationsForResource" ], "Resource": "*" } -
使用下面的 put-role-policy 命令将策略挂载到之前创建的角色。请务必指定
role-policy.json文件位置的完整路径。aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\import\role-policy.json" -
要进行其他安全控制,可以将上下文密钥(例如
aws:SourceAccount和aws:SourceArn)添加到此新创建角色的信任策略中。VM Import/Export 将按照以下示例发布SourceAccount和SourceArn密钥来代入此角色: