CJです。
VMware Cloud on AWS (以下、VMConAWS) はユーザーが大変操作しやすい “SDDC コンソール” を提供していますが、自動化などを想定して API の利用をご検討中の方も多くいらっしゃるのではないでしょうか。
本日は、その方向けに “API Explorer” というツールを通して簡単な API の使い方について共有したいと思います。
API Explorer とは?
そもそも “API Explorer” というのを初めて耳にする方もいるかと思います。API Explorer は、VMConAWS サービス内に予め用意されている API 実行ツールです。
テストシナリオ
本記事では、多くのユーザーが設定する(はず)の “Gateway Firewall (Compute Gateway)” のルール編集および追加を API Explorer より行うことにします。イメージとしては以下となります。
通常、左側にある SDDC コンソールより、Firewall の設定を行いますが、右側の API Explorer を使って同様のことが実現できるかを確認します。
なお、テスト環境には、既に SDDC が作成されており、上記イメージの通りに “CJ-Out” という Firewall ルールおよび “CJ-VM” という仮想マシングループが作成されている状態です。
注意事項
・本記事は、SDDC version 1.10 環境でテストをしたものとなります。将来バージョンの差によって動作仕様などが異なる可能性がございます。ご了承ください。
設定の流れ
- API Explorer 設定
- GET にて既存ルールの設定を参照
- PUSH にて既存ルールの編集
- PUSH にて新規ルールの作成
1. API Explorer 設定
VMConAWS サービス内の Developer Center 配下にある API Explorer へ移動してください。
① Environment : SDDC 箇所より、API 実行対象のSDDC 名を選択。
② SDDC 名を選択すると、Available APIs リストに “NSX VMC Policy API” が表示されますので、こちらを選択。
③ “NSX VMC Policy API” 項目の中、下にスクロールして “Policy, Security, Gateway, Firewall, Gateway, Policies” を選択。
このように、”Policy, Security, Gateway, Firewall, Gateway, Policies” より、項目の詳細が確認できます。以降はこの中から GET と PUT を使います。
※ ルールの編集において、PATCH を使うことも可能だが、本記事では省略します。使い方としては基本 PUT と同様の方法で実行可能かと思います。
2. GET にて既存ルールの設定を参照
今回対象の Gateway Firewall は Compute Gateway のため、[domain-id (required)] には “cgw” と入力、[gateway-policy-id (required)] は “default” と入力すれば大丈夫です。その後、[EXECUTE] ボタンにて API を実行します。(ポップアップ画面が表示されたら、[CONTINUE] ボタンにて実行が開始となります。) 異常がなければ、Response 箇所が表示されて結果をコピーまたは、結果の JSON ファイルがダウンロード可能になります。本記事では、一度 JSON ファイルをダウンロードしてテキストエディタで開くことにします。
3. PUSH にて既存ルールの編集
ダウンロードした JSON ファイルをテキストエディタで開き、該当ルールの箇所を確認します。(ルールが複数ある場合は、ルール名などで検索した方が良いです。) 本記事では、CJ-Out ルールを変更 (ALLOW → DROP) する内容として編集を行います。
※ id 情報などは参考例として、シンプルに修正してあります。実環境においてはもっと複雑なものになっています。
先ほど “PUT 用に編集” した JSON ファイルをコピーして、[Rule (required)] の箇所にそのまま貼り付けします。また、JSON ファイル内に掲載してある id を [rule-id (required)] に入力後、[EXECUTE] にてルールの更新を実行してください。異常がなければ、Response 画面が上記イメージの通りに表示されます。それでは、本当にルールが更新されているか、SDDC コンソール上からも確認してみましょう。
正常に、CJ-Out ルールが ALLOW (許可) から DROP (拒否) に変更されていることが確認できます。それでは、引き続き新規ルールを作成する場合についてもみていきましょう。
4. PUSH にて新規ルールの作成
上記手順 2 の GET で取得済みの既存ルールを参照し、新規作成ルール内容に合わせて編集を行います。本記事では、”CJ-In” という名前の新規ルール (外部から、CJ-VM グループへの接続を許可) を作成します。編集箇所は以下となります。
・id / path / relative path : “6-7-8-9-10” という任意の id を指定
・display_name : CJ-In
・source_groups : ANY
・destination_groups : “/infra/domains/cgw/groups/CJ-VM”
・行最後の revision 箇所を削除および その一行上の行末尾にある [ , ] を削除
※ id は既存ルールと重複しないように適切な id を設定いただく必要があります。uuid を自動生成してくれるサイトもありますので、必要に応じてご活用いただくことも良いかと思います。
Tip : 行末尾にある [ , ] を削除しない場合は、実行結果として以下のようなエラーコードが表示されます。
上記手順 3 と同じく、”作成 PUT 用に編集” した JSON ファイルをコピーして、[Rule (required)] の箇所にそのまま貼り付けします。また、JSON ファイル内に掲載してある id を [rule-id (required)] に入力後、[EXECUTE] にてルールの更新を実行してください。また、SDDC コンソール上からも確認してみましょう。
正常に、”CJ-In” という新規ルールが作成されていることが確認できました。
以上で、API Explorer を通した簡単な API の使い方について共有させていただきましたが、いかがでしょうか。少しでも VMConAWS における API について感触を掴んでいただけたら嬉しいです。
なお、ご覧の通りに API Explorer からは簡単にライブで API の実行および結果が確認できるため、API テストなどにも有効かと思います。合わせて UI 上で様々項目がリストアップされているため、初めて VMConAWS の API 構造を理解するにも参考になるかと思いますので、ぜひ一度お試しいただけばと思います。
[参考情報]