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 のアクティブ化と非アクティブ化」を参照してください。
サービスロールを作成するには
-
コンピュータに
trust-policy.json
という名前のファイルを作成します。次のポリシーをファイルに追加します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }
-
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
は、エクスポートしたディスクイメージのバケットを表します。{ "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": "*" } ] } -
(オプション) 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) を、* の代わりにリソースとして指定できます。
-
(オプション) ライセンス設定を AMI にアタッチする場合は、以下の License Manager のアクセス許可を
role-policy.json
ファイルに追加します。{ "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
キーを公開して、このロールを継承します。{ "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
:*" } } } ] }