Adición de recursos de terceros a AWS Config
Siga estos pasos para añadir un recurso de terceros a AWS Config.
Temas
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.
-
Utilice el comando
initpara crear el proyecto de proveedor de recursos y generar los archivos necesarios.$ cfn init Initializing new project -
El comando
initinicia un asistente que le guía por la configuración del proyecto, incluida la especificación del nombre del recurso. En este tutorial, especifiqueMyCustomNamespace::Testing::WordPress.Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress -
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-wordpressnota
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.
-
-
Abra el archivo
mycustomnamespace-testing-wordpress.jsonque contiene el esquema del recurso. Copie y pegue el siguiente esquema enmycustomnamespace-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 } -
Valide el esquema.
$ cfn validate -
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 generatenota
Al usar Maven, el comando
generatese 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.