Explicación: cómo utilizar la sincronización de datos de recursos para agregar datos de inventario
La siguiente explicación describe cómo crear una configuración de sincronización de datos de recursos para AWS Systems Manager Inventory con la AWS Command Line Interface (AWS CLI). Una sincronización de datos de recursos transfiere automáticamente los datos de inventario de todos los nodos administrados a un bucket de Amazon Simple Storage Service (Amazon S3) central. La sincronización actualiza automáticamente los datos del bucket de Amazon S3 central siempre que se detectan nuevos datos de inventario.
En esta explicación también se describe cómo utilizar Amazon Athena y Amazon Quick Suite para consultar y analizar los datos agregados. Para obtener información acerca de cómo crear una sincronización de datos de recursos mediante Systems Manager en la Consola de administración de AWS, consulte Explicación: cómo utilizar la sincronización de datos de recursos para agregar datos de inventario. Para obtener información sobre la consulta de inventario desde varias Regiones de AWS y cuentas mediante Systems Manager en la Consola de administración de AWS, consulte Consulta de datos de Inventory de varias regiones y cuentas.
nota
Este tutorial incluye información sobre cómo cifrar la sincronización mediante AWS Key Management Service (AWS KMS). Inventory no recopila los datos privados, específicos del usuario ni información confidencial, por lo que el cifrado es opcional. Para obtener más información acerca de AWS KMS, consulte Guía para desarrolladores de AWS Key Management Service.
Antes de empezar
Revise o complete las siguientes tareas antes de comenzar la explicación en esta sección:
-
Recopile datos de inventario de los nodos administrados. A efectos de las secciones de Amazon Athena y Amazon Quick Suite en esta explicación, se recomienda que recopile los datos de la aplicación. Para obtener más información acerca de cómo se recopilan los datos de inventario, consulte Configuración de la recopilación de inventario o Uso de la AWS CLI para configurar la recopilación de datos de inventario.
-
(Opcional) Si los datos de inventario se almacenan en un bucket de Amazon Simple Storage Service (Amazon S3) que utiliza el cifrado de AWS Key Management Service (AWS KMS), también configure la cuenta de IAM y el rol de servicio de
Amazon-GlueServiceRoleForSSMpara el cifrado de AWS KMS. Si no configura su cuenta de IAM y este rol, Systems Manager muestraCannot load Glue tablescuando elige la pestaña Vista detallada en la consola. Para obtener más información, consulte (Opcional) Configuración de permisos para ver datos cifrados de AWS KMS. -
(Opcional) Si desea cifrar la sincronización de datos de recursos mediante AWS KMS, cree una clave nueva que incluya la siguiente política o actualice una clave existente y agréguele esta política.
Cómo crear una sincronización de datos de recursos para Inventory
Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3
. -
Cree un bucket para almacenar los datos de inventario agregados. Para obtener más información, consulte Creación de un bucket en la Guía del usuario de Amazon Simple Storage Service. Anote el nombre de bucket y la Región de AWS donde lo creó.
-
Después de crear el bucket, seleccione la pestaña Permisos y, a continuación, elija Política de bucket.
-
Copie y pegue la siguiente política de bucket en el editor de políticas. Reemplace amzn-s3-demo-bucket y
account-idpor el nombre del bucket de Amazon S3 que ha creado y un ID de Cuenta de AWS válido. Al agregar varias cuentas, agrega una cadena de condición adicional y un ARN para cada cuenta. Elimine los marcadores de posición adicionales del ejemplo al añadir una cuenta. Si lo desea, reemplacebucket-prefixpor el nombre de un prefijo de Amazon S3 (subdirectorio). Si no ha creado un prefijo, quitebucket-prefix/del ARN de la política. -
(Opcional) Si desea cifrar la sincronización, debe agregar las siguientes condiciones a la política del paso anterior. Agréguelas en la sección
StringEquals."s3:x-amz-server-side-encryption":"aws:kms", "s3:x-amz-server-side-encryption-aws-kms-key-id":"arn:aws:kms:region:account_ID:key/KMS_key_ID"A continuación se muestra un ejemplo:
"StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "account-id", "s3:x-amz-server-side-encryption":"aws:kms", "s3:x-amz-server-side-encryption-aws-kms-key-id":"arn:aws:kms:region:account_ID:key/KMS_key_ID" } Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).
Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.
-
(Opcional) Si desea cifrar la sincronización, ejecute el siguiente comando para comprobar que la política del bucket esté implementando el requisito de clave de AWS KMS. Reemplace cada
example resource placeholdercon su propia información. -
Ejecute el siguiente comando para crear una configuración de sincronización de datos de recursos con el bucket de Amazon S3 que ha creado al inicio de este procedimiento. Este comando crea una sincronización de la Región de AWS en la que ha iniciado sesión.
nota
Si la sincronización y el bucket de Amazon S3 de destino se encuentran en regiones diferentes, es posible que esté sujeto a precios de transferencia de datos. Para obtener más información, consulte Precios de Amazon S3
. Puede utilizar el parámetro
regionpara especificar si debe crearse la configuración de la sincronización. En el siguiente ejemplo, los datos de inventario de la región us-west-1 se sincronizarán en el bucket de Amazon S3 en la región us-west-2.(Opcional) Si desea cifrar la sincronización mediante AWS KMS, ejecute el siguiente comando para crear la sincronización. Si cifra la sincronización, la clave de AWS KMS y el bucket de Amazon S3 deben estar en la misma región.
-
Ejecute el siguiente comando para ver el estado de la configuración de la sincronización.
aws ssm list-resource-data-syncSi ha creado la configuración de la sincronización en una región distinta, debe especificar el parámetro
regiontal y como se muestra en el siguiente ejemplo.aws ssm list-resource-data-sync --region us-west-1 -
Después de haber creado correctamente la configuración de la sincronización, examine el bucket de destino en Amazon S3. Los datos de inventario deberían aparecer en unos minutos.
Cómo utilizar los datos en Amazon Athena
En la siguiente sección se describe cómo ver y consultar los datos en Amazon Athena. Antes de comenzar, le recomendamos que conozca Athena. Para obtener más información, consulte ¿Qué es Amazon Athena? y Uso de datos en la Guía del usuario de Amazon Athena.
Cómo ver y consultar los datos en Amazon Athena
Abra la consola de Athena en https://console.aws.amazon.com/athena/
. -
Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija Ejecutar consulta.
CREATE DATABASE ssminventoryEl sistema crea una base de datos denominada ssminventory.
-
Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija Ejecutar consulta. Reemplace amzn-s3-demo-bucket y
bucket_prefixpor el nombre y el prefijo del destino de Amazon S3.CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_Application ( Name string, ResourceId string, ApplicationType string, Publisher string, Version string, InstalledTime string, Architecture string, URL string, Summary string, PackageId string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket_prefix/AWS:Application/' -
Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija Ejecutar consulta.
MSCK REPAIR TABLE ssminventory.AWS_ApplicationEl sistema particiona la tabla.
nota
Si crea sincronizaciones de datos de recursos de otras Regiones de AWS o Cuentas de AWS, deberá ejecutar este comando de nuevo para actualizar las particiones. Es posible que también deba actualizar la política del bucket de Amazon S3.
-
Para realizar una vista previa de los datos, elija el icono de visualización que aparece junto a la tabla
AWS_Application.
-
Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija Ejecutar consulta.
SELECT a.name, a.version, count( a.version) frequency from aws_application a where a.name = 'aws-cfn-bootstrap' group by a.name, a.version order by frequency descLa consulta regresa un recuento de diferentes versiones de
aws-cfn-bootstrap, que es una aplicación de AWS presente en instancias de Amazon Elastic Compute Cloud (Amazon EC2) para Linux, macOS y Windows Server. -
Copie y pegue una por una las siguientes instrucciones en el editor de consultas, reemplace amzn-s3-demo-bucket y
bucket-prefixpor los datos de Amazon S3 y, a continuación, seleccione Ejecutar consulta. Estas instrucciones configuran otras tablas de inventario en Athena.CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_AWSComponent ( `ResourceId` string, `Name` string, `ApplicationType` string, `Publisher` string, `Version` string, `InstalledTime` string, `Architecture` string, `URL` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket-prefix/AWS:AWSComponent/'MSCK REPAIR TABLE ssminventory.AWS_AWSComponentCREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_WindowsUpdate ( `ResourceId` string, `HotFixId` string, `Description` string, `InstalledTime` string, `InstalledBy` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket-prefix/AWS:WindowsUpdate/'MSCK REPAIR TABLE ssminventory.AWS_WindowsUpdateCREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_InstanceInformation ( `AgentType` string, `AgentVersion` string, `ComputerName` string, `IamRole` string, `InstanceId` string, `IpAddress` string, `PlatformName` string, `PlatformType` string, `PlatformVersion` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket-prefix/AWS:InstanceInformation/'MSCK REPAIR TABLE ssminventory.AWS_InstanceInformationCREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_Network ( `ResourceId` string, `Name` string, `SubnetMask` string, `Gateway` string, `DHCPServer` string, `DNSServer` string, `MacAddress` string, `IPV4` string, `IPV6` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket-prefix/AWS:Network/'MSCK REPAIR TABLE ssminventory.AWS_NetworkCREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_PatchSummary ( `ResourceId` string, `PatchGroup` string, `BaselineId` string, `SnapshotId` string, `OwnerInformation` string, `InstalledCount` int, `InstalledOtherCount` int, `NotApplicableCount` int, `MissingCount` int, `FailedCount` int, `OperationType` string, `OperationStartTime` string, `OperationEndTime` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://amzn-s3-demo-bucket/bucket-prefix/AWS:PatchSummary/'MSCK REPAIR TABLE ssminventory.AWS_PatchSummary
Cómo utilizar los datos en Amazon Quick Suite
En la siguiente sección se proporciona información general con enlaces para crear una visualización en Amazon Quick Suite.
Cómo crear una visualización en Amazon Quick Suite
-
Regístrese en Amazon Quick Suite
y, a continuación, inicie sesión en la consola de Quick Suite. -
Cree un conjunto de datos a partir de la tabla
AWS_Applicationy de cualquier otra tabla que haya creado. Para obtener más información, consulte Creating a dataset using Amazon Athena data en la Guía del usuario de Amazon Quick Suite. -
Combine las tablas. Por ejemplo, puede combinar la columna
instanceiddeAWS_InstanceInformationporque coincide con la columnaresourceiden otras tablas de inventario. Para obtener más información sobre cómo unir tablas, consulte Joining data en la Guía del usuario de Amazon Quick Suite. -
Cree una visualización. Para obtener más información, consulte Analyses and reports: Visualizing data in Amazon Quick Sight en la Guía del usuario de Amazon Quick Suite.