VM Import/Export に必要なアクセス許可 - VM Import/Export

VM Import/Export に必要なアクセス許可

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

必要なアクセス許可

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

注記

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 には、ユーザーに代わって特定のオペレーションを実行するロールが必要です。信頼関係ポリシーを使用して、ロールを引き受けることを VM Import/Export に許可する vmimport という名前のサービスロールを作成し、IAM ポリシーをそのロールにアタッチする必要があります。詳細については、IAM ユーザーガイドIAM ロールを参照してください。

前提条件

VM Import/Export を使用する予定のリージョンでは、AWS Security Token Service (AWS STS) を有効にする必要があります。詳細については、「AWS リージョンでの AWS STS のアクティブ化と非アクティブ化」を参照してください。

サービスロールを作成するには
  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 暗号化をデフォルトで有効化するか、インポート操作で暗号化を有効にする場合は、KMS キーに対する仮想マシンの VM Import/Export のアクセス許可を付与する必要があります。KMS キーの Amazon リソースネーム (ARN) を、* の代わりにリソースとして指定できます。

  5. (オプション) ライセンス設定を AMI にアタッチする場合は、以下の License Manager のアクセス許可を 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 は、次の例に示すように、SourceAccount および SourceArn キーを公開して、このロールを継承します。

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