Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

インタラクティブローカルデモ

注意:ライブラリのみのサンプルとは異なり、本デモには PostgreSQL と MinIO が 必要 です。

3 ロールモデル

EdgeSentry-RS は 3 つの明確なロールを中心に設計されています。デモ出力を正しく読むためには、各ステップがどのロールに属するかを理解することが重要です。

ロール責務本デモでの担当
エッジデバイスEd25519 秘密鍵で点検レコードに署名し、クラウドへ送出するexamples/edge_device.rs
エッジゲートウェイ署名済みレコードをデバイスから HTTPS/MQTT 経由でクラウドへ転送する。コンテンツは検証しないexamples/edge_gateway.rs — HTTP トランスポートはスコープ外。ディスク上のファイルがトランスポートをシミュレートする
クラウドバックエンドNetworkPolicy( CLS-06 )を強制し、IntegrityPolicyGate(ルート同一性 → 署名 → シーケンス → ハッシュチェーン)を実行し、承認されたレコードを永続化するexamples/cloud_backend.rs--features s3,postgres付き)

本デモの内容

スクリプトは Docker サービスを起動し、 3 つのロールサンプルを順番に実行します。

ステップロール内容
1 〜 3インフラDocker Compose で PostgreSQL + MinIO を起動。ヘルスチェックを待機
4エッジデバイスedge_device — 3 件のレコードに署名し/tmp/eds_*.jsonに書き込む
5エッジゲートウェイedge_gateway — デバイスの出力を読み込み、変更せずに/tmp/eds_fwd_*.jsonへ転送する
6クラウドバックエンドcloud_backendNetworkPolicyチェック → IngestService → PostgreSQL + MinIO 。改ざん拒否も表示
7クラウドバックエンドPostgreSQL から永続化された監査レコードと操作ログを照会する
8インフラDocker サービスを停止する

前提条件:

  • Docker / Docker Compose
  • Rust ツールチェーン(cargo

エンドツーエンドデモを実行:

bash scripts/local_demo.sh

スクリプトは各ステップの後に一時停止し、 Enter キー(またはOK)を押すまで次のステップへ進みません。 フロー終了時にシャットダウンステップ(docker compose -f docker-compose.local.yml down)が実行されます。

ロールサンプルの個別実行

各サンプルは Docker なしでスタンドアロンで実行することも可能です(クラウドバックエンドにインメモリストレージを使用)。

# ステップ1:エッジデバイスがレコードに署名する
cargo run -p edgesentry-rs --example edge_device

# ステップ2:エッジゲートウェイがレコードを転送する
cargo run -p edgesentry-rs --example edge_gateway

# ステップ3a:クラウドバックエンド(インメモリ — Docker不要)
cargo run -p edgesentry-rs --example cloud_backend

# ステップ3b:クラウドバックエンド(PostgreSQL + MinIO — Dockerが必要)
cargo run -p edgesentry-rs --features s3,postgres --example cloud_backend

各サンプルは前のサンプルの出力ファイルを/tmp/から読み込みます。順番に実行してください。

手動での確認

ステップ 6 の後に PostgreSQL に接続:

docker exec -it edgesentry-rs-postgres psql -U trace -d trace_audit

psql内で:

SELECT id, device_id, sequence, object_ref, ingested_at FROM audit_records ORDER BY sequence;
SELECT id, decision, device_id, sequence, message, created_at FROM operation_logs ORDER BY id;

MinIO のエンドポイント:

  • API: http://localhost:9000
  • コンソール: http://localhost:9001
  • デフォルト認証情報: minioadmin / minioadmin
  • セットアップコンテナが作成するバケット: bucket

ローカルバックエンドの手動停止(スクリプトを途中で中断した場合のみ):

docker compose -f docker-compose.local.yml down

次のステップ

ローカルデモから本番環境へ移行する準備ができたら、本番デプロイガイドを参照してください。TLS 証明書管理、PostgreSQL チューニング、S3/MinIO ライフサイクルルール、systemd サービスユニット、水平スケーリングについて説明しています。