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 décrit comment créer une configuration de synchronisation des données de ressources pour AWS Systems Manager Inventory à l'aide de 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 plus d'informations sur la création d'une synchronisation des données de ressources à l'aide de Systems Manager dans le AWS Management Console, voirConfiguration de la synchronisation de données de ressource pour Inventory. Pour plus d'informations sur l'interrogation de l'inventaire à partir de plusieurs comptes Régions AWS et à l'aide de Systems Manager dans le AWS Management Console, voirInterrogation 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. 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 Procédure pas à pas : configurez vos nœuds gérés pour l'inventaire à l'aide du CLI.

  • (Facultatif) Si les données d'inventaire sont stockées dans un compartiment Amazon Simple Storage Service (Amazon S3) qui AWS Key Management Service utilise le chiffrement AWS KMS(), vous devez également 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 Detailed View dans la console. Pour de plus amples informations, veuillez consulter (Facultatif) Configurer les autorisations d'affichage des données AWS KMS chiffrées.

  • (Facultatif) Si vous souhaitez chiffrer la synchronisation des données des ressources en utilisant AWS KMS, vous devez soit créer une nouvelle clé incluant la politique suivante, soit mettre à jour une clé existante et y 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 bucket et l' Région AWS endroit où 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 avec le nom du compartiment Amazon S3 que vous avez créé et un Compte AWS identifiant valide. Lorsque vous ajoutez plusieurs comptes, ajoutez une chaîne de condition supplémentaire ARN pour chaque compte. Supprimez les espaces réservés supplémentaires de l'exemple lors de l'ajout d'un compte. Le cas échéant, remplacez bucket-prefix avec 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. Installez et configurez le AWS Command Line Interface (AWS CLI), si ce n'est pas déjà fait.

    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 souhaitez chiffrer la synchronisation, exécutez la commande suivante pour vérifier que la politique de compartiment applique les exigences relatives aux AWS KMS clés. 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 connexion à laquelle Région AWS vous êtes 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 à l'aide de 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=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 avec 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 ressources à partir de ressources supplémentaires Régions AWS ou Comptes AWS, vous devez exécuter cette commande à nouveau 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 le nombre de versions différentes deaws-cfn-bootstrap, qui est une AWS application présente sur les instances Amazon Elastic Compute Cloud (AmazonEC2) pour LinuxmacOS, etWindows 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 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.