Adición de recursos de terceros a AWS Config - AWS Config

Adición de recursos de terceros a AWS Config

Siga estos pasos para añadir un recurso de terceros a AWS Config.

Paso 1: Configure el entorno de desarrollo

Instale y configure la AWS CLI de CloudFormation. La AWS CLI le permite modelar y registrar sus recursos personalizados. Para obtener más información, consulte Recursos personalizados y What Is the CloudFormation Command Line Interface?.

Paso 2: Modele su recurso

Cree un esquema de proveedor de recursos que cumpla y valide la configuración del tipo de recurso.

  1. Utilice el comando init para crear el proyecto de proveedor de recursos y generar los archivos necesarios.

    $ cfn init Initializing new project
  2. El comando init inicia un asistente que le guía por la configuración del proyecto, incluida la especificación del nombre del recurso. En este tutorial, especifique MyCustomNamespace::Testing::WordPress.

    Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
  3. Especifique el nombre de paquete del recurso.

    Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress Initialized a new project in /workplace/user/custom-testing-wordpress
    nota

    Para garantizar que cualquier dependencia del proyecto se resuelva correctamente, puede importar el proyecto generado a su IDE con ayuda de Maven.

    Por ejemplo, si utiliza el esquema IntelliJ IDEA, debe hacer lo siguiente:

    • En el menú Archivo, elija Nuevo y, a continuación, Proyecto de orígenes existentes.

    • Navegue hasta el directorio del proyecto.

    • En el cuadro de diálogo Importar proyecto, elija Importar proyecto desde un modelo externo y, a continuación, elija Maven.

    • Seleccione Siguiente y acepte los valores predeterminados para completar la importación del proyecto.

  4. Abra el archivo mycustomnamespace-testing-wordpress.json que contiene el esquema del recurso. Copie y pegue el siguiente esquema en mycustomnamespace-testing-wordpress.json.

    { "typeName": "MyCustomNamespace::Testing::WordPress", "description": "An example resource that creates a website based on WordPress 5.2.2.", "properties": { "Name": { "description": "A name associated with the website.", "type": "string", "pattern": "^[a-zA-Z0-9]{1,219}\\Z", "minLength": 1, "maxLength": 219 }, "SubnetId": { "description": "A subnet in which to host the website.", "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z", "type": "string" }, "InstanceId": { "description": "The ID of the instance that backs the WordPress site.", "type": "string" }, "PublicIp": { "description": "The public IP for the WordPress site.", "type": "string" } }, "required": [ "Name", "SubnetId" ], "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ], "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ], "additionalProperties": false }
  5. Valide el esquema.

    $ cfn validate
  6. Actualice los archivos generados automáticamente en el paquete del proveedor de recursos para ver las actualizaciones del esquema del proveedor de recursos. Después de iniciar el proyecto de proveedor de recursos, la AWS CLI genera código y archivos auxiliares para este proveedor. Vuelva a generar el código para ver el esquema actualizado.

    $ cfn generate
    nota

    Al usar Maven, el comando generate se ejecuta automáticamente antes de compilar el código como parte del proceso de compilación. Por lo tanto, sus cambios nunca se desincronizarán con el código generado.

    Tenga en cuenta que la CLI de CloudFormation debe estar en una ubicación que Maven o el sistema puedan encontrar. Para obtener más información, consulte Setting up your environment for developing extensions.

Para obtener más información sobre todo el proceso, consulte Modeling Resource Providers for Use in CloudFormation.

Paso 3: Genere artefactos

Ejecute el siguiente comando para generar artefactos para cfn submit.

$ mvn package

Paso 4: Registre el recurso

AWS Config no necesita controladores de proveedores de recursos para realizar el seguimiento de la configuración del recurso. Ejecute el siguiente comando para registrar el recurso.

$ cfn submit

Para obtener más información, consulte Registro de proveedores de recursos para su uso en plantillas de CloudFormation.

Paso 5: Publique la configuración del recurso

Determine la configuración de MyCustomNamespace::Testing::WordPress.

{ "Name": "MyWordPressSite", "SubnetId": "subnet-abcd0123", "InstanceId": "i-01234567", "PublicIp": "my-wordpress-site.com" }

Determine el ID de versión del esquema a partir del objeto CloudFormation de DescribeType.

En AWS Config, compruebe si se acepta esta configuración de recurso. Para evaluar la conformidad, puede escribir reglas de AWS Config utilizando este recurso.

(Opcional) Para automatizar el registro de la configuración, implemente recopiladores de configuración periódicos o basados en cambios.