강의

멘토링

로드맵

レビュー 1 件

平均評価 3.0

100% 受講後に作成

以前、講師の「n8n自動化完璧ガイド」を受講して満足していたので、今回は実サービスの構築方法に関する講義が行われるということで期待を持って受講しました。 全体的に、バイブコーディングとプロンプトの修正を通じて実際のAIエージェントサービスを構築していく手法についての説明は良かったです。また、n8nが2.xバージョンで変更された点に触れているのも良かったと思います。 ただ、講義の序盤から実習を進めるにあたって、非常に致命的な問題を発見しました。この点により、評価を下げざるを得ないことは大変遺憾です。 https://github.com/n8n-io/n8n/security/advisories/GHSA-44v6-jhgm-p3m4 n8nでは、Pythonコードノードで標準ライブラリではない外部ライブラリをインストールおよび実行する必要があるコードが動作することを「Python Task Runner Sandbox Escape」問題とし、致命的なセキュリティ問題として規定しています。そして、該当の問題が発生するたびに、即座にパッチを当てています。 講師の方はこの問題に対し、講義の序盤でdocker-composeをセッティングする際にn8n 2.12.2バージョンを使用するようにと一言言及されただけでしたが、実際に私がセッティングした結果、PythonタスクランナーのDockerfileまでバージョンを合わせなければ、該当のコードノードが正常に動作しませんでした。Dockerに慣れていない方や、この問題自体を知らない場合、これが原因で講義の実習が不可能になる可能性が非常に高いと思われます。これについて明確に告知するか、別の解決策を提示して、今後の受講生が不便を感じないようにしていただきたいです。

nambaksa님의 프로필 이미지
nambaksa
インストラクター

こんにちは、Seunghyun Lee さん。 まず、実習環境の重要性については、私も100%共感しております。受講評価の点数を下げてまで残してくださった内容を拝見し、複数のバージョンを直接テストしながら、どれほどの試行錯誤と不便を経験されたか、十分に伝わってきました。この点については、講義を提供する立場として、間違いなくより細心の注意を払って案内すべきだったと考えております。 おっしゃられたPython Task Runner Sandbox関連のイシューについて補足説明をさせていただきますと、私が該当の講義のためにプロジェクトを構成しテストしていた数ヶ月前の時点では、現在のように問題として浮上している状況ではありませんでした。 もともとn8nが初めて登場した際、このようなAI Agentツールの中で唯一Pythonコードノードを提供していることが開発者の間で大きな話題となりましたが、実際にコードノードを使用してみると、外部ライブラリが使用不可であったり、機能が非常に制限されていたりと、「片手落ちの機能」だという不満が多くありました。その後、このコードノードが2.xバージョンで「タスクランナー」という概念に拡張されました。以前使用していた文法が変更されたため、旧バージョンのコードノードが再利用できないという不便さに不満の声もありましたが、1.xバージョンでは使用できなかった外部ライブラリが使用できるようになったことを歓迎する人も多くいました。 もちろん、n8n 2.xでタスクランナーの概念が初めて導入された当時から、コードノードについては開発者コミュニティ内でも様々な意見があり、同様の文脈のイシューが断続的に言及されていたのは事実です。ただ、この部分は観点によってはセキュリティの脆弱性と見ることもできますし、逆に柔軟な実行のための機能として解釈することもできる、多少境界線上にある領域でもあります。 また、以前は大きな問題として扱われていなかった部分が、現時点でセキュリティイシューとして公式に処理された背景については、私も事前には把握できておりませんでした。講義を準備していた当時は、2.xバージョンがある程度安定期に入ったと判断し、バージョンの依存関係まで十分に考慮できていなかった点は、私の判断不足であったと考えております。 ご指摘いただいた通り、n8nのバージョンだけでなく、Task RunnerおよびDockerfileの環境まで合わせなければ正常に動作しないという点は、序盤に明確に案内されるべき重要な要素でした。 ひとまず、現在のn8nインストール講義の授業資料において、n8nだけでなくタスクランナーのDockerfileまでバージョンを明示した内容に差し替え、該当講義の授業ノートにバージョン明記に関する内容を追加し、他の受講生の方々が同様の問題を経験しないようにいたしました。また、後ほど動画ファイルにも字幕を使用して、おっしゃられたバージョンの固定に関する内容を追加しておくようにいたします。 改めて、詳細かつ誠実なフィードバックをいただき、感謝申し上げます。 --------------- 追加事項 上記の返信を記載した後、私がGitHubおよび様々なフォーラムを参照して確認したいくつかの事項をまとめます。 本日時点の最新バージョン2.17.7において、date.today()が返すdateオブジェクトの属性が内部的にmappingproxyでラッピングされるという奇妙なバグがあります。これがバグなのか意図されたものなのかは分かりませんが(意図する理由が全くありませんが)、他のコードには何の問題もないのに、これだけが異常である点から見てバグだと思われます。この問題により、講義で提供しているコードをn8nの最新バージョンで実行すると、mappingproxyエラーが発生します。したがって、講義で提供しているコードをそのまま使用するには、2.12.2バージョンで実行するか、あるいは本日時点の最新バージョン(2.17.7)で実行する場合は、コードで使用している today = date.today() において、dateオブジェクトの代わりにtimeオブジェクトを使用するように変更する必要があります。該当の修正済みコードは、「n8nでのPythonコード実行とデータフローの理解」講義の授業資料に添付いたします。 結論として、おっしゃられたPython Task Runner Sandbox Escapeのセキュリティイシューは現在の講義とは大きな関係はなく、単にn8n自体のバグによって最新バージョンで授業資料として提供しているコードが正常に動作していない状況であると判断されます。いずれにせよ、貴重な情報をいただいたおかげで、私が見落としていたバグを知ることができ、感謝しております。

専門四柱推命AIエージェント作り - フルスタックn8n+Python のサムネイル
nambaksa

·

30 講義

·

110 人が受講

割引価格を見る
専門四柱推命AIエージェント作り - フルスタックn8n+Python のサムネイル
nambaksa

·

30 講義

·

110 人が受講