Nodejs (ESM)
このガイドでは、アプリケーションへの Zen Firewall by Aikido のインストールとセットアップの手順を説明します。以下の手順に従ってアプリケーションを保護してください。
問題や不具合が発生した場合は、遠慮なくサポートチャットまたは Github issues でご連絡ください。
- Node.js 24+ を推奨します。
- AWS Lambda ハンドラーとの統合。
- Aikidoアカウント と Zen Firewallトークン
インストールと設定
Section titled “インストールと設定”アプリケーションの起動コマンドを変更し、Zen Firewall を含めます。
node -r @aikidosec/firewall/instrument your-app.js代わりに、NODE_OPTIONS 環境変数に Zen Firewall を含めるよう設定することもできます。
export NODE_OPTIONS='-r @aikidosec/firewall/instrument'環境変数の読み込み
Section titled “環境変数の読み込み”--require / -r を使って Zen Firewall をプリロードする場合、計装フックはアプリケーションコードより前に実行されます。つまり、dotenv のようなパッケージによって読み込まれる環境変数は、Zen の起動時点ではまだ利用できません。
計装中に AIKIDO_TOKEN などの環境変数を確実に利用できるようにするには、Node.js のネイティブな --env-file フラグを使用します。
node --env-file=.env -r @aikidosec/firewall/instrument your-app.jsSentry と Zen を併用する
Section titled “Sentry と Zen を併用する”ESM アプリケーションで Zen と Sentry を併用するには、Node.js v24.11.1 / v25.1.0 以降を使用する必要があります。Sentry の ESM 向け手順に従って Sentry をセットアップしてください。その後、Sentry を読み込む前に --require / -r を使って Zen を必ずプリロードしてください。
node -r @aikidosec/firewall/instrument --import ./instrument.mjs your-app.jsZen は ESM パッケージの ESM サブ依存関係を保護できません。例えば、ESM パッケージ foo が同じく ESM パッケージであるサブ依存関係 bar をインポートしている場合、Zen は bar 内のコードを保護できません。これは、V8 エンジンが内部の ESM パッケージの評価を Node.js が監視することを(まだ)許可していないためです。未解決の issue: Adding an evaluation hook for v8::Module。