VM Import/Export 必要許可 - VM Import/Export

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

VM Import/Export 必要許可

VM Import/Export 需要使用者、群組和角色的特定許可。此外,需要服務角色才能代表您執行特定作業。

所需的許可

您的使用者、群組和角色需要其 IAM 政策中的下列許可,才能使用 VM Import/Export:

注意

有些動作需要使用 Amazon Simple Storage Service (Amazon S3) 儲存貯體。此範例政策不會授予建立 S3 儲存貯體的許可。您使用的使用者或角色將需要指定現有的儲存貯體,或具有使用 s3:CreateBucket動作建立新儲存貯體的許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-import-bucket", "arn:aws:s3:::amzn-s3-demo-import-bucket/*", "arn:aws:s3:::amzn-s3-demo-export-bucket", "arn:aws:s3:::amzn-s3-demo-export-bucket/*" ] }, { "Effect": "Allow", "Action": [ "ec2:CancelConversionTask", "ec2:CancelExportTask", "ec2:CreateImage", "ec2:CreateInstanceExportTask", "ec2:CreateTags", "ec2:DescribeConversionTasks", "ec2:DescribeExportTasks", "ec2:DescribeExportImageTasks", "ec2:DescribeImages", "ec2:DescribeInstanceStatus", "ec2:DescribeInstances", "ec2:DescribeSnapshots", "ec2:DescribeTags", "ec2:ExportImage", "ec2:ImportInstance", "ec2:ImportVolume", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:ImportImage", "ec2:ImportSnapshot", "ec2:DescribeImportImageTasks", "ec2:DescribeImportSnapshotTasks", "ec2:CancelImportTask" ], "Resource": "*" } ] }

必要的服務角色

VM Import/Export 需要代表您執行特定操作的角色。您必須使用信任關聯政策文件建立以 vmimport 命名的服務角色,該文件允許 VM Import/Export 擔任該角色,且您必須將 IAM 政策附加到該角色中。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色

先決條件

您必須在您計劃使用 VM Import/Export 的任何區域中啟用 AWS Security Token Service (AWS STS)。如需詳細資訊,請參閱AWS STS 在 AWS 區域中啟用和停用

建立服務角色
  1. 在您的電腦上建立名為 trust-policy.json 的檔案。將下列政策新增至檔案:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }
  2. 使用 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"
  3. 使用role-policy.json下列政策建立名為 的檔案,其中 amzn-s3-demo-import-bucket 是匯入磁碟映像的儲存貯體,而 amzn-s3-demo-export-bucket 是匯出磁碟映像的儲存貯體:

    { "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-import-bucket", "arn:aws:s3:::amzn-s3-demo-import-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-export-bucket", "arn:aws:s3:::amzn-s3-demo-export-bucket/*" ] }, { "Effect": "Allow", "Action": [ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource": "*" } ] }
  4. (選用) 若要從 匯入使用 AWS KMS 金鑰加密的資源 AWS Key Management Service,請將下列許可新增至 role-policy.json 檔案。

    { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }

    如果您使用 Amazon EBS 提供的預設金鑰以外的 KMS 金鑰,如果您預設啟用 Amazon EBS 加密或在匯入作業啟用加密,則必須將 VM Import/Export 許可授與 KMS 金鑰。您可以將 KMS 金鑰的 Amazon Resource Name (ARN) 指定為資源,而非 *。

  5. (選用) 如果您想要將授權組態附加到 AMI,請將下列管理員許可新增至 role-policy.json 檔案。

    { "Effect": "Allow", "Action": [ "license-manager:GetLicenseConfiguration", "license-manager:UpdateLicenseSpecificationsForResource", "license-manager:ListLicenseSpecificationsForResource" ], "Resource": "*" }
  6. 使用以下 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"
  7. 對於其他安全控制項,可以將內容金鑰 (例如 aws:SourceAccountaws:SourceArn) 新增至此新建立角色的信任政策。VM Import/Export 將依照下列範例中指定的方式發佈 SourceAccountSourceArn 金鑰,以承擔此角色:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:Externalid": "vmimport", "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:vmie:*:111122223333:*" } } } ] }