AWSロールを作成して関連付ける
仮想マシン(VM)をAWSにインポートする場合、次のものが必要となります:
- 指定されたロール
vmimportの使用、 vmimportロールに付与されたS3バケットで固有のアクセス許可、(例:参照、リストなど)。- コマンドがバケットを参照、AWS内にインポートジョブを作成できるように、vmimportロールを
vmimportcommandに割り当てます。
注:
vmimportコマンドに相当するAWSコンソールはありません。vmimportのコマンドライン(Command Line)タブを確認します。
- ターミナルウィンドウを開きます。
- イメージをインポートする際に、必要な
vmimportIAM IDロールを作成します:-
vmimportIAM IDロールの信頼ポリシーを示す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"
-
- 予め作成されたバケットと新規IAM IDを関連付けるロールポリシーを作成します。次の例では、
BUCKET_NAMEをバケットの名前と置換します:{ "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"