Permissões necessárias para VM Import/Export - VM Import/Export

Permissões necessárias para VM Import/Export

O VM Import/Export exige determinadas permissões para seus usuários, grupos e funções. Além disso, é necessário um perfil de serviço para realizar determinadas operações em seu nome.

Permissões obrigatórias

Seus usuários, grupos e funções precisam das seguintes permissões na política do IAM para usar o VM Import/Export:

nota

Algumas ações exigem o uso de um bucket do Amazon Simple Storage Service (Amazon S3). Este exemplo de política não concede permissão para a criação de buckets do S3. O usuário ou o perfil que você usar precisará especificar um bucket existente ou ter permissões para criar um novo bucket com a ação s3:CreateBucket.

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

Perfil de serviço necessário

O VM Import/Export requer um perfil para executar certas operações em seu nome. É necessário criar um perfil de serviço denominado vmimport com um documento de política de relacionamento de confiança que permita que o VM Import/Export assuma o perfil, e você deve associar uma política do IAM ao perfil. Para obter mais informações, consulte Perfis do IAM no Guia do usuário do IAM.

Pré-requisito

Você deve habilitar AWS Security Token Service (AWS STS) em qualquer região em que planeja usar o VM Import/Export. Para obter mais informações, consulte Ativar e desativar o AWS STS em uma região da AWS.

Como criar a função de serviço
  1. No computador, crie um arquivo chamado trust-policy.json. Adicione a seguinte política ao arquivo:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }
  2. Use o comando create-role para criar um perfil denominado vmimport e forneça ao serviço VM Import/Export acesso a ele. Especifique o caminho completo para o local do arquivo trust-policy.json criado na etapa anterior e inclua o prefixo file:// conforme mostrado no exemplo a seguir:

    aws iam create-role --role-name vmimport --assume-role-policy-document "file://C:\import\trust-policy.json"
  3. Crie um arquivo denominado role-policy.json com a seguinte política, em que amzn-s3-demo-import-bucket é o bucket para imagens de disco importadas e amzn-s3-demo-export-bucket é o bucket para as imagens de disco exportadas:

    JSON
    { "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. (Opcional) Para importar recursos criptografados usando uma chave AWS KMS do AWS Key Management Service, adicione as seguintes permissões ao arquivo role-policy.json.

    { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*" }

    Se você usar uma chave KMS diferente da padrão fornecida pelo Amazon EBS, deverá conceder permissão de VM Import/Export para a chave KMS se habilitar a criptografia do Amazon EBS por padrão ou habilitar a criptografia em uma operação de importação. É possível especificar o nome do recurso da Amazon (ARN) da chave do KMS como o recurso em vez de *.

  5. (Opcional) Para anexar configurações de licença a uma AMI, adicione as seguintes permissões do License Manager ao arquivo role-policy.json.

    { "Effect": "Allow", "Action": [ "license-manager:GetLicenseConfiguration", "license-manager:UpdateLicenseSpecificationsForResource", "license-manager:ListLicenseSpecificationsForResource" ], "Resource": "*" }
  6. Use o seguinte comando put-role-policy para associar a política ao perfil criado acima. Especifique o caminho completo para o local do arquivo role-policy.json.

    aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document "file://C:\import\role-policy.json"
  7. Para controles de segurança adicionais, chaves de contexto, como aws:SourceAccount e aws:SourceArn podem ser adicionadas à política de confiança desse perfil recém-criado. O VM Import/Export publicará as chaves SourceAccount e SourceArn conforme especificado no exemplo abaixo para assumir esse perfil:

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