Spiegazione passo per passo: utilizzo di sincronizzazione dati risorsa per aggregare dati di inventario - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Spiegazione passo per passo: utilizzo di sincronizzazione dati risorsa per aggregare dati di inventario

La seguente procedura guidata descrive come creare una configurazione Resource Data Sync AWS Systems Manager Inventory per tramite AWS Command Line Interface ()AWS CLI. Una sincronizzazione dati risorsa trasferisce automaticamente i dati di inventario della porta da tutti i nodi gestiti a un bucket Amazon Simple Storage Service (Amazon S3) centralizzato. La sincronizzazione aggiorna automaticamente i dati nel bucket Amazon S3 centralizzato ogni volta che vengono rilevati dati di inventario.

Questa procedura guidata descrive inoltre come utilizzare Amazon Athena e Amazon per eseguire query e QuickSight analisi sui dati aggregati. Per informazioni sulla creazione di un Resource Data Sync tramite Systems Manager in AWS Management Console, consultaSpiegazione passo per passo: utilizzo di sincronizzazione dati risorsa per aggregare dati di inventario. Per informazioni sull'interrogazione dell'inventario da più Regioni AWS e gli account utilizzando Systems Manager in AWS Management Console, consultaEsecuzione di query sui dati di inventario da più regioni e account.

Nota

Questa procedura guidata include informazioni su come crittografare la sincronizzazione utilizzando AWS Key Management Service (AWS KMS). Inventory non raccoglie dati sensibili, proprietari o specifici dell'utente, pertanto la crittografia è facoltativa. Per ulteriori informazioni in merito AWS KMS, vedere la Guida per AWS Key Management Service gli sviluppatori.

Prima di iniziare

Prima di iniziare la spiegazione passo per passo in questa sezione, consulta o completa i processi descritti di seguito.

  • Raccogli dati di inventario dai tuoi nodi gestiti. Per le QuickSight sezioni Amazon Athena e Amazon di questa procedura guidata, ti consigliamo di raccogliere i dati delle applicazioni. Per ulteriori informazioni su come raccogliere i dati di Inventory, consulta Configurazione della raccolta dell'inventario o Utilizzo di AWS CLI per configurare la raccolta dei dati di inventario.

  • (Facoltativo) Se i dati dell'inventario sono archiviati in un bucket Amazon Simple Storage Service (Amazon S3) che AWS Key Management Service utilizza una crittografia AWS KMS(), è inoltre necessario configurare IAM il proprio account e il ruolo di servizio per Amazon-GlueServiceRoleForSSM la crittografia. AWS KMS Se non si configura l'IAMaccount e questo ruolo, Systems Manager viene visualizzato Cannot load Glue tables quando si sceglie l'opzione Detailed View (Visualizzazione dettagliata) nella console. Per ulteriori informazioni, consulta (Opzionale) Configurare le autorizzazioni per la visualizzazione di dati AWS KMS crittografati.

  • (Facoltativo) Per criptare la sincronizzazione dati risorsa utilizzando AWS KMS, è necessario creare una nuova chiave che includa la seguente policy oppure è necessario aggiornare una chiave esistente e aggiungervi questa policy.

    { "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-2:123456789012:key/KMS_key_id", "Condition": { "StringLike": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:123456789012:resource-data-sync/*" } } } ] }
Per creare un Resource Data Sync for Inventory
  1. Apri la console Amazon S3 all'indirizzo. https://console.aws.amazon.com/s3/

  2. Creare un bucket in cui archiviare i dati di inventario aggregati. Per ulteriori informazioni, consulta Create a Bucket (Creazione di un bucket) nella Guida per l'utente di Amazon Simple Storage Service. Prendi nota del nome del bucket e della Regione AWS in cui è stato creato.

  3. Dopo aver creato il bucket, scegliere la scheda Permissions (Autorizzazioni), quindi Bucket Policy (Policy bucket).

  4. Copiare e incollare la policy del bucket seguente nell'editor di policy. Sostituisci amzn-s3-demo-bucket e account-id con il nome del bucket Amazon S3 creato e un ID valido. Account AWS Quando aggiungi più account, aggiungi una stringa di condizioni aggiuntiva e ARN per ogni account. Rimuovi i segnaposto aggiuntivi dall'esempio quando aggiungi un account. Facoltativamente, sostituisci bucket-prefix con il nome di un prefisso Amazon S3 (sottodirectory). Se non hai creato un prefisso, rimuovilo bucket-prefix/ da ARN nella politica.

    { "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=account-id/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "account-id1", "account-id2", "account-id3", "account-id4" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:ssm:*:account-id1:resource-data-sync/*", "arn:aws:ssm:*:account-id2:resource-data-sync/*", "arn:aws:ssm:*:account-id3:resource-data-sync/*", "arn:aws:ssm:*:account-id4:resource-data-sync/*" ] } } } ] }
  5. (Facoltativo) Se desideri crittografare la sincronizzazione, dovrai aggiungere le seguenti condizioni alla policy riportata nel passaggio precedente. Aggiungila nella sezione 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"

    Ecco un esempio:

    "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" }
  6. Se non lo hai ancora fatto, installa e configura AWS Command Line Interface (AWS CLI).

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  7. (Facoltativo) Per criptare la sincronizzazione, eseguire il comando riportato di seguito per verificare che la policy del bucket stia imponendo il AWS KMS requisito chiave. Sostituisci ciascuno example resource placeholder con le tue informazioni.

    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
  8. Eseguire questo comando per creare una configurazione della sincronizzazione dati risorsa per aggregare dati di inventario con il bucket Amazon S3 creato all'inizio di questa procedura. Questo comando crea una sincronizzazione dalla a Regione AWS cui si è collegati.

    Nota

    Se la sincronizzazione e il bucket Amazon S3 di destinazione si trovano in regioni diverse, potrebbero essere applicati i prezzi per il trasferimento dei dati. Per ulteriori informazioni, consulta Prezzi di Amazon S3.

    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"

    È possibile utilizzare il parametro region per specificare la regione in cui creare la configurazione di sincronizzazione. Nell'esempio seguente, i dati di inventario dalla regione us-west-1 saranno sincronizzati nel bucket Amazon S3 nella regione 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

    (Facoltativo) Per criptare la sincronizzazione utilizzando AWS KMS, eseguire il comando riportato di seguito per creare la sincronizzazione. Se si esegue la crittografia della sincronizzazione, la AWS KMS chiave e il bucket Amazon S3 devono trovarsi nella stessa regione.

    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
  9. Eseguire questo comando per visualizzare lo stato della configurazione di sincronizzazione.

    aws ssm list-resource-data-sync

    Se la configurazione di sincronizzazione è stata creata in un'altra regione, è necessario specificare il parametro region, come mostrato nel seguente esempio.

    aws ssm list-resource-data-sync --region us-west-1
  10. Una volta creata la configurazione di sincronizzazione, esamina il bucket di destinazione in Amazon S3. I dati di inventario dovrebbero essere visualizzati entro pochi minuti.

Utilizzo dei dati in Amazon Athena

La sezione seguente descrive come visualizzare ed eseguire query sui dati in Amazon Athena. Prima di iniziare, ti consigliamo di familiarizzare con Athena. Per ulteriori informazioni, consulta Che cos'è Amazon Athena? e Utilizzo dei dati nella Guida per l'utente di Amazon Athena.

Per visualizzare ed eseguire query sui dati in Amazon Athena
  1. Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/.

  2. Copiare e incollare la seguente istruzione nell'editor di query e scegliere Run Query (Esegui query).

    CREATE DATABASE ssminventory

    Il sistema crea un database denominato ssminventory.

  3. Copiare e incollare la seguente istruzione nell'editor di query e scegliere Run Query (Esegui query). Sostituisci amzn-s3-demo-bucket e bucket_prefix con il nome e il prefisso del target 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/'
  4. Copiare e incollare la seguente istruzione nell'editor di query e scegliere Run Query (Esegui query).

    MSCK REPAIR TABLE ssminventory.AWS_Application

    Il sistema esegue la partizione della tabella.

    Nota

    Se si creano Resource Data Sync da altri Regioni AWS o Account AWS, è necessario eseguire nuovamente questo comando per aggiornare le partizioni. Potrebbe anche essere necessario aggiornare la policy del bucket Amazon S3.

  5. Per visualizzare un'anteprima dei dati, scegliere l'icona vista accanto alla tabella AWS_Application.

    L'icona dei dati di anteprima in Amazon Athena.
  6. Copiare e incollare la seguente istruzione nell'editor di query e scegliere Run Query (Esegui query).

    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 query restituisce un conteggio di diverse versioni diaws-cfn-bootstrap, un' AWS applicazione presente su istanze Amazon Elastic Compute Cloud (AmazonEC2) per Linux, macOSe Windows Server.

  7. Copia e incolla singolarmente le seguenti istruzioni nell'editor di query, sostituisci amzn-s3-demo-bucket e bucket-prefix con informazioni per Amazon S3, quindi scegli Run Query. Queste istruzioni configurano tabelle Inventory aggiuntive in 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

Lavorare con i dati in Amazon QuickSight

La sezione seguente fornisce una panoramica contenente i collegamenti per la creazione di una visualizzazione in Amazon QuickSight.

Creazione di una visualizzazione in Amazon QuickSight
  1. Iscriviti ad Amazon QuickSight e poi accedi alla QuickSight console.

  2. Creare un set di dati dalla tabella AWS_Application e da tutte le altre tabelle create. Per ulteriori informazioni, consulta Creazione di un set di dati utilizzando dati Amazon Athena.

  3. Unire le tabelle. Ad esempio, è possibile unire la colonna instanceid dalla tabella AWS_InstanceInformation poiché corrisponde alla colonna resourceid di altre tabelle di inventario. Per ulteriori informazioni sull'unione delle tabelle, consultare Unione di tabelle.

  4. Creare una visualizzazione. Per ulteriori informazioni, consulta Working with Amazon QuickSight Visuals.