2016年6月5日日曜日

NSXのセキュリティタグをAPIで活用してみよう(その3)

実際に、セキュリティタグを仮想マシンに付与するためには、セキュリティタグIDと仮想マシンIDが必要になります。

今回は、「ANTI_VIRUS.VirusFound.threat=low」のタグを仮想マシンに付与したいと思います。
先ほど、Postmanで取得したXMLをみて、<objectId>の部分を確認し、事前に控えておきましょう。
タグの名称は<name> で確認できます。


今回の場合は、「securitytag-2」が、「ANTI_VIRUS.VirusFound.threat=low」のIDとなります。

続いて仮想マシンのIDですが、こちらはNSXのAPIから取得することはできません。

こちらは、PowerCLIで取得します。
今回は、「CL-WIN81-2」という仮想マシンにタグをつけたいと思います。

PowerCLIのインストールは、 こちらに簡単ですが紹介しております
(参考)
http://infratraining.blogspot.jp/2015/06/blog-post.html

PowertCLIをインストールし、起動後、まずはvCenterにまずは、接続します。
Connect-VIServer -Server 「vCSのIP」 -User 「vCSのアカウント」 -Password vCSのパスワード

次に、仮想マシンの情報を取得します。
get-vmguest 仮想マシン名(今回はCL-WIN81-2) | select *


出てきた仮想マシンの詳細情報で「VmId」という項目があります。
ここの「VirtualMachine-vm-61」の「vm-61」がIDとなりますのでこれを控えておきます。

これで準備はできました。

まずは、控えた情報を整理しておきましょう。


付与するセキュリティタグ名称ANTI_VIRUS.VirusFound.threat=low
付与するセキュリティタグIDsecuritytag-2
付与される仮想マシン名CL-WIN81-1
付与される仮想マシンIDvm-61

NSX APIガイドの112ページを確認してみましょう。


「Apply Tag to Virtual Machine」の項が、仮想マシンにセキュリティタグを付与する為のAPIコール用のURLが記載されています。


APIは、
https://NSXManagerのIP/api/2.0/services/securitytags/tag/TagのID/vm/VMのID
のURLでコールします。

今回は上記で控えた情報を元に
https://NSXManagerのIP/api/2.0/services/securitytags/tag/securitytag-2/vm/vm-61
というURLが、APIをコールするためのURLになります。

では、早速Postmanに入れてみましょう。

メソッドが前回は「GET」でしたが、タグを付与する場合は「PUT」になりますので、注意してください。
必要なパラメーターを入力後、Sendをクリックしてみましょう。


今度は、セキュリティグ情報を取得したときのようにXMLの情報は帰ってきませんが、STATUSが200になっていれば、メソッドは成功しています。
XMLのデーターが出てきている場合は、ステータスコードが200以外で何らかのエラー内容がXMLで出力されていると思います。

では、これでvSphere Web Clientの画面から、仮想マシンにタグが付与されたかを見てみたいと思います。

きちんと、「ANTI_VIRUS.VirusFound.threat=low」のところに、仮想マシンが「1」と表示されています。

仮想マシン数の「1」 をクリックすると今回、タグを付与した「CL-WIN81-1」が存在していることが確認できます。



わずかこれだけで、仮想マシンのセキュリティタグ付与ができました。

今回は、Chromeのアプリケーションを利用しましたが、REST APIは、URLベースで簡単にやり取りをすることができるため非常に簡単です。
既存の資産管理アプリケーションやウイルス対策ソフトウェアと連携することで、簡単に既存のソフトウェアがNSXのセキュリティタグ連携ができるようになるのは、大変魅力的だと思います。

NSXのセキュリティは、高価なソリューションとの連携も魅力的ですが、お手製ツールでも簡単に高度なセキュリティを得ることができます。




NSXのセキュリティタグをAPIで活用してみよう(その2)

前回は、PostmanのRESTアプリをインストールしました。
実際に、REST APIをコールするためには、まずAPIのドキュメントが必要です。

NSXのドキュメントページ(https://www.vmware.com/support/pubs/nsx_pubs.html)から、APIガイドをあらかじめダウンロードしておきましょう。

参考(APIガイド)
http://pubs.vmware.com/NSX-62/topic/com.vmware.ICbase/PDF/nsx_62_api.pdf


では、基本設定を行い、まずはNSXのセキュリティタグ一覧を取得してみましょう。

重要な基本設定は、NSX Managerに認証情報を渡すことです。
(でないと、だれでもAPIをコールされると困るので)

NSX RestAPIは、Basic認証でユーザー認証を行います。
まず、Postmanの画面で「Basic Auth」のタブをクリックし、UserNameとPasswordを入力し、「Refresh headers」をクリックします。


その後、Normalタブを選択し、URLに、
「https://"NSX-Manager-IP-Address"/api/2.0/services/securitytags/tag」
を入力します。
NSX-Manager-IP-Addressは、NSX ManagerのIPアドレスを入力します。

このURLは、先ほどダウンロードしたAPIガイドの112ページに掲載されています。

あとは、メソッドを「GET」にして、「SEND」をクリックします。


うまくいくと、ステータス200で、XMLの結果が帰ってきます。

この場合ですと、「VULNERABILITY_MGMT.VulnerabilityFound.threat=high」と「ANTI_VIRUS.VirusFound.threat=low」が見えていますが、実際にvSphere Web ClientからNSXのタグ一覧を見てみましょう。


XMLを読んでいただくとわかりますが、NSX Managerで保有しているすべてのセキュリティタグ情報が出力されているのがわかります。

では、実際にセキュリティタグを付与するアクションを次回に紹介したいと思います。







NSXのセキュリティタグをAPIで活用してみよう(その1)

NSXの分散ファイアーウォールには、Service Composerとの連携で、仮想マシンをグルーピングして条件に合うものだけを通信制御ができます。

これは、仮想マシン名やOSなどかなり柔軟なグルーピングが可能ですが、例えば、仮想マシンがウイルスに感染した仮想マシンをグルーピングするなど、状態が常に変化する仮想マシンのグルーピングを行う場合、Service Composerだけでは、対応できない側面があります。

そこを救う機能が、仮想マシンの「セキュリティタグ」の付与です。

これは、vCenter Serverで管理されるタグではなく、NSX Manager側で、仮想マシンのタグ情報を管理する、NSX独自の機能です。


デフォルトでタグは定義されていますが、独自にタグを作成することも可能です。


タグが付与された仮想マシンをグルーピングする部分は、Service Composerを利用します。

このNSXセキュリティタグは、NSX ManagerのAPIをコールすることで、ユーザーからもタグを付与することができます。

NSXのAPIは、RESTでコールすることができますので、簡単に連携することができます。

つまり、このAPIをうまく活用することで、外部セキュリティソフトなどと連携して、状況に応じて通信制御を行う事が簡単にできるようになります。

今回は、RESTAPIをGoogle Chomeのアプリである「Postman」を利用して、APIを利用したNSXのタグ付与を行ってみましょう。

 では、実際にPostmanをインストールしてみましょう。

Google Chromeを起動し、アプリランチャーを起動します。

Postman Rest  Clientを検索しますし、Chromeに追加をクリックします。


拡張機能をインストールスるをクリックし、Chromeにアプリケーションを追加します。



これで、インストールは完了です。
では、早速、Chromeツールバーの右上にあるアイコンをクリックしてみましょう。



では、次回でAPIをコールして仮想マシンにタグ付与を行うところまでやってみましょう。