Créer et associer des rôles AWS
Pour importer une machine virtuelle (VM) dans AWS, vous devez disposer des éléments suivants :
- l'utilisation du rôle désigné,
vmimport, - autorisations spécifiques sur le compartiment S3, accordées au rôle
vmimport(par exemple, lecture seule, liste, etc.). - Affectez le rôle vmimport à
vmimportcommandpour que la commande puisse lire (en lecture seule) le compartiment et créer une tâche d'importation dans AWS.
Remarque :
Il n'y a pas de console AWS équivalente à la commande vmimport. Consultez l'onglet Ligne de commande pour VMIMPORT.
- Ouvrez une fenêtre de terminal.
- Créez le rôle d'identité IAM
vmimportrequis pour importer des images :- Créez un fichier json, qui représente la politique de confiance pour le rôle d'identité IAM
vmimport:{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport"} } }] } - Créez le rôle d'identité IAM à l'aide de la politique de confiance :
aws iam create-role --role-name vmimport --assume-role-policy-document "file://~/Downloads/trust-policy.json"
- Créez un fichier json, qui représente la politique de confiance pour le rôle d'identité IAM
- Créez une politique de rôle pour associer la nouvelle identité IAM au compartiment précédemment créé. Dans l'exemple suivant, remplacez
BUCKET_NAMEpar le nom du compartiment :{ "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":"*" } ] } -
Accordez une politique de rôle en ligne à vmimport identity, y compris divers droits pour accéder au compartiment S3 et effectuer des opérations ec2. La commande suivante ne renvoie pas de valeur en cas de réussite :
aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://~/Downloads/role-policy.json"