

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á.

# Configurar a distribuição da AMI entre contas com o Image Builder
<a name="cross-account-dist"></a>

Esta seção descreve como você pode definir as configurações de distribuição para entregar uma AMI do Image Builder para outras contas que você especificar.

A conta de destino pode então inicializar ou modificar a AMI, conforme necessário.

**nota**  
AWS CLI os exemplos de comando nesta seção pressupõem que você tenha criado anteriormente arquivos JSON de receita de imagem e configuração de infraestrutura. Para criar o arquivo JSON para uma fórmula de imagem, consulte [Crie uma receita de imagem com o AWS CLI](create-image-recipes.md#create-image-recipe-cli). Para criar o arquivo JSON para uma configuração de infraestrutura, consulte [Criar uma configuração de infraestrutura](create-infra-config.md).

## Pré-requisitos para a distribuição da AMI entre contas
<a name="cross-account-dist-prereqs"></a>

Para garantir que as contas de destino possam inicializar as instâncias com sucesso a partir da sua imagem do Image Builder, você deve configurar as permissões apropriadas para todas as contas de destino em todas as regiões.

Se você criptografar sua AMI usando AWS Key Management Service (AWS KMS), deverá configurar uma AWS KMS key para sua conta que seja usada para criptografar a nova imagem.

Quando o Image Builder realiza a distribuição entre contas para criptografia AMIs, a imagem na conta de origem é descriptografada e enviada para a região de destino, onde é recriptografada usando a chave designada para essa região. Como o Image Builder age em nome da conta de destino e usa um perfil do IAM que você cria na região de destino, essa conta deve ter acesso às chaves nas regiões de origem e de destino.

### Chaves de criptografia
<a name="cross-account-prereqs-encryption"></a>

Os pré-requisitos a seguir são necessários se sua imagem for criptografada usando AWS KMS. Os pré-requisitos do IAM são abordados na próxima seção.

**Requisitos da conta de origem**
+ Crie uma chave do KMS em sua conta em todas as regiões em que você compila e distribui sua AMI. Você também pode usar uma chave existente.
+ Atualize a política de chave para todas essas chaves, para permitir que as contas de destino usem sua chave.

**Requisitos da conta de destino**
+ Adicione uma política em linha para `EC2ImageBuilderDistributionCrossAccountRole` que permita que o perfil execute as ações necessárias para distribuir uma AMI criptografada. Para ver as etapas de configuração do IAM, consulte a seção de pré-requisitos [Políticas do IAM](#cross-account-prereqs-iam).

Para obter mais informações sobre o uso do acesso entre contas AWS KMS, consulte [Permitir que usuários em outras contas usem uma chave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) no Guia do *AWS Key Management Service desenvolvedor*.

Especifique sua chave de criptografia na fórmula da imagem, da seguinte forma:
+ Se você estiver usando o console do Image Builder, escolha sua chave de criptografia na lista suspensa **Criptografia (alias KMS)** na seção **Armazenamento (volumes)** da sua fórmula.
+ Se você estiver usando a ação da **CreateImageRecipe** API ou o **create-image-recipe** comando no AWS CLI, configure sua chave na `ebs` seção abaixo `blockDeviceMappings` em sua entrada JSON.

  O snippet de JSON a seguir mostra as configurações de criptografia de uma fórmula de imagem. Além de fornecer sua chave de criptografia, você também deve definir o sinalizador `encrypted` como `true`.

  ```
  {
  	...
  	"blockDeviceMappings": [
  	{
  		"deviceName": "Example root volume",
  		"ebs": { 
  			"deleteOnTermination": true,
  			"encrypted": true,
  			"iops": 100,
  			"kmsKeyId": "image-owner-key-id",
  			...
  		},
  		...
  	}],
  	...
  }
  ```

### Políticas do IAM
<a name="cross-account-prereqs-iam"></a>

Para configurar as permissões de distribuição entre contas no AWS Identity and Access Management (IAM), siga estas etapas:

1. Para usar o Image Builder AMIs distribuído entre contas, o proprietário da conta de destino deve criar uma nova função do IAM em sua conta chamada`EC2ImageBuilderDistributionCrossAccountRole`.

1. Ele deve anexar o [Política Ec2ImageBuilderCrossAccountDistributionAccess](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess) ao perfil para permitir a distribuição entre contas. Para obter mais informações sobre políticas gerenciadas, consulte [Políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do AWS Identity and Access Management *.

1. Verifique se o ID da conta de origem foi adicionado à política de confiança anexada ao perfil do IAM da conta de destino. O exemplo a seguir mostra uma política de confiança na conta de destino que especifica o ID da conta de origem.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::444455556666:root"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

   Para obter mais informações sobre políticas de confiança, consulte [Políticas Baseadas em Recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) no *Guia do Usuário do AWS Identity and Access Management *.

1. Se a AMI que você distribui for criptografada, o proprietário da conta de destino deverá adicionar a seguinte política em linha ao `EC2ImageBuilderDistributionCrossAccountRole` na conta dele para que ele possa usar suas chaves KMS. A seção `Principal` contém o número da conta dele. Isso permite que o Image Builder aja em seu nome quando usado AWS KMS para criptografar e descriptografar a AMI com as chaves apropriadas para cada região.

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount",
   			"Effect": "Allow",
   			"Action": [
   				"kms:Encrypt",
   				"kms:Decrypt",
   				"kms:ReEncrypt*",
   				"kms:GenerateDataKey*",
   				"kms:DescribeKey",
   				"kms:CreateGrant",
   				"kms:ListGrants",
   				"kms:RevokeGrant"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

   Para obter mais informações sobre políticas em linha, consulte [Políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) no *Guia do usuário do AWS Identity and Access Management *.

1. Se você estiver usando `launchTemplateConfigurations` para especificar um modelo de inicialização do Amazon EC2, você também deve adicionar a seguinte política ao seu `EC2ImageBuilderDistributionCrossAccountRole` em cada conta de destino.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateLaunchTemplateVersion",
                   "ec2:ModifyLaunchTemplate"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeLaunchTemplates"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": "arn:aws:ec2:*:*:launch-template/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           }
       ]
   }
   ```

------

1. Se você usar um AWS Systems Manager parâmetro do Parameter Store para armazenar o ID da AMI de saída para a conta de distribuição e a região, deverá adicionar a seguinte política à sua `EC2ImageBuilderDistributionCrossAccountRole` em cada conta de destino.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:PutParameter"
               ],
               "Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeImages"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## Limites para a distribuição entre contas
<a name="cross-account-dist-limits"></a>

Há algumas limitações ao distribuir imagens do Image Builder entre contas:
+ A conta de destino está limitada a 50 cópias simultâneas da AMI para cada região de destino.
+ Se você quiser copiar uma AMI de virtualização paravirtual (PV) para outra região, a região de destino deve oferecer suporte à virtualização fotovoltaica. AMIs Para obter mais informações, consulte [Linux AMI virtualization types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html).
+ Você não pode criar uma cópia não criptografada de um snapshot criptografado. Se você não especificar uma chave gerenciada pelo cliente AWS Key Management Service (AWS KMS) para o parâmetro `KmsKeyId`, o Image Builder usa a chave padrão para o Amazon Elastic Block Store (Amazon EBS). Para obter mais informações, consulte [Criptografia do Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

Para obter mais informações, consulte a [CreateDistributionConfiguration](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateDistributionConfiguration.html)Referência da *API EC2 Image Builder*.

## Configurar a distribuição entre contas para uma AMI do Image Builder com o console
<a name="cross-account-dist-console-create-ami"></a>

Esta seção descreve como criar e definir configurações de distribuição para distribuição entre contas do Image Builder AMIs usando o. Console de gerenciamento da AWS A configuração da distribuição entre contas requer permissões específicas do IAM. Você deve preencher o [Pré-requisitos para a distribuição da AMI entre contas](#cross-account-dist-prereqs) para esta seção antes de continuar.

Para criar configurações de distribuição no console do Image Builder, siga estas etapas:

1. Abra o console [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)do EC2 Image Builder em.

1. Escolha **Configurações de distribuição** no painel de navegação. Isso mostra uma lista das configurações de distribuição criadas em sua conta.

1. Na parte superior da página **Configurações de distribuição**, escolha **Criar configurações de distribuição**. Isso o leva para a página **Criar configurações de distribuição**.

1. Na seção **Tipo de imagem**, escolha **imagem de máquina da Amazon (AMI)** como o **Tipo de saída**. Essa é a configuração padrão.

1. Na seção **Geral**, insira o **Nome** do recurso de configurações de distribuição que você deseja criar (*obrigatório*).

1. Na seção **Configurações de região**, insira um ID de conta de 12 dígitos para o qual você deseja distribuir sua AMI em **Contas de destino** da região selecionada e pressione **Enter**. Isso verifica se a formatação está correta e, em seguida, exibe o ID da conta que você inseriu abaixo da caixa. Repita o processo para adicionar mais contas.

   Para remover uma conta que você inseriu, escolha o **X** exibido à direita do ID da conta.

   Insira o **Nome da AMI de saída** para cada região.

1. Continue especificando quaisquer configurações adicionais necessárias e escolha **Criar configurações** para criar seu novo recurso de configurações de distribuição.

## Configure a distribuição entre contas para uma AMI do Image Builder a partir do AWS CLI
<a name="cross-account-dist-cli-ami-create"></a>

Esta seção descreve como definir um arquivo de configurações de distribuição e usar o **create-image** comando AWS CLI para criar e distribuir uma AMI do Image Builder entre contas.

A configuração da distribuição entre contas requer permissões específicas do IAM. Você deve preencher o [Pré-requisitos para a distribuição da AMI entre contas](#cross-account-dist-prereqs) para esta seção antes de executar o comando **create-image**.

1. 

**Configurar um arquivo de configurações de distribuição**

   Antes de usar o **create-image** comando no AWS CLI para criar uma AMI do Image Builder que seja distribuída para outra conta, você deve criar uma estrutura `DistributionConfiguration` JSON que especifique a conta de destino IDs nas `AmiDistributionConfiguration` configurações. Você deve especificar pelo menos um `AmiDistributionConfiguration` na região de origem.

   O arquivo de amostra a seguir, denominado `create-distribution-configuration.json`, mostra a configuração para distribuição de imagem entre contas na região de origem.

   ```
   {
   	"name": "cross-account-distribution-example",
   	"description": "Cross Account Distribution Configuration Example",
   	"distributions": [
   		{
   			"amiDistributionConfiguration": {
   				"targetAccountIds": ["123456789012", "987654321098"],
   				"name": "Name {{ imagebuilder:buildDate }}", 
   				"description": "ImageCopy Ami Copy Configuration"
   			}, 
   			"region": "us-west-2"
   		}
   	]
   }
   ```

1. 

**Criar as configurações de distribuição**

   Para criar um recurso de configurações de distribuição do Image Builder usando o [create-distribution-configuration](https://docs.aws.amazon.com/cli/latest/reference/imagebuilder/create-distribution-configuration.html)comando no AWS CLI, forneça os seguintes parâmetros no comando:
   + Insira o nome da distribuição no parâmetro `--name`.
   + Anexe o arquivo JSON de configuração de distribuição que você criou no parâmetro `--cli-input-json`.

   ```
   aws imagebuilder create-distribution-configuration --name {{my distribution name}} --cli-input-json file://{{create-distribution-configuration.json}}
   ```
**nota**  
É 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 (/).

*Você também pode fornecer o JSON diretamente no comando, usando o parâmetro `--distributions`.*