Node-REDのフロー読み込みは慎重に行いましょう


Node-REDを仕事で使用しており、毎日フローを書いています。

新人の書いたNode-REDのフローを見たときに、意図的に作成していないのにノードの設定にhttpリクエストノードのTLS設定が沢山増えているという現象が起きて、フロー読み込み時のある挙動に気づいたので、情報共有したいと思い本記事を書きました。

TLS設定ありのhttpリクエストノードのフローを読み込むとTLS設定が増えていく

現象

他のNode-REDから、TLS設定ありのhttpリクエストノードを書き出したJSONデータを自分のNode-REDに読み込むとTLS設定が増えるということがわかりました。

以下のJSONデータは、他のNode-REDからTLS設定ありのhttpリクエストノードを書き出したJSONデータです。動画では、このJSONデータを使用しました。

[{"id":"80f14d9f.3f28c","type":"http request","z":"e96a61d5.7593b","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"https://example.com/hello","tls":"2f868ea4.38f572","persist":false,"proxy":"","authType":"","x":270,"y":120,"wires":[[]]},{"id":"2f868ea4.38f572","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"cert.pem","keyname":"key.pem","caname":"","servername":"","verifyservercert":true}]

JSONデータにTLS設定がある(tls-config以降の内容)ので、読み込むたびにTLS設定が増えると想定していたのですが、自分のNode-REDでhttpリクエストノードを書き出して、自分のNode-REDに読み込んだ場合はTLS設定が増えませんでした。

以下のJSONデータは、自分のNode-REDからTLS設定ありのhttpリクエストノードを書き出したJSONデータです。動画では、このJSONデータを使用しました。

[{"id":"ee879241.2969f","type":"http request","z":"d5564071.3bb79","name":"","method":"GET","ret":"txt","paytoqs":false,"url":"https://example.com/hello","tls":"e341b60.d181c48","persist":false,"proxy":"","authType":"","x":110,"y":80,"wires":[[]]},{"id":"e341b60.d181c48","type":"tls-config","z":"","name":"","cert":"","key":"","ca":"","certname":"cert.pem","keyname":"key.pem","caname":"","servername":"","verifyservercert":true}]

以前、node-red-contrib-aws-sdkのカスタムノードを使用したときにも同じような現象が起きたことがありました。node-red-contrib-aws-sdkは、ノードの設定タブにasw-sdk-config(AWSアカウントのaccesskeyとsecretkeyの設定)が追加されるのですが、他のメンバーが作成しているNode-REDのaws-sdkノードを自分のNode-REDの読み込むと他のメンバーのaws-sdk-configがノードの設定タブに追加されて、知らない間に他のメンバーのAWSアカウントを使いそうになったことがあります。(危険)

現在も次の動画のような感じでノードの設定タブに追加されます。

以下のJSONデータは、他のNode-REDからaws-sdkノードを書き出したJSONデータです。動画では、このJSONデータを使用しました。

[{"id":"d3f782b9.e528a","type":"aws sdk","z":"d5564071.3bb79","name":"","func":"","outputs":1,"noerr":0,"config":"ea003768.3e5a38","x":800,"y":200,"wires":[[]]},{"id":"ea003768.3e5a38","type":"aws-sdk-config","z":"","name":"","accesskey":"YEKSSECCA","secretkey":"YEKSECRET","region":"ap-northeast-1","iamrole":false}]

まとめ

  1. 他のNode-REDのノードの設定ありのノードを読み込むとノードの設定タブに追加されます。
  2. 自分のNode-REDの中でフローの書き出しと読み込みを行う場合は、ノードの設定タブに新たに追加されません。
  3. 知らないうちに他人のクレデンシャル情報などを使う危険性があります。

他のNode-REDのノードの設定ありのノードを読み込む場合は、読み込んでデプロイする前にノードの設定タブを確認して適切な設定を使用しましょう。