AWSロールを作成して関連付ける
仮想マシン(VM)をAWSにインポートする場合、次のものが必要となります:
- 指定されたロールvmimportの使用、
- vmimportロールに付与されたS3バケットで固有のアクセス許可、(例:参照、リストなど)。
- コマンドがバケットを参照、AWS内にインポートジョブを作成できるように、vmimportロールをvmimport コマンドに割り当てます。
vmimportコマンドに相当するAWSコンソールはありません。vmimportの[Command Line(コマンドライン)]タブを確認します。
- ターミナルウィンドウを開きます。
- イメージをインポートする際に、必要なvmimport IAM IDロールを作成します:
-
vmimport IAM IDロールの信頼ポリシーを示すJSONファイルを作成します:
コピー
trust-policy.json
{
"Version": "2012-10-17",
"Statement":[ {
"Effect": "Allow",
"Principal": { "Service": "vmie.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals":{ "sts:Externalid": "vmimport"}
}
}]
} - 信頼ポリシーを使って IAM IDロールを作成します。コピー
aws iam create-role --role-name vmimport --assume-role-policy-document "file://~/Downloads/trust-policy.json"
-
vmimport IAM IDロールの信頼ポリシーを示すJSONファイルを作成します:
- 予め作成されたバケットと新規IAM IDを関連付けるロールポリシーを作成します。次の例では、BUCKET_NAMEをバケットの名前と置換します:コピーrole-policy.json
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":[
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket"
],
"Resource":[
"arn:aws:s3:::BUCKET_NAME",
"arn:aws:s3:::BUCKET_NAME/*"
]
}, {
"Effect":"Allow",
"Action":[
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:GetBucketAcl"
],
"Resource":[
"arn:aws:s3:::BUCKET-NAME",
"arn:aws:s3:::BUCKET-NAME/*"
]
}, {
"Effect":"Allow",
"Action":[
"ec2:ModifySnapshotAttribute",
"ec2:CopySnapshot",
"ec2:RegisterImage",
"ec2:Describe*"],
"Resource":"*"
}
]
} -
S3バケットにアクセスし、ec2オペレーションを実行するためのさまざまな権限が含まれるvmimportIDにインラインロールポリシーを付与します。次のコマンドは、成功の値を返しません:
コピーaws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://~/Downloads/role-policy.json"
関連項目
VMインポートコマンドの実行に必要なロールに関する詳細については、「IAMに必要な権限」をご参照ください。