認証と認可は、似ているようで、まったく別のものです。「この人に、管理者権限を、付けておいてください。そのほうが、楽なので」
情シスなら、一度は、言われたことがあるはずです。そして、「楽なので」で付けた権限ほど、あとで、外すのが大変です。
今回から、シリーズ「情シスのためのセキュリティ基礎」(全5回)が始まります。特定の製品に依存しない、考え方を中心に、実機の画面で確かめながら進めます。第1回は、認証・認可・最小権限です。
結論:「誰か」を確かめるのが認証、「何ができるか」を決めるのが認可
| 用語 | 答える質問 | 例 |
|---|---|---|
| 認証(AuthN) | あなたは、誰ですか? | パスワード、多要素認証、証明書 |
| 認可(AuthZ) | あなたは、何をしてよいですか? | フォルダーのアクセス権、管理者かどうか、ロール |
Microsoft の公式ドキュメントでは、認証は「本人であることを証明するプロセス」、認可は「認証された相手に、何かをする許可を与えること」と説明されています。認証が先、認可が後です。入口で、本人確認をして、次に、入れる部屋を決める、と考えると、迷いません。
| 順番 | 例えると(オフィスの入口) |
|---|---|
| 認証 | 社員証を、ゲートにかざす(本人確認) |
| 認可 | その社員証で、入れる部屋が決まる(サーバールームには入れない、など) |
認証が通っても、認可が足りなければ、操作はできません。逆に、認可を広げすぎると、認証が破られたときの被害が、大きくなります。
最小権限の原則:「必要なだけ」を、渡す
セキュリティの基本中の基本が、最小権限(least privilege)です。NIST の用語集では、各主体に、役割を果たすために必要な最小限のリソースと権限だけを与えること、と定義されています。
| 考え方 | 具体例 |
|---|---|
| 必要な人にだけ | 管理者権限は、管理作業をする人だけ |
| 必要な範囲だけ | 営業のファイルサーバーは、営業部だけがアクセスできる |
| 必要な期間だけ | 作業のときだけ権限を付け、終わったら外す |
| 普段使いと管理を分ける | 日常のアカウントと、管理用のアカウントを分ける |
「楽だから」「あとで、また付けるのが面倒だから」の例外は、積み重なると、誰が、何をできるのか、誰にも分からなくなります。
実機で確認:この PC の「管理者」と「アカウント」の数
実際に、自分の PC で、管理者が何人いるか、アカウントがいくつあるかを、見てみます。
(Get-LocalGroupMember -Group Administrators | Measure-Object).Count
(Get-LocalUser | Where-Object Enabled | Measure-Object).Count
Get-LocalUser | Where-Object Enabled | Format-Table Enabled, PasswordRequired, PasswordExpires

僕の PC は、こうでした。
- Administrators グループのメンバー:2
- 有効なローカルユーザー:3
- パスワードが必要(PasswordRequired):3つとも True
- PasswordExpires:3つとも空欄(パスワードに有効期限が設定されていない状態、と読めます)
ここで確認したいのは、「想定した人数か」です。管理者が2人いるなら、その2つが、何のアカウントか、説明できるか。説明できないアカウントがあれば、それが、最初の調査対象です。
個人の PC でも、会社の PC でも、「管理者の一覧を、説明できる状態」が、最初のゴールです。
認証の次に、認可を決めるときの、3つの問い
新しく権限を付けるときは、この3つを確認します。
- 誰に?(個人か、グループか。個人に直接付けないほうが、後で管理しやすい)
- 何に対して?(フォルダー、システム、クラウドのサービス)
- どのくらい?(読み取りだけか、変更もか、管理もか)
グループで管理すると、人が異動したときに、グループから外すだけで済みます。個人に直接権限を付けると、外し忘れが起きます。
認証を強くする、基本の考え方
| 手段 | 考え方 |
|---|---|
| 強いパスワード | 長く、使い回さない |
| 多要素認証(MFA) | パスワード以外の要素を、もう1つ求める。ブルートフォース攻撃への対策として、よく使われる |
| 共通アカウントを作らない | 「誰が」操作したか、後から追えなくなる |
| 一元管理(SSO) | 1か所で認証し、各サービスにログインできる。追加・削除が、1か所で済む |
共通アカウントは、認証の問題であると同時に、監査(第4回)の問題でもあります。誰が、やったのか分からないログは、調査の役に立ちません。
僕のやらかし:「あとで外す」と言って、外していない
障害対応のために、作業者に、一時的に、管理者権限を付けました。「終わったら外す」つもりでした。
ところが、障害は収まり、次の障害が来て、権限のことを、忘れました。半年後の棚卸しで、「なぜ、この人が、管理者なのか」と聞かれ、答えられませんでした。
調理中に、「あとで片づける」と置いた包丁が、そのまま、半年ぶん、並んでいたようなものです。以来、権限は、「期限と理由」を一緒に記録し、定期的に、棚卸しをしています。
今回覚えたコマンド
| コマンド | 意味 |
|---|---|
Get-LocalGroupMember -Group Administrators |
管理者グループのメンバー |
Get-LocalUser |
ローカルユーザーの一覧 |
Where-Object Enabled(Get-LocalUser と組み合わせ) |
有効なユーザーだけ |
次回予告
次回は、IP アドレス・ポート・ファイアウォールの役割です。認証と認可が「人」の話だったのに対し、次は「通信」の入口を、どう守るかの話です。
参考
ITもごはんも、腹八分目が長続きのコツ!

コメント