【技術】ServiceNow Discoveryを使用してAWS(仮想サーバー)の検出を成功させる3つのポイント

社内業務に関するシステムを一元化して運用・管理できるクラウドサービス「ServiceNow」。
株式会社KYOSOでは、これまでの豊富な運用経験をもとに、ServiceNowの企画立案から運用・保守、内製化までトータルでサポートしています。

今回、社内検証環境にてDiscoveryを使ってAmazon EC2で構築した仮想サーバーを検出してみました。
このブログでは検出までの作業ステップのフローチャートと、
検出を成功させるために重要だと感じた3つのポイントについてご紹介させていただきます。

検証環境

検証環境は以下のとおりです。

  • ServiceNowプラットフォーム
    ※社内のデモインスタンス(バージョン:utah)
  • AWSアカウント
    ※MIDサーバーをインストールするサーバーと検出対象のサーバーを構築
     

<イメージ>

ゴール

Discoveryで以下の2つのテーブルにレコードが作成されることを確認しました。

  • 仮想サーバー
    cmdb_ci_vm_instance.list

  ⇒ 1~3行目のレコードが検出対象の仮想サーバーで、4行目のレコードがMIDサーバーです。
    検証時、Windows Serverの対象バージョンが3種類[2012、2016、2019]ありましたので、
    それぞれ仮想サーバーを構築しました。そのため、3件検出されています。
    ※1レコード目はEC2インスタンスを廃止したことによりStatusが[終了]になっています。

  • IIS
    cmdb_ci_microsoft_iis_web_server.list

  ⇒ Windows Serverで有効化したIISが検出されました。

作業ステップのフローチャート

検証では製品ドキュメントやコミュニティ記事を参考に作業しました。
各ステップで行うことはそれらが参考になりますが、全体像がつかめず思い通りにいかなかったことがいくつかありました。
そのため、最終的に検出が成功した際のステップをフローチャートにまとめました。

検出を成功させる3つのポイント

1.設定や作業の順番

今回の検証ではServiceNowとAWSの2つのシステムが関連しており、
事前に済ませておかないと結果的に次に進めない設定や作業がありました。
たとえば、MIDサーバー用のユーザーがMIDサーバーのインストール前に必要だったり、
ファイヤーウォールの設定をしておかないと資格情報のテストが成功しないということがありました。

ここでは例として、1つ目にあげたMIDサーバー用のユーザーがMIDサーバーのインストール前に必要な件について手順を詳しく見ていきます。

< フローチャート(赤枠で囲った部分が対象箇所です)

(1)MIDサーバーインストール前

  ① MIDサーバー用のユーザーを作成します
     ServiceNowプラットフォームでユーザーを作成し、mid_server ロールを付与します。

💡 tips
作成したユーザーで、ServiceNowプラットフォームにログインして[ID/パスワード]が
正しく設定できているか確認しておくとインストール時に設定がスムーズに進められます。

(2) MIDサーバーインストール

  ① MIDサーバーのインストーラをダウンロードします
     ServiceNowプラットフォームの[MIDサーバー > ダウンロード]より
     Windowsのインストーラをダウンロードします。

  ② MIDサーバーをインストールします
     インストーラを開始すると、最初にMIDサーバー用のユーザーを設定します。
     ここで、①で作成したMIDサーバー用のユーザーを指定します。
     成功すると、接続成功のメッセージが表示されます。

     次にサービスアカウントを設定します。
     [+]ボタンから作成、または、既存のユーザーから選択します。
     サービスアカウントはWindowsのローカルユーザーを設定します。
     既存のユーザーを選択する場合はAdministrator権限のないユーザーを選択します。
     成功すると、有効なサービス設定であるというメッセージが表示されます。

     最後にインストール先を選択してインストールボタンをクリックすると、
     インストールが開始されます。

(3)MIDサーバーインストール後

  ① インストールが終わったらWindowsのサービスを開始します
     サービス名:「ServiceNow MID Server_サービスアカウントの名前」を開始します。

  ② ServiceNowプラットフォームでMIDサーバーが検出できるようになります

手順は以上です。

2つ目の例の資格情報のテストの前に実施しておくべきファイヤーウォールの設定は
3.ファイヤーウォール」で詳しく説明します。

2.ユーザーの管理

検出までのステップの中で様々なユーザーが登場します。
ServiceNowのユーザーのほかに、Windows ServerやAWSのユーザーが必要になります。
それぞれ役割がありますし、権限が誤っていると期待通りにいかないことがあります。
わかりやすくするために検証で登場したユーザーを表にまとめました。
もし、Discoveryで検出できない、または、認証で失敗してしまう場合は以下の表を参考にしてみてください。

システムユーザーの種類役割補足
ServiceNowMIDサーバー用
ユーザー
MIDサーバー認証用作成時にmid_server
ロール付与
Windows Server2019
※MIDサーバー
Windows
ログインユーザー
リモートデスクトップ接続Administrator権限
を持つユーザー
MIDサーバー
サービスアカウント
MIDサーバー接続ローカルユーザー
Windows Server2019
※検出対象
Windows
ログインユーザー
リモートデスクトップ接続Administrator権限
を持つユーザー
AWSのユーザーAWS
サービスアカウント
ServiceNowからAWSへ接続IAMで作成

3.ファイヤーウォール

ServiceNowからAWSクラウド環境に構築したWindows Serverへのアクセスは
MIDサーバーを介して行われますが、EC2インスタンス側のファイヤーウォールの設定を
行っておく必要がありました。
設定することでMIDサーバーと検証対象の仮想サーバーがアクセスできるようになり、
その結果、Discoveryでの検出ができるようなります。

💡 tips
  EC2のアクセス制御にはセキュリティグループを使用します。
  セキュリティグループは仮想サーバーのファイヤーウォール機能です。
  設定方法:セキュリティグループの設定はAWSコンソールの
        [セキュリティグループ > インバウンドルール]で行います。

<今回の検証での設定>
 ① インバウンドルールに[すべてのICMP-IPv4]を追加
  pingでの接続確認用に設定しました。

 ② インバウンドルールに
   [カスタムTCP ポート範囲:135、カスタムTCP ポート範囲:49152-65535]を追加
  MIDサーバー ⇔ 検出対象のEC2インスタンスのアクセスのために設定しました。
  資格情報テストや検出のステップまでに設定しておく必要があります。

※上の図は、検出対象のEC2インスタンスのインバウンドルールの設定画面です。

さいごに

いかがでしたでしょうか?
Discoveryを使用したAWS(仮想サーバー)の検出について、
作業ステップのフローチャートと、検出を成功させる3つのポイントをご紹介しました。

今回はAWSでしたが、ServiceNowでは様々なシステムとの連携が可能なので
連携する側の知識や経験も必要であると改めて実感しました。

最後まで閲覧いただき、ありがとうございました。
あなたにとって有益な情報を提供できたのであれば、大変嬉しく思います。


参考

今回の検証では以下のServiceNow製品ドキュメント[Utah 日本語]を参考にさせていただきました。

投稿者プロフィール

S H
S H
主にシステム開発の仕事に携わってきました。
[HTML/CSS/JavaScript/C#/VB.NET など]
2023年より開発業務と並行してServiceNowの学習を始めました。
CIS資格取得にも取り組んでおり、さまざまなServiceNowの研修を通して知識やスキルを磨いています。

保有資格
- ServiceNow Certified System Administrator
- ServiceNow Certified Application Developer
- ServiceNow Certified Implementation Specialist - Customer Service Management
TOP