Controle el descubrimiento y el uso de las AMI en Amazon EC2 con las AMI permitidas - Amazon Elastic Compute Cloud

Controle el descubrimiento y el uso de las AMI en Amazon EC2 con las AMI permitidas

Para controlar el descubrimiento y el uso de las Imágenes de máquina de Amazon (AMI) por parte de los usuarios de la Cuenta de AWS, puede utilizar la característica AMI permitidas. Usted especifica los criterios que las AMI deben cumplir para estar visibles y disponibles en la cuenta. Cuando los criterios están habilitados, los usuarios que lancen instancias solo verán las AMI que cumplan con los criterios especificados, y únicamente tendrán acceso a estas. Por ejemplo, puede especificar una lista de proveedores de AMI de confianza como criterio y solo las AMI de estos proveedores estarán visibles y disponibles para ser utilizadas.

Antes de habilitar la configuración de AMI permitidas, puede habilitar el modo de auditoría para obtener una vista previa de las AMI que estarán o no visibles y disponibles para ser utilizadas. Esto permite ajustar los criterios según sea necesario para garantizar que solo las AMI previstas estén visibles y disponibles para los usuarios de la cuenta. Además, utilice el comando describe-instance-image-metadata para buscar las instancias que se hayan lanzado con AMI que no cumplan los criterios especificados. Esta información puede fundamentar su decisión para determinar si actualizar las configuraciones de lanzamiento para usar AMI compatibles (por ejemplo, especificar una AMI diferente en una plantilla de lanzamiento) o ajustar los criterios para permitir estas AMI.

Especifica la configuración de AMI permitidas a nivel de cuenta, ya sea directamente en la cuenta o mediante una política declarativa. Estos ajustes se deben configurar en cada Región de AWS en la que desee controlar el uso de AMI. El uso de una política declarativa permite aplicar la configuración en varias regiones simultáneamente, así como en varias cuentas simultáneamente. Cuando se utiliza una política declarativa, no se puede modificar la configuración directamente en una cuenta. En este tema se describe cómo configurar el ajuste directamente dentro de una cuenta. Para obtener información sobre el uso de políticas declarativas, consulte Políticas declarativas en la Guía del usuario de AWS Organizations.

nota

La característica AMI permitidas solo controla la detección y el uso de las AMI públicas o las AMI compartidas con la cuenta. No restringe las AMI propiedad de la cuenta. Independientemente de los criterios que establezca, los usuarios de la cuenta siempre pueden detectar y utilizar las AMI creadas por la cuenta.

Principales ventajas de la característica AMI permitidas
  • Cumplimiento y seguridad: los usuarios solo pueden descubrir y utilizar las AMI que cumplan los criterios especificados, lo que reduce el riesgo del uso no conforme de las AMI.

  • Administración eficiente: al reducir la cantidad de AMI permitidas, resulta más fácil y eficiente administrar las restantes.

  • Implementación centralizada a nivel de cuenta: configure los ajustes de AMI permitidas a nivel de cuenta, ya sea directamente dentro de la cuenta o mediante una política declarativa. Esto proporciona una forma centralizada y eficiente de controlar el uso de AMI en toda la cuenta.

Cómo funciona la característica AMI permitidas

Para controlar qué AMI se pueden descubrir y usar en la cuenta, se define un conjunto de criterios con los cuales evaluar las AMI. Los criterios se componen de uno o más ImageCriterion, como se muestra en el siguiente diagrama. A continuación del diagrama se presenta una explicación.

Jerarquía de configuración de ImageCriteria de AMI permitidas.

La configuración tiene tres niveles:

  • 1: valores de parámetros

    • Parámetros con varios valores:

      • ImageProviders

      • ImageNames

      • MarketplaceProductCodes

        Una AMI puede coincidir con cualquiera de los valores dentro de un parámetro para que se permita.

        Ejemplo: ImageProviders = amazon O cuenta 111122223333 O cuenta 444455556666 (La lógica de evaluación de los valores de los parámetros no se muestra en el diagrama).

    • Parámetros de un solo valor:

      • CreationDateCondition

      • DeprecationTimeCondition

  • 2: ImageCriterion

    • Agrupa varios parámetros con la lógica AND.

    • Una AMI debe coincidir con todos los parámetros dentro de una ImageCriterion para que se permita.

    • Ejemplo: ImageProviders = amazon AND CreationDateCondition = 300 días o menos

  • 3: ImageCriteria

    • Agrupa varios ImageCriterion con lógica OR.

    • Una AMI puede coincidir con cualquier ImageCriterion para que se permita.

    • Constituye la configuración completa con la cual se evalúan las AMI.

Parámetros de AMI permitidas

Los siguientes parámetros se pueden configurar para crear ImageCriterion:

ImageProviders

Los proveedores de AMI cuyas AMI están permitidas.

Los valores válidos son los alias definidos por AWS, y los ID de Cuenta de AWS, de la siguiente manera:

  • amazon: un alias que identifica las AMI creadas por Amazon o proveedores verificados

  • aws-marketplace: un alias que identifica las AMI creadas por proveedores verificados en el AWS Marketplace

  • aws-backup-vault: un alias que identifica las AMI de copia de seguridad que residen en cuentas de almacenes aislados lógicamente de AWS Backup. Si utiliza la característica de almacén aislado lógicamente de AWS Backup, asegúrese de incluir este alias como proveedor de AMI.

  • Identificadores de Cuenta de AWS: uno o más identificadores de Cuenta de AWS de 12 dígitos

  • none: indica que solo se pueden descubrir y utilizar las AMI creadas por la cuenta. Las AMI públicas o compartidas no se pueden detectar ni utilizar. Cuando se especifica, no se puede especificar ningún otro criterio.

ImageNames

Los nombres de las AMI permitidas, con coincidencias exactas o caracteres comodín (? o *).

MarketplaceProductCodes

Los códigos de producto de AWS Marketplace de las AMI permitidas.

CreationDateCondition

La antigüedad máxima de las AMI permitidas.

DeprecationTimeCondition

El período máximo desde la obsolescencia de las AMI permitidas.

Para conocer los valores válidos y las restricciones de cada criterio, consulte ImageCriterionRequest en la Referencia de la API de Amazon EC2.

Configuración de AMI permitidas

La configuración principal de las AMI permitidas es la configuración de ImageCriteria que define los criterios para las AMI permitidas. La siguiente estructura JSON muestra los parámetros que se pueden especificar:

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

Ejemplo de ImageCriteria

En el siguiente ejemplo de ImageCriteria se configuran cuatro ImageCriterion. Se permite una AMI si coincide con alguno de estos ImageCriterion. Para obtener información sobre cómo se evalúan los criterios, consulte Cómo se evalúan los criterios.

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

Cómo se evalúan los criterios

La siguiente tabla explica las reglas de evaluación que determinan si una AMI está permitida, y muestra cómo se aplica el operador AND o OR en cada nivel:

Nivel de evaluación Operador Requisito para que se permita una AMI
Valores de parámetros para ImageProviders, ImageNames y MarketplaceProductCodes OR La AMI debe coincidir con al menos un valor en cada lista de parámetros
ImageCriterion AND La AMI debe coincidir con todos los parámetros en cada ImageCriterion
ImageCriteria OR La AMI debe coincidir con cualquiera de los ImageCriterion

Utilicemos las reglas de evaluación anteriores para ver cómo aplicarlas a Ejemplo de ImageCriteria:

  • ImageCriterion 1: permite las AMI que tienen el código de producto abcdefg1234567890 de AWS Marketplace

    OR

  • ImageCriterion 2: permite las AMI que cumplen estos dos criterios:

    • Propiedad de cualquiera de las cuentas 123456789012 OR 123456789013

      • AND

    • Creada en los últimos 300 días

    OR

  • ImageCriterion 3: permite las AMI que cumplen estos dos criterios:

    • Propiedad de la cuenta 123456789014

      • AND

    • Nombrada con el patrón golden-ami-*

    OR

  • ImageCriterion 4: permite las AMI que cumplen estos dos criterios:

    • Publicada por Amazon o proveedores verificados (especificados por el alias amazon)

      • AND

    • No está en desuso (el número máximo de días transcurridos desde la obsolescencia es 0)

Límites

El ImageCriteria puede incluir hasta:

  • 10 ImageCriterion

Cada ImageCriterion puede incluir hasta:

  • 200 valores para ImageProviders

  • 50 valores para ImageNames

  • 50 valores para MarketplaceProductCodes

Ejemplo de límites

Si utilizamos el Ejemplo de ImageCriteria anterior:

  • Hay 4 ImageCriterion. Se pueden agregar hasta 6 más a la solicitud para alcanzar el límite de 10.

  • En el primer ImageCriterion, hay 1 valor para MarketplaceProductCodes. Se pueden agregar hasta 49 más a este ImageCriterion para alcanzar el límite de 50.

  • En el segundo ImageCriterion, hay 2 valores para ImageProviders. Se pueden agregar hasta 198 más a este ImageCriterion para alcanzar el límite de 200.

  • En el tercer ImageCriterion, hay 1 valor para ImageNames. Se pueden agregar hasta 49 más a este ImageCriterion para alcanzar el límite de 50.

Operaciones de AMI permitidas

La característica de AMI permitidas tiene tres estados operativos para administrar los criterios de imágenes: habilitada, desactivada y modo auditoría. Con estos es posible habilitar o desactivar los criterios de imágenes, así como revisarlos según sea necesario.

Habilitado

Cuando AMI permitidas se encuentra habilitada:

  • Se aplican los ImageCriteria.

  • Solo se pueden detectar AMI permitidas en la consola de EC2 y por las API que utilizan imágenes (por ejemplo, que describen, copian, almacenan o realizan otras acciones que utilizan imágenes).

  • Las instancias solo se pueden lanzar con las AMI permitidas.

Deshabilitado

Cuando AMI permitidas se encuentra desactivada:

  • No se aplican los ImageCriteria.

  • No se imponen restricciones a la capacidad de detección o uso de las AMI.

Modo de auditoría

En el modo de auditoría:

  • Los ImageCriteria se aplican, pero no se imponen restricciones a la capacidad de detección o uso de las AMI.

  • En la consola de EC2, para cada AMI, el campo Imagen permitida muestra o No para indicar si la AMI se podrá detectar y estará disponible para los usuarios de la cuenta cuando la característica AMI permitidas esté habilitada.

  • En la línea de comandos, la respuesta a la operación describe-image incluye "ImageAllowed": true o "ImageAllowed": false para indicar si la AMI podrá ser detectada y estará disponible para los usuarios de la cuenta cuando si la característica AMI permitidas está habilitada.

  • En la consola de EC2, el catálogo de AMI muestra No permitida junto a las AMI que no podrán detectar los usuarios de la cuenta y no estarán disponibles para ellos cuando la característica AMI permitidas esté habilitada.

Prácticas recomendadas para implementar la característica AMI permitidas

Al implementar AMI permitidas, tenga en cuenta estas prácticas recomendadas para garantizar una transición fluida y minimizar las posibles interrupciones en el entorno de AWS.

  1. Cómo habilitar el modo de auditoría

    Comience por habilitar la característica AMI permitidas en el modo de auditoría. Este estado permite ver qué AMI se verían afectadas por los criterios sin restringir realmente el acceso, lo que proporciona un período de evaluación sin riesgos.

  2. Establezca los criterios de AMI permitidas

    Establezca cuidadosamente qué proveedores de AMI se alinean con las políticas de seguridad, los requisitos de cumplimiento y las necesidades operativas de la organización.

    nota

    Cuando utilice servicios administrados de AWS como Amazon ECS o Amazon EKS, le recomendamos que especifique el alias amazon para permitir las AMI creadas por AWS. Estos servicios dependen de las AMI publicadas por Amazon para ejecutar instancias.

    Tenga cuidado cuando establezca restricciones de CreationDateCondition para cualquier AMI. Establecer condiciones de fecha demasiado restrictivas (por ejemplo, las AMI deben tener menos de 5 días de antigüedad) puede provocar errores en la ejecución de las instancias si las AMI, ya sean de AWS o de otros proveedores, no se actualizan en el plazo especificado.

    Recomendamos combinar ImageNames con ImageProviders para mejorar el control y la especificidad. Es posible que el uso de ImageNames por sí solo no identifique exclusivamente una AMI.

  3. Compruebe el impacto en los procesos empresariales esperados

    Puede usar la consola o la CLI para identificar cualquier instancia que se haya lanzado con AMI que no cumplan los criterios especificados. Esta información puede fundamentar su decisión para determinar si actualizar las configuraciones de lanzamiento para usar AMI compatibles (por ejemplo, especificar una AMI diferente en una plantilla de lanzamiento) o ajustar los criterios para permitir estas AMI.

    Consola: utilice la regla de AWS Config ec2-instance-launched-with-allowed-ami para comprobar si las instancias en ejecución o detenidas se lanzaron con AMI que cumplen los criterios de las AMI permitidas. La regla es NON_COMPLIANT si una AMI no cumple los criterios de las AMI permitidas y COMPLIANT si los cumple. La regla solo funciona cuando la configuración de las AMI permitidas está establecida en habilitada o en modo de auditoría.

    CLI: ejecute el comando describe-instance-image-metadata y filtre la respuesta para identificar cualquier instancia que se haya lanzado con AMI que no cumplan los criterios especificados.

    Para obtener instrucciones sobre la consola y la CLI, consulte Búsqueda de instancias lanzadas desde AMI no permitidas.

  4. Cómo habilitar AMI permitidas

    Una vez que haya confirmado que los criterios no afectarán negativamente a los procesos empresariales esperados, habilite AMI permitidas.

  5. Supervise los lanzamientos de instancias

    Continue con la supervisión de los lanzamientos de instancias desde AMI en las aplicaciones y los servicios administrados por AWS que utilice, como Amazon EMR, Amazon ECR, Amazon EKS y AWS Elastic Beanstalk. Compruebe si hay algún problema inesperado y realice los ajustes necesarios en los criterios de la característica AMI permitidas.

  6. Prueba piloto de AMI nuevas

    Para probar las AMI de terceros que no cumplan con la configuración actual de las AMI permitidas, AWS sugiere los siguientes métodos:

    • Utilice una Cuenta de AWS distinta: cree una cuenta que no tenga acceso a los recursos fundamentales para la empresa. Asegúrese de que la configuración de las AMI permitidas no esté habilitada en esta cuenta o de que las AMI que desee probar estén permitidas de forma explícita para poder probarlas.

    • Realice la prueba en otra Región de AWS: utilice una región en la que estén disponibles las AMI de terceros, pero en la que aún no haya habilitado la configuración de las AMI permitidas.

    Estos métodos ayudan a garantizar la seguridad de los recursos fundamentales para la empresa mientras se prueban las nuevas AMI.

Permisos de IAM necesarios

Para utilizar la característica AMI permitidas, necesitará los siguientes permisos de IAM:

  • GetAllowedImagesSettings

  • EnableAllowedImagesSettings

  • DisableAllowedImagesSettings

  • ReplaceImageCriteriaInAllowedImagesSettings