Utilización de extensiones públicas de terceros del registro de CloudFormation - AWS CloudFormation

Utilización de extensiones públicas de terceros del registro de CloudFormation

Para utilizar una extensión pública de terceros en su plantilla, antes debe activar la extensión para la cuenta y región en la que desea utilizarla. Al activar una extensión, esta se podrá utilizar en operaciones de pila en la cuenta y la región en la que se active.

Cuando se activa una extensión pública de terceros, CloudFormation crea una entrada en el registro de extensiones de su cuenta para la extensión activada como una extensión privada. Esto le permite establecer cualquier propiedad de configuración que incluya la extensión. Las propiedades de configuración definen cómo se configura la extensión para una Cuenta de AWS y región determinadas.

Además de establecer las propiedades de configuración, también puede personalizar la extensión de las siguientes maneras:

  • Especifique el rol de ejecución que CloudFormation utiliza para activar la extensión, además de configurar el registro para la extensión.

  • Especifique si la extensión se actualiza automáticamente cuando esté disponible una nueva versión secundaria o de parche.

  • Especifique un alias para usar en lugar del nombre de la extensión pública de terceros. Esto puede ayudar a evitar colisiones de nombres entre extensiones de terceros.

Configure un rol de ejecución con permisos de IAM y una política de confianza para el acceso a las extensiones públicas

Al activar una extensión pública desde el registro de CloudFormation, puede proporcionar un rol de ejecución que otorgue a CloudFormation los permisos necesarios para invocar esa extensión en su Cuenta de AWS y en su región.

Los permisos necesarios para el rol de ejecución se definen en la sección del controlador del esquema de extensión. Debe crear una política de IAM que conceda los permisos específicos que necesita la extensión y adjuntarla al rol de ejecución.

Además de la política de permisos, el rol de ejecución también necesitará tener una política de confianza que permita a CloudFormation asumir el rol. Siga las instrucciones sobre cómo crear un rol mediante políticas de confianza personalizadas de la Guía del usuario de IAM para crear un rol con una política de confianza personalizada.

Relación de confianza

A continuación se muestra un ejemplo de políticas de confianza que puede utilizar.

De forma opcional, puede restringir el alcance del permiso para evitar que se produzcan errores confusos entre servicios mediante el uso de una o más claves de contexto de condiciones globales en el campo Condition. Para obtener más información, consulte Prevención de la sustitución confusa entre servicios.

  • Configure el valor aws:SourceAccount en el ID de su cuenta.

  • Establezca el valor aws:SourceArn en el ARN de su extensión.

Política de confianza de ejemplo 1

A continuación, se muestra un ejemplo de política de confianza de rol de IAM para la extensión del tipo de recurso.

{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Principal":{ "Service": "resources.cloudformation.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-west-2:123456789012:type/resource/Organization-Service-Resource/*" } } } ] }
Política de confianza de ejemplo 2

A continuación, se muestra un ejemplo de política de confianza de rol de IAM para una extensión de enlace.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal": { "Service": [ "resources.cloudformation.amazonaws.com", "hooks.cloudformation.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook/*" } } } ] }

Utilice automáticamente nuevas versiones de extensiones

Cuando se activa una extensión, también puede especificar el tipo de extensión para utilizar la versión secundaria más reciente. El tipo de extensión actualiza la versión secundaria siempre que el editor publique una nueva versión en la extensión activada.

Por ejemplo, la próxima vez que lleve a cabo una operación de pila, como crear o actualizar una pila, con una plantilla que incluya esa extensión, CloudFormation utilizará la nueva versión secundaria.

La actualización a una nueva versión de extensión, ya sea de forma automática o manual, no afecta a ninguna instancia de extensión que ya esté aprovisionada en pilas.

CloudFormation considera que las actualizaciones de versiones principales de las extensiones pueden contener cambios importantes y, por lo tanto, requiere que actualice manualmente a una nueva versión principal de una extensión.

Las extensiones publicadas por AWS están activadas de forma predeterminada para todas las cuentas y regiones en las que están disponibles y siempre utilizan la última versión disponible en cada Región de AWS.

importante

Dado que usted controla si las extensiones se actualizan a la última versión en su cuenta y cuándo, puede acabar con diferentes versiones de la misma extensión implementadas en diferentes cuentas y regiones.

Esto podría dar lugar a resultados inesperados al usar la misma plantilla, que contiene esa extensión, en esas cuentas y regiones.

Utilización de alias para hacer referencia a extensiones

No puede activar más de una extensión con un nombre de pila en una Cuenta de AWS y región determinadas. Dado que diferentes editores pueden ofrecer extensiones públicas con el mismo nombre de extensión, CloudFormation le permite especificar un alias para cualquier extensión pública de terceros que active.

Si especifica un alias para la extensión, CloudFormation trata el alias como el nombre del tipo de extensión dentro de la cuenta y la región. Debe usar el alias para hacer referencia a la extensión en las plantillas, las llamadas a la API y la consola de CloudFormation.

Los alias de extensión tienen que ser únicos en una cuenta y región determinadas. Puede activar el mismo recurso público varias veces en la misma cuenta y región, mediante alias de nombres de tipos diferentes.

importante

Si bien los alias de extensión solo deben ser únicos en una cuenta y región determinadas, recomendamos encarecidamente a los usuarios no asignar el mismo alias a diferentes extensiones públicas de terceros en todas las cuentas y regiones. Esto podría generar resultados inesperados al usar una plantilla que contenga el alias de extensión en varias cuentas o regiones.

Comandos de la AWS CLI de uso común para trabajar con extensiones públicas

Los comandos comúnmente utilizados para trabajar con extensiones públicas incluyen:

  • activate-type activar un módulo o un tipo de recurso público de terceros en su cuenta.

  • set-type-configuration para especificar los datos de configuración de la extensión en su cuenta y para deshabilitar y habilitar enlaces.

  • list-types para enumerar las extensiones en su cuenta.

  • describe-type para devolver información detallada sobre una extensión específica o una versión de extensión específica, incluidos los datos de configuración actuales.

  • set-type-default-version para especificar qué versión de una extensión es la versión predeterminada.

  • deactivate-type desactivar un módulo o tipo de recurso público de terceros que se activó anteriormente en su cuenta.