

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

# VM Import/Export 必要許可
<a name="required-permissions"></a>

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

**Topics**
+ [所需的許可](#iam-permissions-image)
+ [必要的服務角色](#vmimport-role)

## 所需的許可
<a name="iam-permissions-image"></a>

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

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

------
#### [ JSON ]

****  

```
{
  "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": "*"
    }
  ]
}
```

------

## 必要的服務角色
<a name="vmimport-role"></a>

VM Import/Export 需要代表您執行特定操作的角色。您必須使用信任關聯政策文件建立以 `vmimport` 命名的服務角色，該文件允許 VM Import/Export 擔任該角色，且您必須將 IAM 政策附加到該角色中。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)。

**先決條件**  
您必須在您計劃使用 VM Import/Export 的任何區域中啟用 AWS Security Token Service (AWS STS)。如需詳細資訊，請參閱[在 AWS STS 區域中啟用和停用 AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate)。

**建立服務角色**

1. 在您的電腦上建立名為 `trust-policy.json` 的檔案。將下列政策新增至檔案：

------
#### [ JSON ]

****  

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

------

1. 使用 [https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) 命令，建立一個以 `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"
   ```

1. `role-policy.json` 使用下列政策建立名為 的檔案，其中 *amzn-s3-demo-import-bucket* 是匯入磁碟映像的儲存貯體，而 *amzn-s3-demo-export-bucket* 是匯出磁碟映像的儲存貯體：

------
#### [ JSON ]

****  

   ```
   {
      "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": "*"
         }
      ]
   }
   ```

------

1. （選用） 若要從 匯入使用 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) 指定為資源，而非 \$1。

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

   ```
   {
     "Effect": "Allow",
     "Action": [
       "license-manager:GetLicenseConfiguration",
       "license-manager:UpdateLicenseSpecificationsForResource",
       "license-manager:ListLicenseSpecificationsForResource"
     ],
     "Resource": "*"
   }
   ```

1. 使用以下 [https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html) 命令，將政策附加到上述建立的角色中。確認您已指定 `role-policy.json` 檔案的完整位置路徑。

   ```
   aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\import\role-policy.json"
   ```

1. 對於其他安全控制項，可以將內容金鑰 (例如 `aws:SourceAccount` 和 `aws:SourceArn`) 新增至此新建立角色的信任政策。VM Import/Export 將依照下列範例中指定的方式發佈 `SourceAccount` 和 `SourceArn` 金鑰，以承擔此角色：

------
#### [ JSON ]

****  

   ```
   {
       "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:*"
                   }
               }
           }
       ]
   }
   ```

------