

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# VM Import/Export に必要なアクセス許可
<a name="required-permissions"></a>

VM Import/Export には、ユーザ、グループ、ロールに特定のアクセス許可が必要です。さらに、ユーザーに代わって特定のオペレーションを実行するサービスロールが必要です。

**Topics**
+ [必要なアクセス許可](#iam-permissions-image)
+ [必要なサービスロール](#vmimport-role)

## 必要なアクセス許可
<a name="iam-permissions-image"></a>

VM Import/Export を使用するには、ユーザー、グループ、ロールの IAM ポリシーに次のアクセス許可が必要です。

**重要**  
VM Import/Export は、 `RoleName`パラメータで指定されたロール、または何も指定されていない場合はデフォルトの`vmimport`ロールに対する`iam:PassRole`アクセス許可があることを確認します。使用するロール ARN `iam:PassRole`に対して IAM ポリシーが を付与していることを確認します。詳細については、*IAM ユーザーガイド*[の「 AWS サービスにロールを渡すアクセス許可をユーザーに付与](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)する」を参照してください。

**注記**  
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": "*"
    },
    {
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::{{111122223333}}:role/{{vmimport}}"
    }
  ]
}
```

------

## 必要なサービスロール
<a name="vmimport-role"></a>

VM Import/Export には、ユーザーに代わって特定のオペレーションを実行するロールが必要です。信頼関係ポリシーを使用して、ロールを引き受けることを VM Import/Export に許可する `vmimport` という名前のサービスロールを作成し、IAM ポリシーをそのロールにアタッチする必要があります。詳細については、*IAM ユーザーガイド*の [IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html)を参照してください。

**前提条件**  
VM Import/Export を使用する予定のリージョンでは、 AWS Security Token Service (AWS STS) を有効にする必要があります。詳細については、[「 AWS リージョン AWS STS でのアクティブ化と非アクティブ化](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 暗号化をデフォルトで有効化するか、インポート操作で暗号化を有効にする場合は、KMS キーに対する仮想マシンの VM Import/Export のアクセス許可を付与する必要があります。KMS キーの Amazon リソースネーム (ARN) を、\* の代わりにリソースとして指定できます。

1. (オプション) ライセンス設定を AMI にアタッチする場合は、以下の License Manager のアクセス許可を `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}}:*"
                   }
               }
           }
       ]
   }
   ```

------