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

La procédure pas à pas suivante indique comment créer une synchronisation de données de ressource pour AWS Systems Manager Inventory à 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 indique é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, consultezDémonstration : utiliser la synchronisation de données de ressources pour regrouper les données d'inventaire. 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, consultezInterrogation 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 à ce sujet AWS KMS, consultez le Guide AWS Key Management Service du développeur.

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. Pour les besoins des QuickSight sections Amazon Athena et Amazon de cette procédure pas à pas, nous vous recommandons de collecter les données d'application. Pour plus d'informations sur la façon de collecter des données d'inventaire, consultez Configuration de la collecte d'inventaire ou Utilisation du AWS CLI pour configurer la collecte des données d'inventaire.

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

  • (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 à l'adresse 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 dans Région AWS 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 amzn-s3-demo-bucket et account-id par le nom du compartiment Amazon S3 que vous avez créé et un Compte AWS identifiant valide. Si vous ajoutez plusieurs comptes, ajoutez une chaîne de conditions supplémentaire et ARN pour chaque compte. Supprimez les espaces réservés supplémentaires de l'exemple lors de l'ajout d'un compte. Facultativement, remplacez 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/ à partir du ARN contenu de la politique.

    { "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. (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 AWS KMS clé requise. Remplacez chacun example resource placeholder avec vos propres informations.

    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. 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 dans Région AWS 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=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"

    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=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

    (Facultatif) Si vous souhaitez chiffrer la synchronisation avec AWS KMS, exécutez la commande suivante pour créer la synchronisation. Si vous chiffrez la synchronisation, la AWS KMS clé 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=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. 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 à 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 amzn-s3-demo-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://amzn-s3-demo-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 ressource à partir de Régions AWS ou de supplémentaires Comptes AWS, 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 deaws-cfn-bootstrap, qui est une AWS application présente sur des instances Amazon Elastic Compute Cloud (AmazonEC2) pour Linux, macOS, et Windows Server.

  7. Copiez et collez individuellement les instructions suivantes dans l'éditeur de requêtes, remplacez amzn-s3-demo-bucket et bucket-prefix avec des informations pour Amazon S3, puis choisissez Run Query. 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://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

Travailler avec les données d'Amazon QuickSight

La section suivante fournit une présentation des liens pour la création d'une visualisation sur Amazon QuickSight.

Pour créer une visualisation sur 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.