Démonstration : utiliser la synchronisation de données de ressources pour regrouper les données d'inventaire - AWS Systems Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Démonstration : utiliser la synchronisation de données de ressources pour regrouper les données d'inventaire

Utilisez la démonstration suivante pour créer une synchronisation de données de ressource pour Inventory AWS Systems Manager à l'aide de l'AWS Command Line Interface (AWS CLI). Une synchronisation de données de ressources transfère automatiquement les données d'inventaire collectées depuis tous vos nœuds gérés vers un compartiment Amazon Simple Storage Service (Amazon S3) central. La synchronisation met automatiquement à jour les données dans le compartiment Amazon S3 central lors de la découverte de nouvelles données d'inventaire.

Cette procédure pas à pas décrit également comment utiliser Amazon Athena et QuickSight Amazon pour interroger et analyser les données agrégées. Pour de plus amples informations sur la création d'une synchronisation de données de ressource à l'aide de Systems Manager dans la AWS Management Console, consultez Configuration de la synchronisation de données de ressource pour Inventory. Pour obtenir des informations sur l'interrogation d'Inventory à partir de plusieurs Régions AWS et comptes en utilisant Systems Manager dans la AWS Management Console, consultez Interrogation des données d'inventaire à partir de plusieurs régions et comptes.

Note

Cette procédure pas à pas comporte des informations sur la façon de chiffrer la synchronisation avec AWS Key Management Service (AWS KMS). Comme l'inventaire ne collecte aucune donnée spécifique à l'utilisateur, propriétaire ou sensible, le chiffrement est facultatif. Pour plus d'informations sur AWS KMS, consultez le Guide du développeur AWS Key Management Service.

Avant de commencer

Vérifiez ou effectuez les tâches suivantes avant de commencer la démonstration de cette section :

  • Collectez les données d'inventaire de vos nœuds gérés. Dans le cadre des QuickSight sections Amazon Athena et Amazon de cette procédure pas à pas, nous vous recommandons de collecter les données de l'application. Pour plus d'informations sur la façon de collecter des données d'inventaire, consultez Configuration de la collecte d'inventaire ou Démonstration : Configurer vos nœuds gérés pour l'inventaire à l'aide de l'interface de ligne de commande.

  • (Facultatif) Si les données d'inventaire sont stockées dans un compartiment Amazon Simple Storage Service (Amazon S3) utilisant le chiffrement AWS Key Management Service (AWS KMS), vous devez aussi configurer votre compte IAM et le rôle de service Amazon-GlueServiceRoleForSSM pour le chiffrement AWS KMS. Si vous ne configurez pas votre compte IAM et ce rôle, Systems Manager affiche Cannot load Glue tables lorsque vous sélectionnez l'onglet Vue détaillée sur la console. Pour plus d’informations, consultez (Facultatif) Configurer les autorisations pour l'affichage de données chiffrées AWS KMS.

  • (Facultatif) Si vous souhaitez chiffrer la synchronisation des données de ressource avec AWS KMS, vous devez créer une nouvelle clé incluant la politique suivante, ou mettre à jour une clé existante et lui ajouter cette politique.

    { "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/*" } } } ] }
Pour créer une synchronisation des données de ressource pour l'inventaire
  1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

  2. Créez un compartiment pour stocker vos données d'inventaire agrégées. Pour plus d'informations, consultez Création d'un compartiment dans le Guide de l'utilisateur d'Amazon Simple Storage Service. Notez le nom du compartiment et la Région AWS dans laquelle vous l'avez créé.

  3. Après avoir créé le compartiment, sélectionnez l'onglet Autorisations, puis sélectionnez Politique de compartiment.

  4. Copiez et collez la politique de compartiment suivante dans l'éditeur de politique. Remplacez DOC-EXAMPLE-BUCKET et account-id par le nom du compartiment Amazon S3 créé et un ID de Compte AWS valable. Si vous ajoutez plusieurs comptes, ajoutez une chaîne de conditions et un ARN supplémentaires pour chaque compte. Supprimez les espaces réservés supplémentaires de l'exemple lors de l'ajout d'un compte. Vous avez également la possibilité de remplacer bucket-prefix par le nom d'un préfixe Amazon S3 (sous-répertoire). Si vous n'avez pas créé de préfixe, supprimez bucket-prefix/ de l'ARN dans la politique.

    { "Version": "2012-10-17", "Statement": [ { "Sid": " SSMBucketDelivery", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-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. (Facultatif) Si vous souhaitez chiffrer la synchronisation, vous devez ajouter les conditions suivantes à la politique définie dans l’étape précédente. Ajoutez les dans la section 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"

    Voici un exemple :

    "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. Si vous ne l'avez pas déjà fait, installez et configurez l'AWS Command Line Interface (AWS CLI).

    Pour de plus amples informations, consultez Installation ou mise à jour de la version la plus récente de l'AWS CLI.

  7. (Facultatif) Si vous voulez chiffrer la synchronisation, exécutez la commande suivante afin de vérifier que la politique de compartiment applique la clé AWS KMS requise. Remplacez chaque example resource placeholder (espace réservé pour les ressources) avec vos propres informations.

    Linux & macOS
    aws s3 cp ./A_file_in_the_bucket s3://DOC-EXAMPLE-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://DOC-EXAMPLE-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. Exécutez la commande suivante pour créer une configuration de synchronisation de données de ressource avec le compartiment Amazon S3 que vous avez créé au début de cette procédure. Cette commande crée une synchronisation à partir de la Région AWS dans laquelle vous êtes actuellement connecté.

    Note

    Si la synchronisation et le compartiment Amazon S3 cible sont localisés dans des régions différentes, vous pourriez être sujet à une tarification de transfert de données. Pour plus d'informations, consultez Tarification Amazon S3.

    Linux & macOS
    aws ssm create-resource-data-sync \ --sync-name a_name \ --s3-destination "BucketName=DOC-EXAMPLE-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=DOC-EXAMPLE-BUCKET,Prefix=prefix_name, if_specified,SyncFormat=JsonSerDe,Region=bucket_region"

    Vous pouvez utiliser le paramètre region pour spécifier l'emplacement dans lequel la configuration de synchronisation doit être créée. Dans l'exemple suivant, les données d'inventaire de la région us-west-1 seront synchronisées dans le compartiment Amazon S3 de la région us-west-2.

    Linux & macOS
    aws ssm create-resource-data-sync \ --sync-name InventoryDataWest \ --s3-destination "BucketName=DOC-EXAMPLE-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=DOC-EXAMPLE-BUCKET,Prefix=HybridEnv,SyncFormat=JsonSerDe,Region=us-west-2" ^ --region us-west-1

    (Facultatif) Si vous voulez chiffrer la synchronisation avec AWS KMS, exécutez la commande suivante pour créer la synchronisation. Si vous chiffrez la synchronisation, la clé AWS KMS et le compartiment Amazon S3 doivent se trouver dans la même région.

    Linux & macOS
    aws ssm create-resource-data-sync \ --sync-name sync_name \ --s3-destination "BucketName=DOC-EXAMPLE-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=DOC-EXAMPLE-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. Exécutez la commande suivante pour afficher le statut de la configuration de synchronisation.

    aws ssm list-resource-data-sync

    Si vous avez créé la configuration de synchronisation dans une autre région, vous devez spécifier le paramètre region, comme illustré dans l'exemple suivant.

    aws ssm list-resource-data-sync --region us-west-1
  10. Une fois la configuration de synchronisation créée, examinez le compartiment cible dans Amazon S3. Les données d'inventaire doivent apparaître en quelques minutes.

Utilisation des données dans Amazon Athena

La section suivante décrit comment afficher et interroger les données dans Amazon Athena. Avant de commencer, nous vous recommandons de vous familiariser avec Athena. Pour de plus amples informations, consultez Qu'est-ce que Amazon Athena ? et Utilisation des données dans le Guide de l'utilisateur d'Amazon Athena.

Pour afficher et interroger les données dans Amazon Athena
  1. Ouvrez la console Athena à l'adresse https://console.aws.amazon.com/athena/.

  2. Copiez et collez la déclaration suivante dans l'éditeur de requête, puis sélectionnez Exécuter la requête.

    CREATE DATABASE ssminventory

    Le système crée une base de données nommée ssminventory.

  3. Copiez et collez la déclaration suivante dans l'éditeur de requête, puis sélectionnez Exécuter la requête. Remplacez DOC-EXAMPLE-BUCKET et bucket_prefix par le nom et le préfixe de la cible 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://DOC-EXAMPLE-BUCKET/bucket_prefix/AWS:Application/'
  4. Copiez et collez la déclaration suivante dans l'éditeur de requête, puis sélectionnez Exécuter la requête.

    MSCK REPAIR TABLE ssminventory.AWS_Application

    Le système effectue le partitionnement de la table.

    Note

    Si vous créez des synchronisations de données de ressources à partir de Régions AWS ou de Comptes AWS supplémentaires, vous devez exécuter à nouveau cette commande pour mettre à jour les partitions. Il est probable que vous deviez également mettre à jour votre politique de compartiment Amazon S3.

  5. Pour prévisualiser vos données, sélectionnez l'icône Aperçu située à côté de la table AWS_Application.

    
                            L'icône de prévisualisation des données dans Amazon Athena.
  6. Copiez et collez la déclaration suivante dans l'éditeur de requête, puis sélectionnez Exécuter la requête.

    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 requête renvoie un nombre de versions différentes de aws-cfn-bootstrap, qui est une application AWS présente sur des instances Amazon Elastic Compute Cloud (Amazon EC2) pour Linux, macOS et Windows Server.

  7. Copiez et collez individuellement les énoncés suivants dans l'éditeur de demande, remplacez DOC-EXAMPLE-BUCKET et bucket-prefix avec les informations de Amazon S3, puis sélectionnez Run Query (Exécuter la demande). Ces déclarations définissent des tables d'inventaire supplémentaires dans 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://DOC-EXAMPLE-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://DOC-EXAMPLE-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://DOC-EXAMPLE-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://DOC-EXAMPLE-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://DOC-EXAMPLE-BUCKET/bucket-prefix/AWS:PatchSummary/'
    MSCK REPAIR TABLE ssminventory.AWS_PatchSummary

Travailler avec les données d'Amazon QuickSight

La section suivante fournit une vue d'ensemble avec des liens permettant de créer une visualisation dans Amazon QuickSight.

Pour créer une visualisation dans Amazon QuickSight
  1. Inscrivez-vous à Amazon, QuickSight puis connectez-vous à la QuickSight console.

  2. Créez un ensemble de données depuis la table AWS_Application et toute autre table que vous avez créée. Pour de plus amples informations, consultez Création d'un ensemble de données à l'aide d'Amazon Athena.

  3. Joignez les tables. Par exemple, vous pouvez joindre la colonne instanceid depuis AWS_InstanceInformation car elle correspond à la colonne resourceid dans d'autres tables d'inventaire. Pour plus d'informations sur la jonction de tables, consultez Jonction de tables.

  4. Créez une visualisation. Pour plus d'informations, consultez la section Travailler avec Amazon QuickSight Visuals.