Administración de extensiones a través del registro de CloudFormation
El registro de AWS CloudFormation sirve como centro neurálgico para administrar las extensiones que pueden integrarse en las plantillas de CloudFormation en su Cuenta de AWS. Las extensiones incluyen tipos de recursos, módulos y enlaces de AWS y publicadores de terceros, así como sus propias extensiones personalizadas. El registro facilita la detección y el aprovisionamiento de extensiones en sus plantillas de CloudFormation de la misma manera que usa recursos aprovisionados por AWS.
En esta sección se describe el uso del registro de CloudFormation para administrar las extensiones en su cuenta, incluidas las siguientes:
-
Visualización de las extensiones disponibles y activadas
-
Registro de extensiones privadas
-
Activación de extensiones públicas
Antes de empezar
En los temas siguientes se explican conceptos previos que es importante conocer cuando se trabaja con extensiones:
Extensiones públicas y privadas
Los tipos de extensión se registran como públicos o privados. Actualmente, el registro ofrece los siguientes tipos de extensiones:
-
Resource types (Tipos de recurso): modele y aprovisione la lógica personalizada como un recurso, utilizando pilas en CloudFormation.
-
Modules (Módulos): empaquete configuraciones de recursos para su inclusión en plantillas de pila, de forma transparente, administrable y repetible.
-
Hooks (Enlaces): inspeccione de forma proactiva la configuración de sus recursos de AWS antes del aprovisionamiento.
Tipos de extensiones públicas
Las extensiones públicas son las que se publican públicamente en el registro para que las utilicen todos los usuarios de CloudFormation. Esto incluye las extensiones publicadas por AWS y editores de extensión externos.
Existen dos tipos de extensiones públicas:
-
Extensiones públicas de AWS: las extensiones publicadas por AWS son siempre públicas y están habilitadas de forma predeterminada, por lo que no tiene que hacer ninguna acción antes de utilizarlas en la cuenta. Además, AWS controla el control de versiones de la extensión, por lo que siempre se utiliza la última versión disponible.
-
Extensiones de terceros: son extensiones que están disponibles para uso general por editores distintos de AWS.
Para obtener más información, consulte Using public extensions (Uso de extensiones públicas).
Tipos de extensiones privadas
Las extensiones privadas son aquellas extensiones de terceros que ha activado explícitamente para su uso en Cuenta de AWS.
Existen dos tipos de extensiones privadas:
-
Extensiones privadas activadas: son copias locales de extensiones de terceros que ha activado para su cuenta y región. Cuando activa una extensión pública de terceros, CloudFormation crea una copia local de esa extensión en el registro de su cuenta.
-
Extensiones privadas registradas: también puede activar extensiones privadas que no se muestran en el registro público de CloudFormation. Estas pueden ser extensiones que haya creado usted o las que se le hayan compartido a través de la organización u otro tercero. Para utilizar dicha extensión privada en la cuenta, primero debe registrarla. Al registrar la extensión, se carga una copia de la extensión en el registro de CloudFormation de su cuenta y se activa.
Para obtener más información, consulte Using private extensions (Uso de extensiones privadas).
Visualización de las extensiones disponibles y activadas en el registro de CloudFormation
Visualización de las extensiones disponibles y activadas
Inicie sesión en la AWS Management Console y abra la consola de AWS CloudFormation en https://console.aws.amazon.com/cloudformation
. -
En el panel de navegación de CloudFormation, en Registry (Registro), seleccione la categoría de extensión que quiere ver:
-
Public extensions (Extensiones públicas) muestra las extensiones públicas disponibles en su cuenta.
-
Elija el tipo de extensión: Resource types (Tipos de recurso), Modules (Módulos) o Hooks (Enlaces).
-
Elija su editor: AWS o Third party (Terceros).
-
Use las opciones Filter (Filtrar) para seleccionar las extensiones que se van a ver.
-
-
Activated extensions (Extensiones activadas) muestra las extensiones públicas y privadas activadas en su cuenta.
-
Elija el tipo de extensión: Resource types (Tipos de recurso), Modules (Módulos) o Hooks (Enlaces).
-
Use el menú desplegable Filter (Filtrar) para seleccionar las extensiones que se van a ver.
-
AWS: muestra las extensiones publicadas por AWS. Las extensiones publicadas por AWS están activadas de forma predeterminada.
-
Third-party (Terceros): enumera las extensiones públicas de los editores distintos de AWS que ha activado en esta cuenta.
-
Registered (Registradas): muestra cualquier extensión privada que haya activado en esta cuenta.
-
-
-
Publisher (Editor): muestra cualquier extensión pública que haya publicado en esta cuenta. Para obtener más información, consulte Publishing extensions (Extensiones de publicación) en la Guía del usuario para el desarrollo de extensiones.
-
-
Busque o seleccione el nombre de la extensión para ver los detalles de la extensión.
Registro de tipos de recursos en AWS Config
Puede especificar que AWS Config realice un seguimiento automático de los tipos de recursos privados y registre los cambios en dichos recursos como elementos de configuración. Esto le permite ver el historial de configuración de estos tipos de recursos privados, así como escribir reglas de Reglas de AWS Config para verificar las prácticas recomendadas de configuración. Se requiere AWS Config para la extensión de enlace.
Para que AWS Config realice un seguimiento automático de los tipos de recursos privados:
-
Administre los recursos a través de CloudFormation. Esto incluye la realización de todas las operaciones de creación, actualización y eliminación de recursos a través de CloudFormation.
nota
Si utiliza un rol de IAM para realizar las operaciones de pila, ese rol de IAM debe tener permiso para llamar a las siguientes acciones de AWS Config:
-
Configure AWS Config para registrar todos los tipos de recursos. Para obtener más información, consulte Registro de configuraciones para recursos de terceros en la Guía para desarrolladores de AWS Config.
nota
AWS Config no admite la grabación de recursos privados que contienen propiedades definidas como obligatorias y de solo escritura.
Por diseño, las propiedades de recurso definidas como solo escritura no se devuelven en el esquema utilizado para crear el elemento de configuración AWS Config. Debido a esto, si se incluye una propiedad definida como solo escritura y obligatoria, se producirá un error en la creación del elemento de configuración, ya que no se presentará una propiedad obligatoria. Para ver el esquema que se utilizará para crear el elemento de configuración, puede revisar la propiedad
schema
de la acción DescribeType.
Para obtener más información sobre los elementos de configuración, consulte Configuration items (Elementos de configuración) en la Guía para desarrolladores de AWS Config.
Impedir que se registren propiedades confidenciales en un elemento de configuración
El tipo de recurso puede contener propiedades que considere información confidencial, como contraseñas, secretos u otros datos confidenciales, que no desea que se registren como parte del elemento de configuración. Para evitar que se registre una propiedad en el elemento de configuración, puede incluir esa propiedad en la lista writeOnlyproperties
del esquema de tipo de recurso. El usuario puede especificar las propiedades de recurso mostradas como writeOnlyproperties
, pero no se devolverán por una solicitud read
ni list
.
Para obtener más información, consulte Esquema del proveedor de recursos en la Guía del usuario de la interfaz de línea de comandos de CloudFormation.
Prevención del suplente confuso
El problema de la sustitución confusa es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. En AWS, la suplantación entre servicios puede dar lugar al problema de la sustitución confusa. La suplantación entre servicios puede producirse cuando un servicio (el servicio que lleva a cabo las llamadas) llama a otro servicio (el servicio al que se llama). El servicio que lleva a cabo las llamadas se puede manipular para utilizar sus permisos a fin de actuar en función de los recursos de otro cliente de una manera en la que no debe tener permiso para acceder. Para evitarlo, AWS proporciona herramientas que le ayudan a proteger sus datos para todos los servicios con entidades principales de servicio a las que se les ha dado acceso a los recursos de su cuenta.
Se recomienda utilizar las claves de contexto de condición global aws:SourceArn
y aws:SourceAccount
en las políticas de recursos para limitar los permisos que AWS CloudFormation concede a otro servicio para la extensión. Si el valor de aws:SourceArn
no contiene el ID de cuenta, como un nombre de recurso de Amazon (ARN) de bucket de Amazon S3, debe utilizar ambas claves de contexto de condición global para limitar los permisos. Si utiliza claves de contexto de condición global y el valor de aws:SourceArn
contiene el ID de cuenta, el valor de aws:SourceAccount
y la cuenta en el valor de aws:SourceArn
deben utilizar el mismo ID de cuenta cuando se utiliza en la misma instrucción de política. Utilice aws:SourceArn
si desea que solo se asocie un recurso al acceso entre servicios. Utilice aws:SourceAccount
si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.
El valor aws:SourceArn
debe usar el ARN de la extensión.
La forma más eficaz de protegerse contra el problema de la sustitución confusa es utilizar la clave de contexto de condición global de aws:SourceArn
con el ARN completo del recurso. Si no conoce el ARN completo de la extensión o si está especificando varias extensiones, utilice la clave de condición de contexto global de aws:SourceArn
con comodines (*
) para las partes desconocidas del ARN. Por ejemplo, arn:aws:
.cloudformation
:*:123456789012
:*
nota
Para los servicios de registro, CloudFormation hace llamadas a AWS Security Token Service (AWS STS) para asumir un rol en su cuenta. Este rol está configurado para ExecutionRoleArn
en la operación RegisterType
y el conjunto LogRoleArn
en la operación LoggingConfig
.
El siguiente ejemplo muestra cómo se pueden utilizar las claves contextuales de condición global aws:SourceArn
y aws:SourceAccount
en AWS CloudFormation para evitar el problema del adjunto confundido.
{ "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-east-1:123456789012
:type/resource/Organization-Service-Resource/*" } } } ] }