用語集/ Glossary
本文の用語と、動いているものの名前
前半が技術用語、中ほどが実際に稼働しているリソースの名前、後半が運用上の言葉です。本文では初出のときに短い注釈を付けていますが、途中から読んだ場合はこちらを参照してください。数値は既定値で、運用に合わせて変更できるものが多く含まれます。
技術用語Terms
本文に正式名で出てくる技術の説明です。初出のときにも短い注釈を付けていますが、途中から読んだ場合はこちらを参照してください。
- BoxBox
- 案件や取引先ごとの共有単位。メンバーとロールを持ち、「ここから外には出さない」範囲がこの単位で決まります。松葉の権限はすべて Box を基準に判定します。
- Row Level SecurityRow Level Security
- データベース自身が「誰がどの行を読めるか・書けるか」を判定する仕組み。画面の作りに不具合があっても、範囲の外のデータは返りません。本文では「データベース側の範囲制限」と書いています。
- 署名付き URLSigned URL
- 期限つきでファイルの読み書きを許す URL。松葉ではダウンロード用もアップロード用も短時間で切れます。期限が過ぎた URL は誰が持っていても使えません。
- 確認コード(ワンタイムコード)One-Time Password
- 本人確認のためにメールへ送る 6 桁の数字。社外ユーザのサインインでは有効 5 分、共有リンク・ファイルリクエストの受け取りでは有効 10 分。いずれも 1 つのコードにつき、一定回数の誤入力で失効します。
- 二要素認証Multi-Factor Authentication
- パスワードなど 1 つの要素だけに頼らず、もう 1 つの確認を求める方式。松葉の社外ユーザはメールの確認コードを使い、社内ユーザは Google Workspace 側の設定に従います。
- ClamAVClamAV
- オープンソースのウイルス検査エンジン。アップロードされたファイルはすべてこれを通り、問題がなかったものだけが Box に現れます。
- EICAREICAR Test File
- ウイルス対策が実際に動いているかを試すための、無害な検査用ファイルの国際的な標準。松葉では毎月これをアップロードし、検出できるかを確かめています。
- PostgreSQL(Supabase)Database
- 本体のデータベース。Supabase はその運用サービスで、バックアップや復元の設定もこちらで行います。ファイルの中身は別の保管先にあり、ここには置きません。
- PITRPoint-in-Time Recovery
- データベースを過去の任意の時点へ戻せる仕組み。さかのぼれる期間には上限があります。日次のバックアップと違い「昨日の 14 時 30 分」のような指定ができます。
- Google WorkspaceGoogle Workspace
- 社内アカウントの基盤。松葉の社内ユーザはこのアカウントでサインインします。ここで停止・削除された方は、翌日の照合で松葉側にも知らせが出ます。
- Google DriveGoogle Drive
- Box のファイルを片方向で複製する先。松葉が止まっているときでも、Drive 側でファイルを開ける備えです。Drive 側での編集が松葉に戻ることはありません。
- ResendResend
- メールの配送サービス。松葉から出るメールはすべてここを通ります。届いた・届かなかったの結果は折り返しで受け取り、配信状況の画面に反映します。
- Cloud RunCloud Run
- プログラムを必要なときだけ動かすクラウドの実行環境。画面・業務処理・ウイルス検査・Drive 同期・サムネイル生成の 5 つがここで動きます。使われていない間は止まっているため、費用も抑えられます。
- Cloud Run JobsCloud Run Jobs
- 決まった処理を最後まで走らせて終了する実行環境。定期的なバッチはここで動きます。画面からの呼び出しを待つのではなく、時刻で起動する点が Cloud Run と違います。
- Cloud StorageCloud Storage
- ファイルの保管場所。用途ごとに「バケット」という入れ物に分かれており、松葉では 9 種類を使い分けています。いずれも公開設定は禁止で、期限つきの署名付き URL でしか読み書きできません。
- Pub/SubPub/Sub
- 出来事を発行する側と受け取る側を切り離す連絡経路。受け取る側が一時的に止まっていても出来事は保持され、復旧後に届きます。検査の完了やファイルの追加をサービス間で伝えるのに使います。
- Cloud SchedulerCloud Scheduler
- 決まった時刻に処理を起動する時計。定期的なバッチはそれぞれ自分の起動予定を持ちます。起動に失敗した場合はクラウド側の見張りが検知します。
- Cloud TasksCloud Tasks
- 処理を 1 件ずつ順番に流す待ち行列。松葉ではメール配送の呼び出しに使っており、一度に大量の送信が発生しても順番に捌けるようにしています。
- Cloud MonitoringCloud Monitoring
- クラウド側の状態を見張る仕組み。決めた条件を超えるとメールで知らせます。松葉では 4 つの条件を設定しており、これはアプリの中のアラートとは別の経路で届きます。
- Cloud BillingCloud Billing
- 利用料金の管理。月ごとの予算と、それに近づいたとき・超えたときの知らせを設定しています。知らせるだけで、自動的にサービスを止めることはありません。
- Cloud ArmorCloud Armor
- 通信の入口に置く防御。よくある攻撃パターンの遮断と、接続元ごとの回数制限を行います。アカウントを持たない相手が触れる公開ホストには、本体とは別のルールを掛けています。
- Cloud Load BalancingCloud Load Balancing
- すべての通信を最初に受ける入口。暗号化された通信をここで受け止め、2 つのホスト名を行き先ごとに振り分けます。Cloud Armor の防御が効くのもこの位置です。
- WebhookWebhook
- 外部のサービスから結果を折り返してもらう連絡口。メールが届いた・届かなかったといった結果は、配送サービスからこの経路で受け取ります。
- 署名鍵Signing Key
- サインインの状態が本物であることを証明するために使う鍵。年に一度入れ替える設計で、入れ替えのあと一定期間は古い鍵も並行して有効にし、利用者が突然サインアウトされることを防ぎます 実装予定 · Step 4b
稼働リソースRunning Resources
本文に名前で出てくる、実際に動いているホスト・サービス・実行環境・保管先・待ち行列・テーブルです。
- portal.example.comHost
- 本体のホスト。サインインが必要な画面と業務処理はすべてこちらです。
- inbox.portal.example.comPublic Host
- アカウントを持たない相手が触れる公開ホスト。共有リンクの受け取りとファイルリクエストの提出、その 4 つの経路だけを通します。本体の機能はこちらからは一切触れません。
- matsuba-webCloud Run
- 画面のアプリケーション。Box の一覧も管理コンソールもここが返します。
- matsuba-apiCloud Run
- 業務処理と権限判定のアプリケーション。サインイン、署名付き URL の発行、メール文面の組み立てもここが担います。
- matsuba-scannerCloud Run
- ClamAV でウイルス検査を行うサービス。1 度に 1 ファイルずつ扱い、検査中は他の処理と混ざりません。
- matsuba-syncCloud Run
- Google Drive への片方向の複製を行うサービス。ファイルの追加・差し替え・削除の出来事を受けて動きます。
- matsuba-thumbnailerCloud Run
- 一覧やプレビューで使う画像を作るサービス。検査を通ったファイルを受けて動きます。
- matsuba-batchCloud Run Jobs
- 定期処理の実行環境。処理の種類を引数で切り替えて 1 つの環境にまとめてあります。毎分の通知の払い出しから月次の記録の退避まで、大半の自動処理がここで動きます。
- matsuba-sync-batchCloud Run Jobs
- Drive 同期の定期補修を行う独立した実行環境。日次ですべての Box を突き合わせ、取りこぼしを拾い直します。
- clamav-mirror-updaterCloud Run Jobs
- ウイルスの検出パターンを 6 時間ごとに取り寄せる独立した実行環境。取り寄せた定義は検査サービスが読み込みます。
- notification-queueCloud Tasks Queue
- メール配送の呼び出しを 1 件ずつ順番に流す待ち行列。松葉が持つ待ち行列はこの 1 本だけです。
- 未検査バケットBucket
- 検査前の一時置き場。ブラウザから直接ここへ送られます。取り込まれずに放置されたファイルは一定期間で自動的に消えます。
- 検査済みバケットBucket
- 検査を通ったファイルの保管先。Box の一覧に出るのは、ここに移ったものだけです。
- 隔離バケットBucket
- ウイルスが検出されたファイルの隔離先。システム管理者の専用の権限でしか読み出せず、利用者からは見えません。
- ミラーバケット(ウイルス定義)Bucket
- ウイルスの検出パターンの写しの置き場。6 時間ごとに取り寄せた定義をここに置き、検査サービスが読み込みます。
- 共有 ZIP バケットBucket
- 共有リンクでフォルダをまとめて渡すときに作る ZIP の一時置き場。一定期間で自動的に消えます。
- 一括 ZIP バケットBucket
- Box の中のファイルを一括ダウンロードするときに作る ZIP の一時置き場。一定期間で自動的に消えます。
- アバターバケットBucket
- 本人がアップロードしたプロフィール画像の保管先。
- サムネイルバケットBucket
- 一覧やプレビューで使う縮小画像の保管先。元のファイルとは別に持ち、表示を速くします。
- 監査エクスポートバケットBucket
- 監査ログの退避先。25 ヶ月を超えた記録と、書き出した CSV を置きます。長期保存向けの安価な保管方式を使っています。
- audit_logsTable
- 監査ログのテーブル。追記だけができ、更新と削除はデータベース側で拒否されます。月ごとの区画に分かれ、2 年分をここに置きます。
- app_alertsTable
- アラートの台帳テーブル。異常を 1 件 1 行で記録し、未対応 / 対応中 / 完了 / 無視 の対応状態を持ちます。
管理用語Administration Terms
画面や本文に出てくる運用上の言葉です。数値はいずれも既定値で、運用に合わせて変更できます。
- 保持期間Retention
- ファイルが自動的にゴミ箱へ移るまでの期間。全社の既定は 180 日で、Box ごとに上書きできます(30 / 90 / 180 日または HOLD からの選択式・自由入力なし)。アクセスがあると起点が延びるため、使われているファイルは消えません。
- ゴミ箱保持期間Trash Retention
- ゴミ箱に入ったファイルが完全に消えるまでの期間。全社一律で既定 90 日です(30 / 90 / 180 日または無期限からの選択式・自由入力なし)。保持期間とは別のものです。
- HOLD(保持)Legal Hold
- 自動削除の対象から外す指定。Box 単位の HOLD(理由の入力 10〜256 字が必要)が動いており 稼働中、全社 / フォルダ / ファイルの階層と、容量が一定以上の HOLD を目立たせるバッジは 実装予定 · Step 4a です。
- アーカイブArchive
- フォルダを「もう書き込まない」状態にすること。中のファイルは残り、元に戻せます。削除とは違います。
- 隔離Quarantine
- ウイルスが検出されたファイルを、利用者から見えない専用の保管先へ移すこと。取り出しには理由の入力が必要で、記録が残ります。
- スキャン状態Scan Status
- ファイルごとの検査の進み具合。スキャン待ち / スキャン中 / クリーン / 隔離済み / スキャン失敗 / スキャンできません の 6 つが日常的に目にする状態で、クリーンだけが利用者に開示されます。このほかに、申告された内容と実物が一致しなかったときの終端「整合性エラー(取り消し)」があります。
- 死蔵Dormant
- 長い間まったく使われていない状態。Box は 90 日操作なしを目安に絞り込めるようにします。放置された Box とアカウントは、容量とリスクの両面で負担になります。
- 送信予定Pending Delivery
- メールを送る予定を、業務のデータと同じひとまとまりの書き込みで記録しておく方式。別の処理が 1 分ごとに拾って配送するため、「データは保存されたのにメールだけ出ない」が起きません。
- デイリーサマリDaily Summary
- 1 日分の通知をまとめて 1 通で受け取る設定。受け取る時刻を 30 分刻みで選べます。急ぐ必要のない業務通知をまとめるための選択肢です。
- ゼロベース通知Ad-hoc Notice
- 用意された文面を使わず、件名と本文を直接書いて送る連絡。送った記録は文面なしの送信として残り、管理コンソールから見返せます。
- 信頼済みデバイスTrusted Device
- 一度確認コードを通した端末を 30 日間覚えておく仕組み。サインインのたびに期限は引き直され、30 日使わなかった端末だけが再び確認コードを求められます。一覧から個別にも一括にも取り消せます。
- バックアップコードBackup Codes
- 確認コードのメールを受け取れないときのための使い捨ての控え。10 個発行され、それぞれ 1 回だけ使えます。使い切った場合はシステム管理者がリセットします。
- 参加申請Join Request
- 社内ユーザが、検索できる状態の Box へ自分から参加を申し込む仕組み。オーナーが承認するまで中身は見えません。承認されない申請は一定期間で自動的に取り消されます。
- Box 可視性Box Visibility
- Box を誰に見せるかの 3 段階(メンバーのみ / 社内に検索可 / 社内に公開)。社外ユーザは可視性にかかわらず、メンバーになっている Box しか見えません。
- Drive アーカイブDrive Archive
- Drive 同期が ON の Box で、松葉から削除されたあとも Drive 側に残っているファイルを参照するためのタブ。書き込みはできません 実装予定 · Step 4a
- 管理コンソールAdmin Console
- システム管理者だけが入れる画面群。計画は 19 画面で、現在は 6 画面が稼働中です。日常の運用はここで完結する設計にしています。
- アラート台帳Alert Ledger
- 異常を 1 件 1 行で記録する台帳。28 種類の異常を載せる設計で、いま起票が動いているのは 19 種、残りは各機能の実装とともに増えます。未対応 → 対応中 → 完了 / 無視 の状態管理は一覧画面 実装中 で行えるようになります。同じ異常が続いても 1 行にまとまります。
- 重大操作Critical Action
- 影響が大きい 14 の操作に、理由の入力・監査記録・全管理者へのメール通知を必須とする統一ルールを設ける設計です 実装予定 · Step 4b。隔離ファイルの取り出しなど一部の操作では、理由と記録が先行して動いています。
- 監査ログAudit Log
- 誰がいつ何をしたかの記録。追記だけができ、後から書き換えられません。システム管理者による閲覧そのものも記録の対象です。
- 世代管理Versioning
- 同じファイルを差し替えたときに、前の内容も残しておく仕組み。既定は 10 世代で、Box ごとに 1〜20 の範囲で変えられます。