Controlar a descoberta e o uso de AMIs no Amazon EC2 com AMIs permitidas. - Amazon Elastic Compute Cloud

Controlar a descoberta e o uso de AMIs no Amazon EC2 com AMIs permitidas.

Para controlar a descoberta e o uso de imagens de máquina da Amazon (AMIs) pelos usuários da sua Conta da AWS, é possível usar o atributo de AMIs permitidas. Você especifica os critérios que as AMIs devem atender para ficarem visíveis e disponíveis em sua conta. Quando os critérios são habilitados, os usuários que iniciam instâncias só verão e terão acesso às AMIs que estejam em conformidade com os critérios especificados. Por exemplo, é possível especificar uma lista de provedores de AMIs confiáveis como critério, e somente as AMIs desses provedores estarão visíveis e disponíveis para uso.

Antes de ativar as configurações de AMIs permitidas, é possível ativar o modo de auditoria para visualizar quais AMIs estarão ou não visíveis e disponíveis para uso. Isso permite que você refine os critérios conforme necessário para garantir que somente as AMIs pretendidas estejam visíveis e disponíveis para os usuários em sua conta. Além disso, use o comando describe-instance-image-metadata para encontrar as instâncias que foram iniciadas com AMIs que não atendiam aos critérios especificados. Essas informações podem orientar sua decisão de atualizar suas configurações de inicialização para usar AMIs em conformidade (por exemplo, especificar uma AMI diferente em um modelo de inicialização) ou ajustar seus critérios para permitir essas AMIs.

Você especifica as configurações de AMIs permitidas no nível da conta, diretamente na conta ou usando uma política declarativa. Essas configurações devem ser definidas em cada Região da AWS onde você deseja controlar o uso de AMIs. O uso de uma política declarativa permite que você aplique as configurações em várias regiões simultaneamente, bem como em várias contas simultaneamente. Quando uma política declarativa está em uso, você não pode modificar as configurações diretamente em uma conta. Este tópico descreve como ajustar as configurações diretamente em uma conta. Para obter informações sobre o uso de políticas declarativas, consulte Políticas declarativas no Guia do usuário do AWS Organizations.

nota

O atributo AMIs permitidas controla somente a descoberta e o uso de AMIs públicas ou AMIs compartilhadas com sua conta. Ele não restringe as AMIs pertencentes à sua conta. Independentemente dos critérios definidos, as AMIs criadas pela sua conta sempre poderão ser descobertas e usadas pelos usuários da sua conta.

Principais benefícios das AMIs permitidas
  • Conformidade e segurança: os usuários só podem descobrir e usar AMIs que atendam aos critérios especificados, reduzindo o risco de uso de AMIs fora de conformidade.

  • Gerenciamento eficiente: ao reduzir o número de AMIs permitidas, o gerenciamento das demais se torna mais fácil e eficiente.

  • Implementação centralizada em nível de conta: defina as configurações de AMIs permitidas no nível da conta, diretamente na conta ou por meio de uma política declarativa. Isso fornece uma maneira centralizada e eficiente de controlar o uso de AMIs em toda a conta.

Como funcionam as AMIs permitidas

Para controlar quais AMIs podem ser detectadas e usadas em sua conta, defina um conjunto de critérios de avaliação de AMIs. Os critérios são compostos de um ou mais ImageCriterion, como mostra o diagrama a seguir. Uma explicação se segue ao diagrama.

A hierarquia da configuração de ImageCriteria de AMIs Permitidas.

A configuração tem três níveis:

  • 1: valores dos parâmetros

    • Parâmetros com vários valores:

      • ImageProviders

      • ImageNames

      • MarketplaceProductCodes

        Uma AMI pode atender a qualquer valor dentro de um parâmetro para ser permitida.

        Exemplo: ImageProviders = amazon OU conta 111122223333 OU conta 444455556666 (a lógica de avaliação de valores dos parâmetros não é mostrada no diagrama.)

    • Parâmetros de valor único:

      • CreationDateCondition

      • DeprecationTimeCondition

  • 2: ImageCriterion

    • Agrupa vários parâmetros com a lógica E.

    • Uma AMI deve atender a todos os parâmetros dentro de um ImageCriterion para ser permitida.

    • Exemplo: ImageProviders = amazon E CreationDateCondition = 300 dias ou menos

  • 3: ImageCriteria

    • Agrupa vários ImageCriterion com a lógica OU.

    • Uma AMI pode atender a qualquer ImageCriterion para ser permitida.

    • Forma a configuração completa em relação à qual as AMIs são avaliadas.

Parâmetros de AMIs permitidas

Os seguintes parâmetros podem ser configurados para criar ImageCriterion:

ImageProviders

Os provedores de AMIs cujas AMIs são permitidas.

Os valores válidos são aliases definidos pela AWS, e IDs de Conta da AWS, da seguinte forma:

  • amazon: um alias que identifica as AMIs criadas pela Amazon ou por provedores verificados

  • aws-marketplace: um alias que identifica AMIs criadas por provedores verificados no AWS Marketplace

  • aws-backup-vault: um alias que identifica AMIs de backup que residem em contas do cofre de backup da AWS logicamente isoladas. Se você usar o atributo de cofre logicamente isolado de backup da AWS, certifique-se de que esse alias esteja incluído como provedor de AMI.

  • IDs de Conta da AWS: um ou mais IDs de Conta da AWS de 12 dígitos

  • none: indica que somente as AMIs criadas pela sua conta podem ser descobertas e usadas. AMIs públicas ou compartilhadas não podem ser descobertas e usadas. Quando especificado, nenhum outro critério pode ser especificado.

ImageNames

Os nomes das AMIs permitidas, usando correspondências exatas ou curingas (? ou *).

MarketplaceProductCodes

Os códigos de produto do AWS Marketplace para as AMIs permitidas.

CreationDateCondition

A idade máxima das AMIs permitidas.

DeprecationTimeCondition

O período máximo desde a obsolescência para as AMIs permitidas.

Para ver os valores e as restrições válidas para cada critério, consulte ImageCriterionRequest na Amazon EC2 API Reference.

Configuração de AMIs permitidas

A configuração básica das AMIs permitidas é a configuração de ImageCriteria que define os critérios para as AMIs permitidas. A seguinte estrutura JSON mostra os parâmetros que podem ser especificados:

{ "State": "enabled" | "disabled" | "audit-mode", "ImageCriteria" : [ { "ImageProviders": ["string",...], "MarketplaceProductCodes": ["string",...], "ImageNames":["string",...], "CreationDateCondition" : { "MaximumDaysSinceCreated": integer }, "DeprecationTimeCondition" : { "MaximumDaysSinceDeprecated": integer } }, ... }

Exemplo de ImageCriteria

O exemplo de ImageCriteria a seguir configura quatro ImageCriterion. Uma AMI será permitida se atender a um desses ImageCriterion. Para obter informações sobre como os critérios são avaliados, consulte Como os critérios são avaliados.

{ "ImageCriteria": [ // ImageCriterion 1: Allow AWS Marketplace AMIs with product code "abcdefg1234567890" { "MarketplaceProductCodes": [ "abcdefg1234567890" ] }, // ImageCriterion 2: Allow AMIs from providers whose accounts are // "123456789012" OR "123456789013" AND AMI age is less than 300 days { "ImageProviders": [ "123456789012", "123456789013" ], "CreationDateCondition": { "MaximumDaysSinceCreated": 300 } }, // ImageCriterion 3: Allow AMIs from provider whose account is "123456789014" // AND with names following the pattern "golden-ami-*" { "ImageProviders": [ "123456789014" ], "ImageNames": [ "golden-ami-*" ] }, // ImageCriterion 4: Allow AMIs from Amazon or verified providers // AND which aren't deprecated { "ImageProviders": [ "amazon" ], "DeprecationTimeCondition": { "MaximumDaysSinceDeprecated": 0 } } ] }

Como os critérios são avaliados

A seguinte tabela explica as regras de avaliação que determinam se uma AMI é permitida, mostrando como o operador AND ou OR é aplicado em cada nível:

Nível de avaliação Operador Requisito para ser uma AMI permitida
Valores de parâmetros para ImageProviders, ImageNames e MarketplaceProductCodes OR A AMI deve atender a pelo menos um valor de cada lista de parâmetros
ImageCriterion AND A AMI deve atender a todos os parâmetros de cada ImageCriterion
ImageCriteria OR A AMI deve atender a um dos ImageCriterion

Usando as regras de avaliação anteriores, vamos ver como aplicá-las ao Exemplo de ImageCriteria:

  • ImageCriterion 1: permite AMIs que tenham o código de produto de AWS Marketplace abcdefg1234567890

    OR

  • ImageCriterion 2: permite AMIs que atendam a estes dois critérios:

    • Pertencente à conta 123456789012 OR 123456789013

      • AND

    • Criada nos últimos 300 dias

    OR

  • ImageCriterion 3: permite AMIs que atendam a estes dois critérios:

    • Pertencente à conta 123456789014

      • AND

    • Nomeada com o padrão golden-ami-*

    OR

  • ImageCriterion 4: permite AMIs que atendam a estes dois critérios:

    • Publicada pela Amazon ou por fornecedores verificados (especificado pelo alias amazon)

      • AND

    • Não obsoletas (o número máximo de dias desde a obsolescência é 0)

Limites

O ImageCriteria podem incluir até:

  • 10 ImageCriterion

Cada ImageCriterion pode incluir até:

  • 200 valores para ImageProviders

  • 50 valores para ImageNames

  • 50 valores para MarketplaceProductCodes

Exemplo de limites

Usando o Exemplo de ImageCriteria anterior:

  • Existem 4 ImageCriterion. Podem ser adicionados até 6 à solicitação para atingir o limite de 10.

  • No primeiro ImageCriterion, há 1 valor para MarketplaceProductCodes. Podem ser adicionados até 49 a esse ImageCriterion para atingir o limite de 50.

  • No segundo ImageCriterion, há 2 valores para ImageProviders. Podem ser adicionados até 198 a esse ImageCriterion para atingir o limite de 200.

  • No terceiro ImageCriterion, há 1 valor para ImageNames. Podem ser adicionados até 49 a esse ImageCriterion para atingir o limite de 50.

Operações de AMIs permitidas

O atributo AMIs permitidas tem três estados operacionais para gerenciamento dos critérios de imagem: habilitado, desabilitado e modo de auditoria. Esses modos permitem que você habilite ou desabilite os critérios de imagem, ou os revise conforme necessário.

Habilitada

Quando as AMIs permitidas estão habilitadas:

  • Os ImageCriteria são aplicados.

  • Somente as AMIs permitidas podem ser descobertas no console do EC2 e por APIs que usam imagens (por exemplo, que descrevem, copiam, armazenam ou executam outras ações que usam imagens).

  • As instâncias só podem ser iniciadas usando AMIs permitidas.

Desabilitado

Quando as AMIs permitidas estão desabilitadas:

  • As ImageCriteria não são aplicadas.

  • Nenhuma restrição é imposta à descoberta ou ao uso da AMI.

Modo de auditoria

No modo de auditoria:

  • Os ImageCriteria são aplicados, mas nenhuma restrição é imposta à descoberta ou ao uso da AMI.

  • No console do EC2, para cada AMI, o campo Imagem permitida exibe Sim ou Não para indicar se a AMI será detectável e estará disponível para os usuários na conta quando AMIs permitidas estiver habilitado.

  • Na linha de comando, a resposta para a operação describe-image inclui "ImageAllowed": true ou "ImageAllowed": false para indicar se a AMI será detectável e estará disponível para os usuários na conta quando AMIs permitidas estiver habilitado.

  • No console do EC2, o Catálogo de AMIs exibirá Não permitido ao lado de AMIs que não serão detectáveis ou estarão disponíveis para os usuários na conta quando AMIs permitidas estiver habilitado.

Práticas recomendadas para a implementação de AMIs permitidas

Ao implementar AMIs permitidas, considere estas práticas recomendadas para garantir uma transição tranquila e minimizar possíveis interrupções em seu ambiente da AWS.

  1. Habilitar o modo de auditoria

    Comece ativando AMIs permitidas no modo de auditoria. Esse estado permite que você veja quais são as AMIs que seriam afetadas por seus critérios sem realmente restringir o acesso, fornecendo um período de avaliação sem riscos.

  2. Definir critérios de AMIs permitidas

    Estabeleça cuidadosamente quais provedores de AMI estão alinhados com as políticas de segurança, os requisitos de conformidade e as necessidades operacionais da sua organização.

    nota

    Ao usar serviços gerenciados pela AWS, como Amazon ECS ou o Amazon EKS, recomendamos especificar o alias amazon para permitir as AMIs criadas pela AWS. Esses serviços dependem das AMIs publicadas pela Amazon para iniciar instâncias.

    Tenha cuidado ao definir restrições de CreationDateCondition para as AMIs. Definir condições de data excessivamente restritivas (por exemplo, as AMIs devem ter menos de 5 dias) pode causar falhas na inicialização da instância se as AMIs da AWS ou de outros provedores não forem atualizadas dentro do prazo especificado.

    Recomendamos emparelhar ImageNames com ImageProviders para ter mais controle e especificidade. O uso de ImageNames sozinho pode não identificar exclusivamente uma AMI.

  3. Verificar o impacto nos processos de negócios esperados

    É possível usar o console ou a CLI para identificar instâncias que foram iniciadas com AMIs e que não atendem aos critérios especificados. Essas informações podem orientar sua decisão de atualizar suas configurações de inicialização para usar AMIs em conformidade (por exemplo, especificar uma AMI diferente em um modelo de inicialização) ou ajustar seus critérios para permitir essas AMIs.

    Console: use a regra ec2-instance-launched-with-allowed-ami do AWS Config para verificar se as instâncias em execução ou paradas foram iniciadas com AMIs que atendem aos seus critérios de AMIs permitidas. A regra é NON_COMPLIANT quando uma AMI não atende aos critérios de AMIs permitidas e COMPLIANT quando atende. A regra apenas funciona quando a configuração de AMIs permitidas está definida como habilitada ou modo de auditoria.

    CLI: execute o comando describe-instance-image-metadata e filtre a resposta para identificar quaisquer instâncias que foram iniciadas com AMIs que não atendem aos critérios especificados.

    Para obter instruções sobre o console e a CLI, consulte Encontrar instâncias inicializadas de AMIs que não são permitidas.

  4. Habilitar AMIs permitidas

    Depois de confirmar que os critérios não afetarão de forma adversa os processos de negócios esperados, habilite AMIs permitidas.

  5. Monitorar as execuções de instâncias

    Continue monitorando as execuções de instâncias a partir de AMIs em ssuas aplicações e nos serviços da AWS gerenciados que você usa, como o Amazon EMR, Amazon ECR, Amazon EKS e AWS Elastic Beanstalk. Verifique se há problemas inesperados e faça os ajustes necessários nos critérios de AMIs permitidas.

  6. Testar novas AMIs

    Para testar AMIs de terceiros que não estejam em conformidade com suas configurações atuais de AMIs permitidas, a AWS recomenda as abordagens a seguir:

    • Use uma Conta da AWS separada: crie uma conta sem acesso aos recursos essenciais para os seus negócios. Garanta que a configuração de AMIs permitidas não esteja habilitada nessa conta ou que as AMIs que você deseja testar sejam explicitamente permitidas, para que você possa testá-las.

    • Teste em outra Região da AWS: use uma região em que as AMIs de terceiros estejam disponíveis, mas em que você ainda não tenha habilitado as configurações de AMIs permitidas.

    Essas abordagens ajudam a garantir que seus recursos essenciais para os negócios permaneçam seguros durante o teste de novas AMIs.

Permissões obrigatórias do IAM

Para usar o atributo de AMIs permitidas, você precisa das seguintes permissões do IAM:

  • GetAllowedImagesSettings

  • EnableAllowedImagesSettings

  • DisableAllowedImagesSettings

  • ReplaceImageCriteriaInAllowedImagesSettings