As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar e atualizar as configurações de distribuição da AMI
Esta seção aborda a criação e a atualização de configurações de distribuição para uma AMI do Image Builder.
Conteúdo
Pré-requisitos de distribuição de AMI
Algumas configurações de distribuição têm pré-requisitos, como segue:
Pré-requisitos para parâmetros de saída SSM
Antes de criar uma nova configuração de distribuição de AMI que defina um AWS Systems Manager parâmetro de armazenamento de parâmetros (parâmetro SSM), verifique se você atendeu aos seguintes pré-requisitos.
- Perfil de execução
-
Ao criar um pipeline ou usar o comando create-image no AWS CLI, você só pode especificar uma função de execução do Image Builder. Se você tiver definido uma função de execução de fluxo de trabalho do Image Builder, adicionaria qualquer permissão de recurso adicional a essa função. Caso contrário, você criaria uma nova função personalizada que inclui as permissões necessárias.
Importante
Recomendamos que você não passe a função AWSServiceRoleForImageBuilder vinculada ao serviço como sua função de execução. Em vez disso, crie uma função personalizada do IAM e anexe a política EC2ImageBuilderExecutionPolicy AWS gerenciada. Essa política concede as mesmas permissões que o Image Builder precisa para chamar Serviços da AWS em seu nome. O uso de uma função personalizada oferece controle total sobre as permissões que o Image Builder usa. Ele também mantém suas políticas de controle de serviços (SCPs) e políticas de controle de recursos (RCPs) em vigor nas operações que o Image Builder executa em seu nome.
-
Para armazenar a ID da AMI de saída em um parâmetro SSM durante a distribuição, você deve especificar a
ssm:PutParameteração em sua função de execução do Image Builder, com o parâmetro listado como um recurso. -
Ao definir o tipo de dados do parâmetro para sinalizar
AWS EC2 Imageao Systems Manager que valide o valor do parâmetro como uma ID de AMI, você também deve adicionar aec2:DescribeImagesação.
-
- Opt-in Região
-
Você deve ativar uma região opcional (região que está desativada por padrão) na conta de origem. Esse requisito se aplica quando sua configuração de distribuição tem como alvo essa região
ssmParameterConfigurations, independentemente de você usar a função vinculada ao serviço Image Builder ou uma função de execução personalizada.nota
A cópia da AMI para uma região opcional pode ser bem-sucedida mesmo quando a conta de origem não habilitou a região. Somente a gravação do parâmetro de saída SSM falha.
Sem esse pré-requisito, a compilação falha com um erro semelhante ao seguinte:
In region 'af-south-1' - 'STS Client Error: The provided execution role does not exist or does not have sufficient permissions.'Para resolver esse problema, execute um dos seguintes procedimentos:
-
Ative as regiões opt-in na conta de origem. Para obter instruções sobre como ativar uma região, consulte Habilitar ou desabilitar AWS regiões em sua AWS conta no Guia de referência de gerenciamento de contas.
-
Omitir
ssmParameterConfigurationspara as regiões opcionais. Em vez disso, use uma EventBridge regra da Amazon para reagir ao evento de mudança de estado de imagem do EC2 Image Builder e escreva você mesmo os parâmetros.
-
Pré-requisitos para o EC2 Fast Launch
Antes de criar uma nova configuração de distribuição para EC2 Fast Launch para AMIs do Windows, verifique se você atendeu aos seguintes pré-requisitos.
-
Se você fornecer um modelo de inicialização personalizado ao configurar o EC2 Fast Launch, o serviço usará a VPC e outras configurações que você definiu no modelo de inicialização. Para obter mais informações, consulte Usar um modelo de lançamento ao configurar o EC2 Fast Launch.
-
Se você não usar um modelo de lançamento personalizado para definir suas configurações, deverá anexar a EC2FastLaunchFullAccess política à função do IAM que o Image Builder usa para criar sua imagem. Ao criar um pipeline ou usar o comando create-image no AWS CLI, você só pode especificar uma função de execução do Image Builder. Se você tiver definido uma função de execução de fluxo de trabalho do Image Builder, adicionaria qualquer permissão de recurso adicional a essa função. Caso contrário, você criaria uma nova função personalizada que inclui as permissões necessárias.
Esse recurso exige permissões adicionais além das da política de execução básica, portanto, você deve usar uma função personalizada. Recomendamos que você crie uma função personalizada com a política EC2ImageBuilderExecutionPolicy AWS gerenciada anexada e, em seguida, adicione a EC2FastLaunchFullAccess política a essa função.
Então, quando o Image Builder copia sua imagem, o EC2 Fast Launch cria automaticamente uma CloudFormation pilha com os seguintes recursos em seu. Conta da AWS
-
Uma nuvem privada virtual (VPC).
-
Sub-redes privadas em várias zonas de disponibilidade
-
Um modelo de inicialização configurado com o Instance Metadata Service versão 2 (IMDSv2)
-
Um grupo de segurança sem regras de entrada e saída
-
nota
O Image Builder não permite a distribuição entre contas para AMIs com o EC2 Fast Launch pré-habilitado. O EC2 Fast Launch deve ser habilitado na conta de destino.
Crie uma configuração de distribuição de AMI
As configurações de distribuição incluem o nome da AMI de saída, configurações específicas da região para criptografia, permissões de lançamento e Contas da AWS organizações e unidades organizacionais (OUs) que podem iniciar a AMI de saída e configurações de licença.
Uma configuração de distribuição permite que você especifique o nome e a descrição da sua AMI de saída, autorize outros Contas da AWS a iniciarem a AMI, copie a AMI para outras contas e replique a AMI para outras AWS regiões. Também permite exportar a AMI para o Amazon Simple Storage Service (Amazon S3) ou configurar o EC2 Fast Launch para AMIs de saída do Windows. Para tornar uma AMI pública, defina as contas autorizadas com permissão de execução como all. Consulte os exemplos para tornar uma AMI pública em ModifyImageAttribute do EC2.
Atualizar uma configuração de distribuição de AMI
Você pode alterar sua configuração de distribuição de AMI. No entanto, as alterações feitas não se aplicam a nenhum recurso que o Image Builder já tenha distribuído. Por exemplo, se você distribuiu uma AMI para uma região que posteriormente removeu da sua distribuição, a AMI que já foi distribuída permanece nessa região até que você a remova manualmente.
Exemplo: habilitar o EC2 Fast Launch com um modelo de lançamento para AMIs de saída
O exemplo a seguir mostra como usar o create-distribution-configuration
Para definir as configurações do EC2 Fast Launch sem um modelo de lançamento, verifique se você atendeu a todos os requisitos Pré-requisitos do EC2 Fast Launch antes de criar sua configuração de distribuição.
-
Criar um arquivo JSON de entrada da CLI
Use uma ferramenta de edição de arquivos para criar um arquivo JSON com as chaves como mostrado no exemplo a seguir, além de valores válidos para seu ambiente.
Este exemplo executa instâncias para todos os seus recursos de destino simultaneamente, porque o número máximo de inicializações paralelas é maior que a contagem de recursos de destino. Esse arquivo é nomeado
ami-dist-config-win-fast-launch.jsonno exemplo de comando mostrado na próxima etapa.{ "name": "WinFastLaunchDistribution", "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI EC2 Fast Launch settings.", "amiTags": { "KeyName": "Some Value" } }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 6, "launchTemplate": { "launchTemplateId": "lt-0ab1234c56d789012", "launchTemplateVersion": "1" } }], "launchTemplateConfigurations": [{ "launchTemplateId": "lt-0ab1234c56d789012", "setDefaultVersion": true }] }] }nota
Você pode especificar o
launchTemplateNameem vez dolaunchTemplateIdna seçãolaunchTemplate, mas não pode especificar o nome e o ID. -
Execute o seguinte comando, usando o arquivo que você criou como entrada.
aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-fast-launch.jsonnota
-
É necessário incluir a notação
file://no início do caminho do arquivo JSON. -
O caminho para o arquivo JSON deve seguir a convenção apropriada para o sistema operacional de base no qual você está executando o comando. Por exemplo, o Windows usa a barra invertida (\) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).
Para obter mais informações detalhadas, consulte create-distribution-configuration
na Referência de comandos da AWS CLI . -
Exemplo: Crie configurações de distribuição para discos de VM de saída a partir do AWS CLI
O exemplo a seguir mostra como usar o comando create-distribution-configuration para criar configurações de distribuição que exportarão discos de imagem da VM para o Amazon S3 a cada compilação de imagem.
-
Criar um arquivo JSON de entrada da CLI
Você pode simplificar o comando create-distribution-configuration que você usa na AWS CLI. Para fazer isso, crie um arquivo JSON que contenha toda a configuração de exportação que você deseja passar para o comando.
nota
A convenção de nomenclatura para os valores de dados no arquivo JSON segue o padrão especificado para os parâmetros de solicitação de operação da API Image Builder. Para revisar os parâmetros da solicitação de operação da API, consulte o CreateDistributionConfiguration comando na Referência da API do EC2 Image Builder.
Para fornecer os valores dos dados como parâmetros da linha de comando, consulte os nomes dos parâmetros especificados na Referência de comando do AWS CLI para o comando create-distribution-configuration como opções.
Aqui está um resumo dos parâmetros que especificamos no objeto JSON
s3ExportConfigurationdeste exemplo:-
roleName (string, required) — O nome da função que concede Import/Export permissão à VM para exportar imagens para seu bucket do S3.
-
disco ImageFormat (string, obrigatório) — Exporte a imagem de disco atualizada para um dos seguintes formatos compatíveis:
-
Disco rígido virtual (VHD) — compatível com os produtos de virtualização Citrix Xen e Microsoft. Hyper-V
-
Stream-optimized ESX Virtual Machine Disk (VMDK) — Compatível com as versões 4, 5 e 6 do VMware ESX e VMware vSphere.
-
Raw: formato bruto.
-
-
S3bucket (string, obrigatório): o bucket S3 no qual armazenar as imagens de disco de saída para sua VM.
Salve o arquivo como
export-vm-disks.json. Use o nome do arquivo no comando create-distribution-configuration.{ "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" } -
-
Execute o seguinte comando, usando o arquivo que você criou como entrada.
aws imagebuilder create-distribution-configuration --cli-input-json file://export-vm-disks.jsonnota
-
É necessário incluir a notação
file://no início do caminho do arquivo JSON. -
O caminho para o arquivo JSON deve seguir a convenção apropriada para o sistema operacional de base no qual você está executando o comando. Por exemplo, o Windows usa a barra invertida (\) para se referir ao caminho do diretório, enquanto o Linux e o macOS usam a barra (/).
Para obter mais informações detalhadas, consulte create-distribution-configuration
na Referência de comandos da AWS CLI . -