

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Explicación: cómo utilizar la sincronización de datos de recursos para agregar datos de inventario
<a name="inventory-resource-data-sync"></a>

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 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](#inventory-resource-data-sync). 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](systems-manager-inventory-query.md).

**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](https://docs.aws.amazon.com/kms/latest/developerguide/).

**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 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](inventory-collection.md) o [Uso de la AWS CLI para configurar la recopilación de datos de inventario](inventory-collection-cli.md).
+ (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-GlueServiceRoleForSSM` para el cifrado de AWS KMS. Si no configura su cuenta de IAM y este rol, Systems Manager muestra `Cannot load Glue tables` cuando 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](systems-manager-inventory-query.md#systems-manager-inventory-query-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.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "ssm-access-policy",
      "Statement": [
          {
              "Sid": "ssm-access-policy-statement",
              "Action": [
                  "kms:GenerateDataKey"
              ],
              "Effect": "Allow",
              "Principal": {
                  "Service": "ssm.amazonaws.com"
              },
              "Resource": "arn:aws:kms:us-east-1:123456789012:key/KMS_key_id",
              "Condition": {
                  "StringLike": {
                      "aws:SourceAccount": "123456789012"
                  },
                  "ArnLike": {
                      "aws:SourceArn": "arn:aws:ssm:*:123456789012:resource-data-sync/*"
                  }
              }
          }
      ]
  }
  ```

------

**Cómo crear una sincronización de datos de recursos para Inventory**

1. Abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3](https://console.aws.amazon.com/s3/).

1. Cree un bucket para almacenar los datos de inventario agregados. Para obtener más información, consulte [Creación de un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) 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ó.

1. Después de crear el bucket, seleccione la pestaña **Permisos** y, a continuación, elija **Política de bucket**.

1. Copie y pegue la siguiente política de bucket en el editor de políticas. Reemplace amzn-s3-demo-bucket y *account-id* por 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, reemplace *bucket-prefix* por el nombre de un prefijo de Amazon S3 (subdirectorio). Si no ha creado un prefijo, quite *bucket-prefix/* del ARN de la política. 

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": " SSMBucketDelivery",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "s3:PutObject",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/bucket-prefix/*/accountid=111122223333/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "s3:x-amz-acl": "bucket-owner-full-control",
                       "aws:SourceAccount": [
                           "111122223333",
                           "444455556666",
                           "123456789012",
                           "777788889999"
                       ]
                   },
                   "ArnLike": {
                       "aws:SourceArn": [
                           "arn:aws:ssm:*:111122223333:resource-data-sync/*",
                           "arn:aws:ssm:*:444455556666:resource-data-sync/*",
                           "arn:aws:ssm:*:123456789012:resource-data-sync/*",
                           "arn:aws:ssm:*:777788889999:resource-data-sync/*"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. (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"
           }
   ```

1. 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](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. (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 placeholder* con su propia información.

------
#### [ Linux & macOS ]

   ```
   aws s3 cp ./A_file_in_the_bucket s3://amzn-s3-demo-bucket/prefix/ \
   --sse aws:kms \
   --sse-kms-key-id "arn:aws:kms:region:account_ID:key/KMS_key_id" \
   --region region, for example, us-east-2
   ```

------
#### [ Windows ]

   ```
   aws s3 cp ./A_file_in_the_bucket s3://amzn-s3-demo-bucket/prefix/ ^ 
       --sse aws:kms ^
       --sse-kms-key-id "arn:aws:kms:region:account_ID:key/KMS_key_id" ^
       --region region, for example, us-east-2
   ```

------

1. 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](https://aws.amazon.com/s3/pricing/).

------
#### [ Linux & macOS ]

   ```
   aws ssm create-resource-data-sync \
   --sync-name a_name \
   --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=prefix_name, if_specified,SyncFormat=JsonSerDe,Region=bucket_region"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-resource-data-sync ^
   --sync-name a_name ^
   --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=prefix_name, if_specified,SyncFormat=JsonSerDe,Region=bucket_region"
   ```

------

   Puede utilizar el parámetro `region` para 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.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-resource-data-sync \
       --sync-name InventoryDataWest \
       --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=HybridEnv,SyncFormat=JsonSerDe,Region=us-west-2" 
       --region us-west-1
   ```

------
#### [ Windows ]

   ```
   aws ssm create-resource-data-sync ^ 
   --sync-name InventoryDataWest ^
   --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=HybridEnv,SyncFormat=JsonSerDe,Region=us-west-2" ^ --region us-west-1
   ```

------

   (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.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-resource-data-sync \
   --sync-name sync_name \
   --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=prefix_name, if_specified,SyncFormat=JsonSerDe,AWSKMSKeyARN=arn:aws:kms:region:account_ID:key/KMS_key_ID,Region=bucket_region" \
   --region region
   ```

------
#### [ Windows ]

   ```
   aws ssm create-resource-data-sync ^
   --sync-name sync_name ^
   --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=prefix_name, if_specified,SyncFormat=JsonSerDe,AWSKMSKeyARN=arn:aws:kms:region:account_ID:key/KMS_key_ID,Region=bucket_region" ^
   --region region
   ```

------

1. Ejecute el siguiente comando para ver el estado de la configuración de la sincronización. 

   ```
   aws ssm list-resource-data-sync 
   ```

   Si ha creado la configuración de la sincronización en una región distinta, debe especificar el parámetro `region` tal y como se muestra en el siguiente ejemplo.

   ```
   aws ssm list-resource-data-sync --region us-west-1
   ```

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?](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) y [Uso de datos](https://docs.aws.amazon.com/athena/latest/ug/work-with-data.html) en la *Guía del usuario de Amazon Athena*.

**Cómo ver y consultar los datos en Amazon Athena**

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home).

1. Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija **Ejecutar consulta**.

   ```
   CREATE DATABASE ssminventory
   ```

   El sistema crea una base de datos denominada ssminventory.

1. 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\$1prefix* por 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/'
   ```

1. Copie y pegue la siguiente instrucción en el editor de consultas y, a continuación, elija **Ejecutar consulta**.

   ```
   MSCK REPAIR TABLE ssminventory.AWS_Application
   ```

   El 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.

1. Para realizar una vista previa de los datos, elija el icono de visualización que aparece junto a la tabla `AWS_Application`.  
![\[Icono de vista previa de datos en Amazon Athena.\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/images/sysman-inventory-resource-data-sync-walk.png)

1. 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 desc
   ```

   La 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.

1. Copie y pegue una por una las siguientes instrucciones en el editor de consultas, reemplace amzn-s3-demo-bucket y *bucket-prefix* por 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_AWSComponent
   ```

   ```
   CREATE 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_WindowsUpdate
   ```

   ```
   CREATE 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_InstanceInformation
   ```

   ```
   CREATE 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_Network
   ```

   ```
   CREATE 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**

En la siguiente sección se proporciona información general con enlaces para crear una visualización en Amazon Quick.

**Cómo crear una visualización en Amazon Quick**

1. Regístrese en [Amazon Quick](https://quicksight.aws/) y, a continuación, inicie sesión en la consola de Quick.

1. Cree un conjunto de datos a partir de la tabla `AWS_Application` y de cualquier otra tabla que haya creado. Para obtener más información, consulte [Creación de un conjunto de datos con datos de Amazon Athena](https://docs.aws.amazon.com/quicksuite/latest/userguide/create-a-data-set-athena.html) en la *Guía del usuario de Amazon Quick*.

1. Combine las tablas. Por ejemplo, puede combinar la columna `instanceid` de `AWS_InstanceInformation` porque coincide con la columna `resourceid` en otras tablas de inventario. Para obtener más información sobre cómo unir tablas, consulte [Unión de datos](https://docs.aws.amazon.com/quicksuite/latest/userguide/joining-data.html) en la *Guía del usuario de Amazon Quick*.

1. Cree una visualización. Para obtener más información, consulte [Análisis e informes: visualización de datos en Amazon Quick Sight](https://docs.aws.amazon.com/quicksuite/latest/userguide/working-with-visuals.html) en la *Guía del usuario de Amazon Quick*.