メニュー
AWS Systems Manager
ユーザーガイド

Systems Manager インベントリについて

Systems Manager インベントリを設定する際、収集するメタデータのタイプ、メタデータの収集元となるインスタンス、メタデータ収集のスケジュールを指定します。これらの設定は AWS アカウントに ステートマネージャー の関連付けとして保存されます。

注記

Inventory はメタデータのみを収集します。個人のデータや所有権のあるデータは一切収集しません。

以下の表では、設定するインベントリ収集のさまざまな側面について説明します。

設定 詳細

収集する情報のタイプ

インベントリを設定して、次のメタデータのタイプを収集できます。

  • アプリケーション: アプリケーション名、発行元、バージョンなど。

  • AWS コンポーネント: EC2 ドライバ、エージェント、バージョンなど。

  • ファイル: 名前、サイズ、バージョン、インストール日、変更および最新アクセス時間など。

  • ネットワーク設定の詳細: IP アドレス、MAC アドレス、DNS、ゲートウェイ、サブネットマスクなど。

  • Windows 更新: Hotfix ID、インストール者、インストール日など。

  • インスタンスの詳細: システム名、オペレーティングシステム (OS) 名、OS バージョン、最終起動、DNS、ドメイン、ワークグループ、OS アーキテクチャなど。

  • サービス: 名前、表示名、ステータス、依存サービス、サービスのタイプ、起動タイプなど。

  • Windows レジストリ: レジストリキーのパス、値の名前、値タイプおよび値。

  • Windows ロール: 名前、表示名、パス、機能タイプ、インストール日など。

  • カスタムインベントリ: カスタムインベントリの操作 に説明されるようにマネージドインスタンスに割り当てられたメタデータ。

注記

インベントリに収集されるすべてのメタデータを表示するには、「インベントリによって収集されたメタデータ」を参照してください。

情報を収集するインスタンス

Amazon EC2 タグを使用して、インスタンスまたはインスタンスのターゲットグループを個別に選択できます。

情報を収集する間隔

収集間隔は、分、時間、日、週単位で指定できます。最短収集間隔は 30 分ごとです。

収集されるデータの量によっては、指定した出力にデータをレポートするのに数分かかることがあります。情報が収集されると、セキュアな HTTPS チャンネルを介して、AWS アカウントからのみアクセス可能なプレーンテキストの AWS ストアに、メタデータが送信されます。それらのデータは、指定した Amazon S3 バケットで表示したり、Amazon EC2 コンソールのマネージドインスタンスの [Inventory] タブで表示したりできます。[Inventory] タブには、データのクエリに役立ついくつかの定義済みフィルタがあります。

マネージドインスタンスのインベントリの収集を開始する方法については、「インベントリ収集の設定 1」を参照してください AWS CLI を使用してインベントリを収集する

インベントリによって収集されたメタデータ

次のサンプルは、各インベントリプラグインによって収集されたメタデータの完全リストを示しています。

[ { "typeName": "AWS:InstanceInformation", "version": "1.0", "attributes":[ { "name": "AgentType", "dataType" : "STRING"}, { "name": "AgentVersion", "dataType" : "STRING"}, { "name": "ComputerName", "dataType" : "STRING"}, { "name": "IamRole", "dataType" : "STRING"}, { "name": "InstanceId", "dataType" : "STRING"}, { "name": "IpAddress", "dataType" : "STRING"}, { "name": "PlatformName", "dataType" : "STRING"}, { "name": "PlatformType", "dataType" : "STRING"}, { "name": "PlatformVersion", "dataType" : "STRING"}, { "name": "ResourceType", "dataType" : "STRING"} ] }, { "typeName" : "AWS:Application", "version": "1.1", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "ApplicationType", "dataType": "STRING"}, { "name": "Publisher", "dataType": "STRING"}, { "name": "Version", "dataType": "STRING"}, { "name": "InstalledTime", "dataType": "STRING"}, { "name": "Architecture", "dataType": "STRING"}, { "name": "URL", "dataType": "STRING"}, { "name": "Summary", "dataType": "STRING"}, { "name": "PackageId", "dataType": "STRING"} ] }, { "typeName" : "AWS:File", "version": "1.0", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "Size", "dataType": "STRING"}, { "name": "Description", "dataType": "STRING"}, { "name": "FileVersion", "dataType": "STRING"}, { "name": "InstalledDate", "dataType": "STRING"}, { "name": "ModificationTime", "dataType": "STRING"}, { "name": "LastAccessTime", "dataType": "STRING"}, { "name": "ProductName", "dataType": "STRING"}, { "name": "InstalledDir", "dataType": "STRING"}, { "name": "ProductLanguage", "dataType": "STRING"}, { "name": "CompanyName", "dataType": "STRING"}, { "name": "ProductVersion", "dataType": "STRING"} ] }, { "typeName": "AWS:AWSComponent", "version": "1.0", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "ApplicationType", "dataType": "STRING"}, { "name": "Publisher", "dataType": "STRING"}, { "name": "Version", "dataType": "STRING"}, { "name": "InstalledTime", "dataType": "STRING"}, { "name": "Architecture", "dataType": "STRING"}, { "name": "URL", "dataType": "STRING"} ] }, { "typeName": "AWS:WindowsUpdate", "version":"1.0", "attributes":[ { "name": "HotFixId", "dataType": "STRING"}, { "name": "Description", "dataType": "STRING"}, { "name": "InstalledTime", "dataType": "STRING"}, { "name": "InstalledBy", "dataType": "STRING"} ] }, { "typeName": "AWS:Network", "version":"1.0", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "SubnetMask", "dataType": "STRING"}, { "name": "Gateway", "dataType": "STRING"}, { "name": "DHCPServer", "dataType": "STRING"}, { "name": "DNSServer", "dataType": "STRING"}, { "name": "MacAddress", "dataType": "STRING"}, { "name": "IPV4", "dataType": "STRING"}, { "name": "IPV6", "dataType": "STRING"} ] }, { "typeName": "AWS:PatchSummary", "version":"1.0", "attributes":[ { "name": "PatchGroup", "dataType": "STRING"}, { "name": "BaselineId", "dataType": "STRING"}, { "name": "SnapshotId", "dataType": "STRING"}, { "name": "OwnerInformation", "dataType": "STRING"}, { "name": "InstalledCount", "dataType": "NUMBER"}, { "name": "InstalledOtherCount", "dataType": "NUMBER"}, { "name": "NotApplicableCount", "dataType": "NUMBER"}, { "name": "MissingCount", "dataType": "NUMBER"}, { "name": "FailedCount", "dataType": "NUMBER"}, { "name": "OperationType", "dataType": "STRING"}, { "name": "OperationStartTime", "dataType": "STRING"}, { "name": "OperationEndTime", "dataType": "STRING"} ] }, { "typeName": "AWS:PatchCompliance", "version":"1.0", "attributes":[ { "name": "Title", "dataType": "STRING"}, { "name": "KBId", "dataType": "STRING"}, { "name": "Classification", "dataType": "STRING"}, { "name": "Severity", "dataType": "STRING"}, { "name": "State", "dataType": "STRING"}, { "name": "InstalledTime", "dataType": "STRING"} ] }, { "typeName": "AWS:ComplianceItem", "version":"1.0", "attributes":[ { "name": "ComplianceType", "dataType": "STRING", { "name": "ExecutionId", "dataType": "STRING", { "name": "ExecutionType", "dataType": "STRING", { "name": "ExecutionTime", "dataType": "STRING", { "name": "Id", "dataType": "STRING"}, { "name": "Title", "dataType": "STRING"}, { "name": "Status", "dataType": "STRING"}, { "name": "Severity", "dataType": "STRING"}, { "name": "DocumentName", "dataType": "STRING"}, { "name": "DocumentVersion", "dataType": "STRING"}, { "name": "Classification", "dataType": "STRING"}, { "name": "PatchBaselineId", "dataType": "STRING"}, { "name": "PatchSeverity", "dataType": "STRING"}, { "name": "PatchState", "dataType": "STRING"}, { "name": "PatchGroup", "dataType": "STRING"}, { "name": "InstalledTime", "dataType": "STRING"} ] }, { "typeName": "AWS:ComplianceSummary", "version":"1.0", "attributes":[ { "name": "ComplianceType", "dataType": "STRING"}, { "name": "PatchGroup", "dataType": "STRING"}, { "name": "PatchBaselineId", "dataType": "STRING"}, { "name": "Status", "dataType": "STRING"}, { "name": "OverallSeverity", "dataType": "STRING"}, { "name": "ExecutionId", "dataType": "STRING"}, { "name": "ExecutionType", "dataType": "STRING"}, { "name": "ExecutionTime", "dataType": "STRING"}, { "name": "CompliantCriticalCount", "dataType": "NUMBER"}, { "name": "CompliantHighCount", "dataType": "NUMBER"}, { "name": "CompliantMediumCount", "dataType": "NUMBER"}, { "name": "CompliantLowCount", "dataType": "NUMBER"}, { "name": "CompliantInformationalCount", "dataType": "NUMBER"}, { "name": "CompliantUnspecifiedCount", "dataType": "NUMBER"}, { "name": "NonCompliantCriticalCount", "dataType": "NUMBER"}, { "name": "NonCompliantHighCount", "dataType": "NUMBER"}, { "name": "NonCompliantMediumCount", "dataType": "NUMBER"}, { "name": "NonCompliantLowCount", "dataType": "NUMBER"}, { "name": "NonCompliantInformationalCount", "dataType": "NUMBER"}, { "name": "NonCompliantUnspecifiedCount", "dataType": "NUMBER"} ] }, { "typeName": "AWS:InstanceDetailedInformation", "version":"1.0", "attributes":[ { "name": "CPUModel", "dataType": "STRING"}, { "name": "CPUCores", "dataType": "NUMBER"}, { "name": "CPUs", "dataType": "NUMBER"}, { "name": "CPUSpeedMHz", "dataType": "NUMBER"}, { "name": "CPUSockets", "dataType": "NUMBER"}, { "name": "CPUHyperThreadEnabled", "dataType": "STRING"}, { "name": "OSServicePack", "dataType": "STRING"} ] }, { "typeName": "AWS:Service", "version":"1.0", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "DisplayName", "dataType": "STRING"}, { "name": "ServiceType", "dataType": "STRING"}, { "name": "Status", "dataType": "STRING"}, { "name": "DependentServices", "dataType": "STRING"}, { "name": "ServicesDependedOn", "dataType": "STRING"}, { "name": "StartType", "dataType": "STRING"} ] }, { "typeName": "AWS:WindowsRegistry", "version":"1.0", "attributes":[ { "name": "KeyPath", "dataType": "STRING"}, { "name": "ValueName", "dataType": "STRING"}, { "name": "ValueType", "dataType": "STRING"}, { "name": "Value", "dataType": "STRING"} ] }, { "typeName": "AWS:WindowsRole", "version":"1.0", "attributes":[ { "name": "Name", "dataType": "STRING"}, { "name": "DisplayName", "dataType": "STRING"}, { "name": "Path", "dataType": "STRING"}, { "name": "FeatureType", "dataType": "STRING"}, { "name": "DependsOn", "dataType": "STRING"}, { "name": "Description", "dataType": "STRING"}, { "name": "Installed", "dataType": "STRING"}, { "name": "InstalledState", "dataType": "STRING"}, { "name": "SubFeatures", "dataType": "STRING"}, { "name": "ServerComponentDescriptor", "dataType": "STRING"}, { "name": "Parent", "dataType": "STRING"} ] } ]

ファイルと Windows レジストリインベントリで作業する

Systems Manager インベントリは、Windows および Linux オペレーティングシステムでファイルを検索し、インベントリできるようにします。Windows レジストリの検索およびインベントリもできます。

ファイル: ファイル名、ファイル作成時間、ファイルの最終変更時間および最新アクセス時間、およびファイルサイズなど多数のファイルに関するメタデータ情報を収集できます。ファイルインベントリの収集を開始するには、インベントリを実行するファイルパスを指定し、インベントリを行うファイルタイプを定義する 1 つ以上のパターン、そしてパスが再帰的にトラバースすべきかを指定します。Systems Manager は、パターンと一致する指定されたパスのファイルのすべてのファイルメタデータをインベントリします。ファイルインベントリは次の入力パラメータを使用します。

{ "Path": string, "Pattern": array[string], "Recursive": true, "DirScanLimit" : number // Optional }
  • パス: ファイルをインベントリするディレクトリパス。Windows の場合、変数が単一ディレクトリパスにマッピングする限りにおいて、%PROGRAMFILES% などの環境変数を使用できます。たとえば、複数のディレクトリパスをマッピングする %PATH% を使用すると、インベントリはエラーをスローします。

  • パターン: ファイルを識別するためのパターン配列。

  • 再帰的: インベントリが再帰的にディレクトリをトラバースすべきかを示すブール値。

  • DirScanLimit: スキャンするディレクトリ数を指定するオプションの値。このパラメータを使用して、インスタンスのパフォーマンスへの影響を最小化します。デフォルトでは、インベントリは最大で 5000 ディレクトリまでをスキャンします。

注記

インベントリは、すべての指定したパスから最大で 500 ファイルのメタデータを収集します。

ここでは、ファイルのインベントリを実行する場合にどのようにパラメータを指定するかについての例をいくつか示します。

  • Linux では、すべてのサブディレクトリを除く、/home/ec2-user ディレクトリの .sh ファイルのメタデータを収集します。

    [{"Path":"/home/ec2-user","Pattern":["*.sh", "*.sh"],"Recursive":false}]
  • Windows では、サブディレクトリを再帰的に含む、プログラムファイルフォルダーのすべての「.exe」ファイルのメタデータを収集します。

    [{"Path":"C:\Program Files","Pattern":["*.exe"],"Recursive":true}]
  • Windows では、特定のログパターンのメタデータを収集します。

    [{"Path":"C:\ProgramData\Amazon","Pattern":["*amazon*.log"],"Recursive":true}]
  • 再帰的収集を実行する場合には、ディレクトリの数を制限します。

    [{"Path":"C:\Users","Pattern":["*.ps1"],"Recursive":true, "DirScanLimit": 1000}]

Windows のレジストリ: Windows レジストリキーと値を収集することができます。キーパスを選択して、すべてのキーと値を再帰的に収集できます。指定するパスで指定するレジストリキーおよびその値を収集することもできます。インベントリは、キーパス、名前、タイプ、値を収集します。

{ "Path": string, "Recursive": boolean, "ValueNames": array[string] // optional }
  • パス: レジストリキーへのパス。

  • 再帰的: インベントリが再帰的にレジストリパスをトラバースすべきかを示すブール値。

  • ValueNames: レジストリキーのインベントリを実行する値名の配列。このパラメータを使用する場合、Systems Manager は指定するパスの指定する値名のみをインベントリします。

注記

インベントリは、すべての指定したパスから最大で 250 レジストリキー値を収集します。

ここでは、Windows レジストリのインベントリを実行する場合にどのようにパラメータを指定するかについての例をいくつか示します。

  • 指定したパスのすべてのキーと値を再帰的に収集します。

    [{"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Amazon","Recursive": true}]
  • 指定したパスのすべてのキーと値を収集します (再帰的検索無効)。

    [{"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Intel\PSIS\PSIS_DECODER", "Recursive": false}]
  • ValueNames オプションを使用して、指定するキーを収集します。

    {"Path":"HKEY_LOCAL_MACHINE\SOFTWARE\Amazon\MachineImage","ValueNames":["AMIName"]}

カスタムインベントリの操作

カスタムインベントリを作成して、インスタンスに必要なあらゆるメタデータを割り当てることができます。たとえば、データセンターのラック内の多数のサーバーを管理しており、それらのサーバーは Systems Manager マネージドインスタンスとして設定されているとします。現在、サーバーラック位置に関する情報はスプレッドシートに保存しています。カスタムインベントリを使うと、各インスタンスのラック位置をインスタンスのメタデータとして指定できます。Systems Manager を使用してインベントリを収集すると、そのメタデータは他のインベントリメタデータとともに収集されます。その後、リソースデータの同期を使用してすべてのインベントリメタデータを中央 Amazon S3 バケットにポートし、データをクエリできます。

カスタムインベントリをインスタンスに割り当てるには、「カスタムインベントリメタデータをインスタンスに割り当てる」で説明されているように Systems Manager PutInventory API アクションを使用できます。または、カスタムインベントリ JSON ファイルを作成し、インスタンスにアップロードできます。このセクションでは、JSON ファイルを作成する方法について説明します。

{ "SchemaVersion": "1.0", "TypeName": "Custom:RackInformation", "Content": { "Location": "US-EAST-01.DC.RACK1", "InstalledTime": "2016-01-01T01:01:01Z", "vendor": "DELL", "Zone" : "BJS12", "TimeZone": "UTC-8" } }

また、次の例に示すように、ファイル内の複数の項目を指定できます。

{ "SchemaVersion": "1.0", "TypeName": "Custom:PuppetModuleInfo", "Content": [{ "Name": "puppetlabs/aws", "Version": "1.0" }, { "Name": "puppetlabs/dsc", "Version": "2.0" } ] }

カスタムインベントリ用の JSON スキーマには、SchemaVersion、TypeName、および Content というセクションが必要ですが、これらのセクションの情報を定義できます。

{ "SchemaVersion": "user_defined", "TypeName": "Custom:user_defined", "Content": { "user_defined_attribute1": "user_defined_value1", "user_defined_attribute2": "user_defined_value2", "user_defined_attribute3": "user_defined_value3", "user_defined_attribute4": "user_defined_value4" } }

TypeName は最大 100 文字に制限されています。また、TypeName セクションは Custom から始める必要があります。たとえば、Custom:PuppetModuleInfo となります。Custom および指定するデータは、両方とも大文字で始める必要があります。次の例は例外が発生します: 「CUSTOM:RackInformation」、「custom:rackinformation」。

Content セクションには、属性とデータを含めます。これらの項目は大文字と小文字は区別されません。ただし、属性 (例: Vendor": "DELL") を定義する場合、カスタムインベントリファイルで一貫してこの属性を参照する必要があります。あるファイルで "Vendor": "DELL" (ベンダーの「V」が大文字) と指定した場合、別のファイルで "vendor": "DELL" (ベンダーの「v」が小文字) と指定すると、システムはエラーを返します。

注記

.json 拡張子をつけてファイルを保存する必要があります。

ファイルを作成した後、インスタンスに保存する必要があります。以下の表は、カスタムインベントリの JSON ファイルをインスタンスのどの場所に保存する必要があるかを示します。

オペレーティングシステム パス

Windows

%SystemDrive%\ProgramData\Amazon\SSM\InstanceData\<instance-id>\inventory\custom

Linux

/var/lib/amazon/ssm/<instance-id>/inventory/custom

カスタムインベントリの使用方法の例については、「EC2 システムマネージャカスタムインベントリ型を使用してインスタンスのディスクの利用状況を取得する」を参照してください。

関連 AWS サービス

Systems Manager インベントリでは、最新のインベントリのスナップショットを取得できるため、ソフトウェアポリシーを管理し、フリート全体のセキュリティポスチャを向上させるのに役立ちます。以下の AWS のサービスを使用して、インベントリ管理と移行機能を拡張できます。

  • AWS Config では、インベントリの変更履歴を取得できるほか、設定アイテムが変更されたときに通知を生成するルールを作成することもできます。詳細については、AWS Config Developer Guide の「Amazon EC2 マネージドインスタンスインベントリの記録」を参照してください。

  • AWS Application Discovery Service は、オンプレミス VM から OS タイプ、アプリケーションインベントリ、プロセス、接続、サーバーパフォーマンスメトリクスに関するインベントリを収集して、AWS への移行成功を支援するように設計されています。詳細については、Application Discovery Service User Guide を参照してください。