これは
2019/10/9に、SORACOM Napterの監査ログを取得できる機能がリリースされました。
SORACOMエンジニアブログでは、WEBコンソールから確認する手順が紹介されていますが、今回はこれをcliから行ってみようと思います。
なお、Napterをcliから使う方法は「SORACOM Napterをcliから使ってみる」を参照してください。
また、本機能を利用するにはcliのバージョンは0.4.9以上にしてください。
Napterで接続する
まずは監査ログの対象(Napterでの接続)を作成するために、Napterでssh接続します。
%soracom port-mappings create --body @napter.json
{
"createdTime": **********,
"destination": {
"imsi": "**************",
"port": 22
},
"duration": 1800,
"endpoint": "**********:*****",
"expired": false,
"expiredTime": *******,
"hostname": "******.napter.soracom.io",
"imsi": "***************",
"ipAddress": "*****",
"operatorId": "*****",
"port": ****,
"source": {
"ipRanges": [
"******"
]
},
"tlsRequired": false
}
接続できたらsshでログインしてみましょう。
監査ログを取得する
では、監査ログを取得してみます。
%soracom audit-logs napter get
[
{
"connectionId": "*************************",
"createdAt": *****************,
"direction": {
"destinationIPAddress": "************",
"destinationPort": 22,
"sourceIPAddress": "***********",
"sourcePort": **
},
"imsi": "***********",
"operatorId": "*************",
"tls": false,
"type": "CLOSED"
},
{
"connectionId": "************************",
"createdAt": ****************,
"direction": {
"destinationIPAddress": "************",
"destinationPort": 22,
"sourceIPAddress": "***********",
"sourcePort": **
},
"imsi": "************",
"operatorId": "*****",
"tls": false,
"type": "CONNECTED"
},
.....
]
こんな感じで簡単に取得できます。
指定できるオプションは以下の通りです。
オプション | 機能説明 |
---|---|
--fetch-all | 自動的にページネーションする。デフォルトでON? |
--from int | 取得するログの開始時刻。unixtime millisなので、出力の「createdAt」の値を参考に |
--last-evaluated-key time | ページネイトしたときの最後のエントリの「createdAt」を入れると次のページから取得される |
--limit int | 取得するエントリー数 |
--resource-id | リソースのIDで取得するものを指定・・とあるが、connectionIdを指定しても効かなかったので何か別の物? |
--resource-type | リソースタイプ。"ACCESS"とか指定できるのかと思ったらどうも"Subscriber"しか指定できない模様。今後の拡張で使われる? |
--to int | 取得するログの終了時刻。--fromと同じく範囲指定に使う |
すいません、ちょっとオプションは調べきれていませんが、from/to/limit/last-evaluated-keyなどをうまく使ってページネイト処理を作りやすいようになっていますね。
まとめ
監査ログは取得して別の形式に成形して利用することが多いと思いますので、cliで取得できるのはとても便利です!
毎月の報告書作成のバッチなどで是非有効活用してください。