セキュリティとデータ

どこに何を置き、どう守っているかを書きます。まだできていないことも書きます。

データの置き場所

もの置き場所
サーバーと DB東京
メディアのファイルCloudflare R2(アジア太平洋)
DB のバックアップCloudflare R2(アジア太平洋)

メディアとバックアップは日本の外に置くことがあります。「データはすべて日本に」とは言えないので、そうは書きません。

バックアップ

DB のバックアップは毎日取り、フリーのプランでは 7 日分、有料のプランでは 30 日分を残します。

バックアップとは別に、いつでもスペースの中身を自分で書き出せます(やめ方と移り方)。大事なサイトでは、定期的に書き出して手元にも残すことを勧めます。

守っていること

お客様ごとに分けて動かす

お客様の環境は、それぞれ別のプロセスと別の DB で動かしています。あるお客様の環境から、ほかのお客様の環境や、運営の内側の仕組みには届かないようにしています。

ログイン

パスワードは Argon2 でハッシュにして持ち、そのままの形では持ちません。ログインの失敗が続くと、しばらくログインを断ります。

権限と API キー

メンバーにはロールで、API キーにはキーごとの権限で、できることを絞れます。API キーの値は持たず、ハッシュだけを持ちます。

監査ログ

誰が、いつ、何を変えたかを残し、管理画面で見られます。ログインとその失敗も残します。

管理画面への書き込み

別のサイトから管理画面に書き込ませる攻撃(CSRF)を断ります。

メディアの配り方

アップロードされたファイルは、管理画面と別のドメインから配ります。ファイルに仕込まれたスクリプトが、管理画面の中で動かないようにするためです。

Webhook

本文に署名を付けるので、受け手は Hako CMS から届いたものかを確かめられます。内側のネットワークのアドレスには送りません。

通信

管理画面、API、メディアは、HTTPS だけで配っています。HTTP で来たアクセスは、HTTPS へ転送します。

まだできていないこと

  • 2 要素認証。
  • シングルサインオン(SAML)、IP アドレスでの制限。
  • 第三者による認証(ISMS、SOC 2 など)。持っていません。

ほかのものはいま、できないことにあります。