Compartilhe uma AMI com organizações ou unidades organizacionais específicas - Amazon Elastic Compute Cloud

Compartilhe uma AMI com organizações ou unidades organizacionais específicas

O AWS Organizations é um serviço de gerenciamento de contas que permite consolidar várias Contas da AWS em uma só organização, que você cria e gerencia centralmente. É possível compartilhar uma AMI com uma organização ou uma unidade organizacional (UO) que você criou, além de compartilhá-la com contas específicas.

Uma organização é uma entidade que você cria para consolidar e gerenciar suas Contas da AWS. É possível organizar as contas em uma estrutura em árvore hierárquica, com uma raiz no alto e unidades organizacionais aninhadas abaixo da raiz. Cada conta pode ser adicionada diretamente na raiz ou ser colocada em uma das UOs na hierarquia. Para obter mais informações, consulte Terminologia e conceitos das organizações da AWS no Guia do usuário do AWS Organizations.

Quando você compartilha uma AMI com uma organização ou uma UO, todas as contas subordinadas ganham acesso à AMI. Por exemplo, no diagrama a seguir, a AMI é compartilhada com uma UO de nível superior (indicada pela seta no número 1). Todas as UOs e contas aninhadas sob essa UO de nível superior (indicadas pela linha pontilhada no número 2) também têm acesso à AMI. As contas na organização e UO fora da linha pontilhada (indicadas pelo número 3) não têm acesso à AMI porque não são filhas da UO com a qual a AMI é compartilhada.

A AMI é compartilhada com uma UO, e todas as UOs e contas filhas têm acesso à AMI.

Considerações

Considere as informações a seguir ao compartilhar AMIs com organizações ou unidades organizacionais específicas.

  • Propriedade: para compartilhar uma AMI, sua Conta da AWS deve ser proprietária da AMI.

  • Limites de compartilhamento: o proprietário da AMI pode compartilhar uma AMI com qualquer organização ou UO, incluindo organizações e UOs às quais ele não pertence.

    Para saber o número máximo de entidades com as quais uma AMI pode ser compartilhada em uma região, consulte Service Quotas do Amazon EC2.

  • Tags: você não pode compartilhar tags definidas pelo usuário (tags que você anexa a uma AMI). Quando você compartilha uma AMI, as tags definidas pelo usuário não estão disponíveis para nenhuma Conta da AWS em uma organização ou UO com a qual a AMI é compartilhada.

  • Formato de ARN: ao especificar uma organização ou UO em um comando, verifique se usou o formato de ARN correto. Você receberá um erro se especificar apenas o ID, por exemplo, se você especificar apenas o-123example ou ou-1234-5example.

    Formatos corretos de ARN:

    • ARN de organização: arn:aws:organizations::account-id:organization/organization-id

    • ARN de UO: arn:aws:organizations::account-id:ou/organization-id/ou-id

    Em que:

    • account-id é o número da conta de gerenciamento de 12 dígitos, por exemplo, 123456789012. Se você não souber o número da conta de gerenciamento, poderá descrever a organização ou a unidade organizacional para obter o ARN, que inclui o número da conta de gerenciamento. Para ter mais informações, consulte Obter o ARN.

    • organization-id é o ID da organização, por exemplo, o-123example.

    • ou-id é o ID da unidade organizacional, por exemplo, ou-1234-5example.

    Para obter mais informações sobre o formato dos ARNs, consulte Nome do recurso da Amazon (ARN) no Guia do usuário do IAM.

  • Criptografia e chaves: é possível compartilhar AMIs que tenham snapshots criptografados e não criptografados.

    • Os snapshots criptografados devem ser criptografados com uma chave gerenciada pelo cliente. Não é possível compartilhar AMIs que tenham snapshots que sejam criptografados com a chave gerenciada pela AWS padrão.

    • Se você compartilhar uma AMI que tenha snapshots criptografados, deverá permitir que as organizações ou UOs usem as chaves gerenciadas pelo cliente que foram usadas para criptografar os snapshots. Para obter mais informações, consulte Permitir que organizações e UOs usem uma chave do KMS.

  • Region: as AMIs são um recurso regional. Quando você compartilha uma AMI, ela só está disponível na região de onde foi compartilhada. Para disponibilizar uma AMI em uma região diferente, copie a AMI para a região e compartilhe-a. Para ter mais informações, consulte Copiar um AMI.

  • Uso: quando você compartilha uma AMI, os usuários podem apenas iniciar instâncias pela AMI. Eles não podem excluí-la, compartilhá-la nem modificá-la. Porém, após iniciarem uma instância usando sua AMI, poderão criar uma AMI com base na instância que iniciaram.

  • Faturamento: você não é cobrado quando sua AMI é usada por outras Contas da AWS para executar instâncias. As contas que iniciam instâncias usando a AMI são cobradas pelas instâncias que iniciam.

Permitir que organizações e UOs usem uma chave do KMS

Se você compartilhar uma AMI que tenha snapshots criptografados, também deverá permitir que as organizações ou UOs usem as AWS KMS keys que foram usadas para criptografar os snapshots.

Use as chaves aws:PrincipalOrgID e aws:PrincipalOrgPaths para comparar o caminho do AWS Organizations para a entidade principal que está fazendo a solicitação com o caminho na política. Essa entidade principal pode ser um usuário do IAM, um perfil do IAM, um usuário federado ou um usuário raiz da Conta da AWS. Em uma política, essa chave de condição garante que o solicitante seja um membro da conta na raiz da organização ou das UOs especificadas em AWS Organizations. Para obter mais exemplos de instruções de condição, consulte aws:PrincipalOrgID e aws:PrincipalOrgPaths no Guia do usuário do IAM.

Para obter mais informações sobre uma política de chaves, consulte Permitir que usuários de outras contas usem uma chave do KMS no Guia do desenvolvedor do AWS Key Management Service.

Para conceder a uma organização ou UO permissão para usar uma chave do KMS, adicione a seguinte instrução à política de chaves.

{ "Sid": "Allow access for organization root", "Effect": "Allow", "Principal": "*", "Action": [ "kms:Describe*", "kms:List*", "kms:Get*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123example" } } }

Para compartilhar uma chave do KMS com várias UOs, é possível usar uma política semelhante ao exemplo a seguir.

{ "Sid": "Allow access for specific OUs and their descendants", "Effect": "Allow", "Principal": "*", "Action": [ "kms:Describe*", "kms:List*", "kms:Get*", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "o-123example" }, "ForAnyValue:StringLike": { "aws:PrincipalOrgPaths": [ "o-123example/r-ab12/ou-ab12-33333333/*", "o-123example/r-ab12/ou-ab12-22222222/*" ] } } }

Compartilhar uma AMI

É possível usar o console do Amazon EC2 ou a AWS CLI para compartilhar uma AMI com uma organização ou UO.

Compartilhar uma AMI (console)

Para compartilhar uma AMI com uma organização ou uma UO usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione AMIs.

  3. Selecione sua AMI na lista e escolha Actions (Ações), Edit AMI permissions (Editar permissões de AMI).

  4. Em AMI availability (Disponibilidade da AMI), escolha Private (Privado).

  5. Próximo a Shared organizations/OUs (Organizações/UOs compartilhadas), escolha Add organization/OU ARN (Adicionar ARN de organização/UO).

  6. Em Organization/OU ARN (ARN de organização/UO), insira o ARN da organização ou o ARN da UO com o qual você deseja compartilhar a AMI e, em seguida, escolha Share AMI (Compartilhar AMI). Observe que especifique o ARN completo, e não apenas o ID.

    Para compartilhar essa AMI com várias organizações ou UOs, repita essa etapa até adicionar todas as organizações ou UOs necessárias.

    nota

    Você não precisa compartilhar os snapshots do Amazon EBS aos quais a AMI faz referência para compartilhar a AMI. Apenas a própria AMI precisa ser compartilhada, e o sistema fornece automaticamente acesso à instância aos snapshots do Amazon EBS referenciados para o início. No entanto, é necessário compartilhar todas as chaves do KMS usadas para criptografar os snapshots referenciados pela AMI. Para obter mais informações, consulte Permitir que organizações e UOs usem uma chave do KMS.

  7. Após terminar, escolha Save changes (Salvar alterações).

  8. (Opcional) Para visualizar as organizações ou UOs com as quais você compartilhou a AMI, selecione a AMI na lista, escolha a guia Permissions (Permissões) e role para baixo até Shared organizations/OUs Organizações/UOs compartilhadas. Para localizar as AMIs que são compartilhadas com você, consulte Encontrar AMIs compartilhadas.

Compartilhar uma AMI (Tools for Windows PowerShell)

Use o comando Edit-EC2ImageAttribute (Tools for Windows PowerShell) para compartilhar uma AMI conforme exibido nos exemplos a seguir.

Para compartilhar uma AMI com uma organização ou uma UO

O comando a seguir concede permissões de execução para a AMI especificada à organização especificada.

PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType add -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"
nota

Você não precisa compartilhar os snapshots do Amazon EBS aos quais a AMI faz referência para compartilhar a AMI. Apenas a própria AMI precisa ser compartilhada, e o sistema fornece automaticamente acesso à instância aos snapshots do Amazon EBS referenciados para o início. No entanto, é necessário compartilhar todas as chaves do KMS usadas para criptografar os snapshots referenciados pela AMI. Para obter mais informações, consulte Permitir que organizações e UOs usem uma chave do KMS.

Para interromper o compartilhamento de uma AMI com uma organização ou uma UO

O comando a seguir remove as permissões de execução para a AMI especificada da organização especificada:

PS C:\> Edit-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission -OperationType remove -OrganizationArn "arn:aws:organizations::123456789012:organization/o-123example"

Para interromper o compartilhamento de uma AMI com todas as organizações, UOs e Contas da AWS

O comando a seguir remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

PS C:\> Reset-EC2ImageAttribute -ImageId ami-0abcdef1234567890 -Attribute launchPermission

Compartilhar uma AMI (AWS CLI)

Use o comando modify-image-attribute (AWS CLI) para compartilhar uma AMI.

Compartilhar uma AMI com uma organização usando a AWS CLI

O comando modify-image-attribute concede permissões de execução para a AMI especificada para a organização especificada. Observe que especifique o ARN completo, e não apenas o ID.

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
Para compartilhar uma AMI com uma UO usando a AWS CLI

O comando modify-image-attribute concede permissões de execução para a AMI especificada à UO especificada. Observe que especifique o ARN completo, e não apenas o ID.

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Add=[{OrganizationalUnitArn=arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example}]"
nota

Você não precisa compartilhar os snapshots do Amazon EBS aos quais a AMI faz referência para compartilhar a AMI. Apenas a própria AMI precisa ser compartilhada, e o sistema fornece automaticamente acesso à instância aos snapshots do Amazon EBS referenciados para o início. No entanto, é necessário compartilhar todas as chaves do KMS usadas para criptografar os snapshots referenciados pela AMI. Para obter mais informações, consulte Permitir que organizações e UOs usem uma chave do KMS.

Parar de compartilhar uma AMI

É possível usar o console do Amazon EC2 ou a AWS CLI para parar de compartilhar uma AMI com uma organização ou UO.

Interrupção de compartilhamento de uma AMI (console)

Para parar de compartilhar uma AMI com uma organização ou uma UO usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione AMIs.

  3. Selecione sua AMI na lista e escolha Actions (Ações), Edit AMI permissions (Editar permissões de AMI).

  4. Em Shared organizations/OUs (Organizações/UOs compartilhadas), selecione as organizações ou UOs com as quais você deseja parar de compartilhar a AMI e, em seguida, escolha Remove selected (Remover selecionado).

  5. Após terminar, escolha Save changes (Salvar alterações).

  6. (Opcional) Para confirmar que você parou de compartilhar a AMI com as organizações ou UOs, selecione a AMI na lista, escolha a guia Permissions (Permissões) e role para baixo até Shared organizations/OUs (Organizações/UOs compartilhadas).

Parar de compartilhar uma AMI (AWS CLI)

Use os comandos modify-image-attribute ou reset-image-attribute (AWS CLI) para interromper o compartilhamento de uma AMI.

Para interromper o compartilhamento uma AMI com uma organização ou uma UO usando a AWS CLI

O comando modify-image-attribute remove as permissões de execução para a AMI especificada da organização especificada. Observe que especifique o ARN.

aws ec2 modify-image-attribute \ --image-id ami-0abcdef1234567890 \ --launch-permission "Remove=[{OrganizationArn=arn:aws:organizations::123456789012:organization/o-123example}]"
Para interromper o compartilhamento de uma AMI com todas as organizações, UOs e Contas da AWS usando a AWS CLI

O comando reset-image-attribute remove todas as permissões de execução explícita e pública da AMI especificada. Observe que o proprietário da AMI sempre tem permissões de execução e, portanto, não é afetado por este comando.

aws ec2 reset-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission
nota

Você não pode interromper o compartilhamento de uma AMI com uma conta específica se ela estiver em uma organização ou UO com a qual uma AMI é compartilhada. Se você tentar parar de compartilhar a AMI removendo as permissões de execução da conta, o Amazon EC2 retornará uma mensagem de êxito. Porém, a AMI continua sendo compartilhada com a conta.

Veja as organizações e as UOs com as quais uma AMI é compartilhada

É possível usar o console do Amazon EC2 ou a AWS CLI para verificar com quais organizações e UOs você compartilhou sua AMI.

Veja as organizações e as UOs com as quais uma AMI é compartilhada (console)

Para verificar com quais organizações e UOs você compartilhou sua AMI usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione AMIs.

  3. Selecione sua AMI na lista, escolha a guia Permissions (Permissões) e role para baixo até Shared organizations/OUs (Organizações/UOs compartilhadas).

    Para localizar as AMIs que são compartilhadas com você, consulte Encontrar AMIs compartilhadas.

Exibir as organizações e as UOs com as quais uma AMI é compartilhada (AWS CLI)

Usando o comando describe-image-attribute (AWS CLI) e o atributo launchPermission, é possível verificar com quais organizações e UOs você compartilhou sua AMI.

Para verificar com quais organizações e UOs você compartilhou sua AMI usando a AWS CLI

O comando describe-image-attribute descreve o atributo launchPermission para a AMI especificada e retorna as organizações e as UOs com as quais você compartilhou a AMI.

aws ec2 describe-image-attribute \ --image-id ami-0abcdef1234567890 \ --attribute launchPermission

Exemplo de resposta

{ "ImageId": "ami-0abcdef1234567890", "LaunchPermissions": [ { "OrganizationalUnitArn": "arn:aws:organizations::111122223333:ou/o-123example/ou-1234-5example" } ] }

Obter o ARN

Os ARNs de organizações e de unidades organizacionais contêm o número da conta de gerenciamento de 12 dígitos. Se você não souber o número da conta de gerenciamento, poderá descrever a organização e a unidade organizacional para obter o ARN para cada uma delas. Nos exemplos a seguir, 123456789012 é o número da conta de gerenciamento.

Antes de obter os ARNs, é necessário ter permissão para descrever organizações e unidades organizacionais. O modelo de política a seguir fornece as permissões necessárias.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "organizations:Describe*" ], "Resource": "*" } ] }
Para obter o ARN de uma organização

Use o comando describe-organization e o parâmetro --query definido como 'Organization.Arn' para retornar apenas o ARN da organização.

aws organizations describe-organization --query 'Organization.Arn'

Exemplo de resposta

"arn:aws:organizations::123456789012:organization/o-123example"
Para obter o ARN de uma unidade organizacional

Use o comando describe-organizational-unit, especifique o ID da UO e defina o parâmetro --query como 'OrganizationalUnit.Arn' para retornar apenas o ARN da unidade organizacional.

aws organizations describe-organizational-unit --organizational-unit-id ou-1234-5example --query 'OrganizationalUnit.Arn'

Exemplo de resposta

"arn:aws:organizations::123456789012:ou/o-123example/ou-1234-5example"