セキュリティとデータ
どこに何を置き、どう守っているかを書きます。まだできていないことも書きます。
データの置き場所
| もの | 置き場所 |
|---|---|
| サーバーと DB | 東京 |
| メディアのファイル | Cloudflare R2(アジア太平洋) |
| DB のバックアップ | Cloudflare R2(アジア太平洋) |
メディアとバックアップは日本の外に置くことがあります。「データはすべて日本に」とは言えないので、そうは書きません。
バックアップ
DB のバックアップは毎日取り、フリーのプランでは 7 日分、有料のプランでは 30 日分を残します。
バックアップとは別に、いつでもスペースの中身を自分で書き出せます(やめ方と移り方)。大事なサイトでは、定期的に書き出して手元にも残すことを勧めます。
守っていること
お客様ごとに分けて動かす
お客様の環境は、それぞれ別のプロセスと別の DB で動かしています。あるお客様の環境から、ほかのお客様の環境や、運営の内側の仕組みには届かないようにしています。
ログイン
パスワードは Argon2 でハッシュにして持ち、そのままの形では持ちません。ログインの失敗が続くと、しばらくログインを断ります。
権限と API キー
メンバーにはロールで、API キーにはキーごとの権限で、できることを絞れます。API キーの値は持たず、ハッシュだけを持ちます。
監査ログ
誰が、いつ、何を変えたかを残し、管理画面で見られます。ログインとその失敗も残します。
管理画面への書き込み
別のサイトから管理画面に書き込ませる攻撃(CSRF)を断ります。
メディアの配り方
アップロードされたファイルは、管理画面と別のドメインから配ります。ファイルに仕込まれたスクリプトが、管理画面の中で動かないようにするためです。
Webhook
本文に署名を付けるので、受け手は Hako CMS から届いたものかを確かめられます。内側のネットワークのアドレスには送りません。
通信
管理画面、API、メディアは、HTTPS だけで配っています。HTTP で来たアクセスは、HTTPS へ転送します。