本文へ移動

2026-08-01 時点の資料です。読みやすさのために、一部の文字の色を濃くしています。

用語集/ Glossary

本文で用いた技術用語と、稼働中のサービス名

本文に出てくる技術用語と、実際に動いているリソースの名前をまとめました。本文では初出のときに短い注釈を添えていますが、あとから引くときはこちらをご覧ください。

01

技術用語Technical Terms

共有リンクShare Link
Box に招待していない相手へ、ファイルやフォルダを期限つきで渡すための URL。ログイン不要で開けます。
BoxBox
このアプリでファイルを扱う単位。案件や取引先ごとに作り、メンバーを招待して共同で使います。
トークンToken
URL の末尾に付く長い文字列。共有リンクでは 32 バイトの乱数を base64url で表した 43 文字を使います。
base64urlbase64url
任意のデータを、URL にそのまま置ける文字(英数字と - _)だけで表す方式。
署名付き URLSigned URL
「この時刻まで、このファイルの取得だけを許す」という許可が埋め込まれた一時的な URL。共有リンクでは、ファイルも ZIP も短時間だけ有効なものを発行します。
scryptscrypt
パスワードを元に戻せない形へ変換する方式のひとつ。計算時間だけでなくメモリも要求するため、専用ハードウェアを並べた総当たりに強いのが特徴です。
ソルトSalt
ハッシュ化のときに混ぜる、行ごとに異なる乱数。同じパスワードでも保存される値が変わるため、あらかじめ計算した対応表による攻撃を防げます。
HMAC-SHA256HMAC-SHA256
鍵を使って作る要約値。鍵を知らなければ同じ値を作れないため、値の照合や改ざん検知に使います。
HKDFHKDF
1 つの秘密から、用途ごとに別々の鍵を導き出す方式。秘密の数を増やさずに、用途間で鍵を分離できます。
確認コード(ワンタイムパスワード)OTP
一度きり・短時間だけ有効な数字。共有リンクでは 6 桁・10 分で、受取人のメールアドレス宛に送ります。
Cookie(HttpOnly / SameSite)Cookie
ブラウザが保持する小さなデータ。HttpOnly はページ上のスクリプトから読めなくする指定、SameSite は他サイトからの遷移で送られないようにする指定です。
レート制限Rate Limit
一定時間内の要求回数に上限を設けること。共有リンクでは、接続元ごと・リンクごと・端点ごとに別々の上限を重ねています。
行ごとのアクセス制御Row Level Security
データベース側で「この接続からはこの行だけ見える」を強制する仕組み。アプリに書き間違いがあっても、範囲外の行は返りません。
列単位の権限Column Grant
「この接続はこの列にだけ書き込める」という、より細かい権限指定。共有リンクでは、ログインした利用者が書けるのを無効化に関する 2 列だけに絞っています。
トランザクションTransaction
複数の書き込みを「全部成功」か「全部なかったこと」のどちらかにまとめる仕組み。発行と監査ログと送信予定を、この単位で確定させています。
送信予定の記録Outbox
メールなどの外部への送信を、その場で実行せず「送る予定」として同じトランザクションに記録しておく方式。送信の失敗が業務処理を巻き戻さないようにできます。
Pub/SubPub/Sub
「発行する側」と「受け取る側」を直接つながずに、間にトピックを置いて中継する仕組み。片方が止まっても、もう片方は動き続けられます。
デッドレターDead Letter
何度試しても届けられなかったメッセージの退避先。放置すると気づけないため、滞留を監視しています。
冪等(べきとう)Idempotent
同じ操作を何度行っても結果が変わらない性質。ZIP の準備要求や、無効化の操作がこの性質を持ちます。
監査ログAudit Log
「誰が・いつ・何をしたか」をあとから追うための記録。共有リンクでは発行・配布・無効化などの業務上の出来事だけを残します。
アラートAlert
システムが自動で見つけた異常の記録。重さ(重大/警告)と状態(未解決/解決済み)を持ちます。
Cloud RunCloud Run
Google Cloud のサービス実行環境。要求が来たときだけ動き、来なければ止まっているためコストが抑えられます。
Cloud Run JobsCloud Run Jobs
同じ環境で「一度きりの処理」を動かす仕組み。要求への応答ではなく、時間のかかる処理(ZIP 生成・掃除)に使います。
Cloud StorageCloud Storage
ファイルを保管する場所。用途ごとに「バケット」という入れ物を分けます。
LifecycleLifecycle
バケットに設定する自動削除の決まり。ZIP の一時置き場は「作成から 72 時間で削除」にしています。
Cloud ArmorCloud Armor
Google Cloud の防御サービス。接続元ごとの回数制限や、攻撃パターンの遮断を入口で行います。
Cloud SchedulerCloud Scheduler
決めた時刻に処理を起動する仕組み。共有リンクでは日次の掃除処理を起動しています。
ZIPZIP
複数のファイルを 1 つにまとめる形式。共有リンクでは合計 200 MB・10 ファイルまでのフォルダを ZIP にします。
ウイルス検査(検査済み)Malware Scan
取り込んだファイルを流通させる前に行う検査。共有リンクで渡せるのは、この検査を通過したファイルだけです。
列挙攻撃Enumeration
応答の違いを手がかりに、有効な値(メールアドレスなど)を 1 件ずつ突き止める攻撃。応答を常に同じにすることで防ぎます。
02

稼働リソース名Running Resources

本文に出てくる、実際に動いているリソースの名前です。

種別名前役割
ホストportal.example.com本体アプリ。ログインが必要な全機能
ホストinbox.portal.example.com受取ページ専用。共有リンクのために開いているのは受取ページと公開 API の 2 経路だけ
サービスmatsuba-web画面(発行ダイアログ・共有リンクタブ・全社管理画面・受取ページ)
サービスmatsuba-apiAPI(発行・管理・受け取り・メールの取込と送信)
ジョブmatsuba-batchまとめて動かす処理の実行環境。共有リンクでは 2 つの処理を追加
処理folder-zip-builderフォルダの ZIP を生成する処理(要求のたびに単発で起動)
処理bulk-download-jobs-cleanup-daily期限切れ ZIP の後始末と、条件が消えたアラートの整理(毎日)
バケット検査済みバケットウイルス検査を通過したファイルの保管場所
バケット共有 ZIP バケット共有リンク用 ZIP の一時置き場(72 時間で自動削除)
防御ルールarmor-matsuba-share受取ホストの外周。接続元ごとのレート制限
トピックshare_link.created発行時の案内メールの配送経路
トピックshare_link.brute_force総当たり検知の通知メールの配送経路
テーブルshare_linksリンク本体(対象・期限・パスワード・回数・受取人・ZIP の状態)
テーブルshare_link_accessesアクセス記録(9 種類の結果・日時・接続元・ブラウザ)
テーブルshare_link_otps確認コード(照合用の値・有効期限・使用済みかどうか)
テーブルaudit_logsアプリ全体で共通の監査ログ
テーブルapp_alertsシステムが見つけた異常の記録
テーブルoutbox_eventsメールなどの送信予定

サービスアカウント(処理ごとに与えている実行権限の主体)は api の実行 SA(API から署名付き URL を発行し、ZIP 生成を起動する)と batch(Jobs)の実行 SA(ZIP を生成して書き込む・メールの配送経路へ発行する)の 2 つを使い分けています。どちらにも、必要な操作だけを与えています。