全員がマスターキー
「面倒だからAdmin権限をつけておいたよ」。
それは、銀行の金庫の鍵を、新入社員やアルバイト、掃除のおじさんにまで配る行為です。
誰がいつ金庫を空っぽにしても、おかしくありません。
- AWSのIAMユーザーに、とりあえず `AdministratorAccess` をつけている
- DB接続ユーザーが `root` または `sa` 1つしかなく、全員で使い回している
- 誰がどのサーバーにアクセスできるか、即答できる管理台帳がない
- 退職者のアカウントを削除し忘れたことがある
しかし、セキュリティの世界において、性善説は「無防備」と同義です。
01. 権限設定は「面倒」なもの
Full Access
Full Access
Full Access
開発スピードを優先するあまり、「権限を細かく設定するのは時間の無駄」と考えがちです。
「見れない!」と言われるたびに設定を変更するのが面倒だから、最初からフル権限を渡してしまう。
しかし、その「面倒」こそがセキュリティの防波堤なのです。
インターン生が間違って本番DBをドロップしてしまった時、「彼に権限を与えた人」の責任が問われます。
ユーザーを疑うためではなく、
ユーザーを過ちから守るためにある。
02. 最小権限の原則を貫く
「必要な時に、必要な権限だけを、必要な期間だけ与える」。
これが鉄則です。
普段は「参照権限(ReadOnly)」だけで作業し、テーブル変更が必要な時だけ、
一時的に強い権限を申請する(Switch Roleなど)。
常に「最強の武器」を持って歩き回る必要はありません。それは危険すぎます。
03. 誰がいつ何をしたか
権限管理とセットで必要なのが「監査ログ」です。
アカウントを使い回していると、事故が起きた時に「誰がやったか」を特定できません。
「rootユーザーでログインがありました」というログには何の意味もありません。
個別のIDを発行し、行動を記録することで初めて、「抑止力」と「追跡可能性」が生まれます。