【入門編】 アクセスレビューと定期的な権限棚卸し – インフラ・ネットワーク & クラウドセキュリティ防御ガイド

こんにちは!インフラやセキュリティの世界へようこそ。
初めてサーバーを触ったり、クラウド(AWSやAzureなど)の管理画面を開いたりするときって、なんだかワクワクしますよね。「自分がこのシステムを動かしているんだ!」という実感が湧いて、とても楽しい瞬間だと思います。

でも、セキュリティの世界では、この「楽しさ」の裏にちょっとした落とし穴があるんです。それは、「一度配った合鍵が、いつの間にか増えすぎて、誰がどの鍵を持っているのか分からなくなってしまう」という問題です。

今日は、私たちの身の回りにある「防犯」の仕組みを例にしながら、サーバーやクラウドの安全を守るための「アクセスレビュー(権限の棚卸し)」について、一緒に優しく一歩ずつ学んでいきましょう!

—

1. 家の鍵に例えて考えてみよう:合鍵、配りすぎていませんか?

想像してみてください。あなたが新しく一軒家を買いました。
最初はあなた一人だけが住む予定だったので、玄関の鍵はあなたしか持っていません。完璧に安全ですよね。

しばらくして、家事代行の人に来てもらうことになりました。あなたは合鍵を1本作って渡します。
さらに数ヶ月後、今度は庭木の手入れをする植木屋さんに、短期用の合鍵を渡しました。
そのまたしばらく後、お隣さんが旅行中の荷物を受け取ってくれるというので、また合鍵を渡しました。

さて、ここで質問です。
「今、この家に入るための合鍵は、世の中に何本存在していて、誰が持っているか正確に把握できていますか?」

もし、家事代行の契約がとっくに終わっているのに、その人がまだ合鍵を持っていたとしたら……ちょっとゾッとしますよね。夜中に知らない人が勝手に入ってくるかもしれません。

ITのサーバーやクラウドの世界も、これとまったく同じなんです。
新しいメンバーが入社するたびに「管理者権限」を渡し、外部のパートナー企業に一時的な作業用アカウントを発行し、退職した人のアカウントはそのまま放置する……。これを繰り返していると、いつの間にか「誰でも入れる状態のボロボロのセキュリティハウス」が完成してしまいます。

だからこそ、定期的に「今、誰にどんな権限を渡しているんだっけ?」と確認する作業が必要になります。これが「アクセスレビュー(権限の棚卸し)」と呼ばれるものですね。

—

2. 攻撃者は「使われていない古い鍵」を狙っている

私たちホワイトハッカーがインフラの診断(ペネトレーションテスト)に入るとき、一番最初に何を狙うと思いますか?
ピカピカに新しい、セキュリティ対策がバッチリされた最新の入り口ではありません。

攻撃者が好むのは、「ずいぶん前に退職した社員の、パスワードが簡単な古いアカウント」や、「去年のキャンペーンのときに一時的に作って、誰も監視していないテスト用サーバーの管理者権限」です。

攻撃者は、正々堂々正面突破するような面倒なことはしません。家主が忘れてしまった「裏口の古い合鍵」や「鍵が差しっぱなしの窓」を見つけて、そこから静かに忍び込むのです。

不要な権限や使われていないアカウントを放置することは、「泥棒にいつでもどうぞと合鍵をプレゼントしているようなもの」だと言えます。だからこそ、定期的な見直しが命を守る盾になるんですね。

—

3. クラウド時代の救世主:「アクセスアドバイザー」を活用しよう

「じゃあ、毎日何百人もの社員の権限を、手作業でチェックしなきゃいけないの? そんなの無理!」って思いますよね。その通り、人間の目だけでこれを管理するのは不可能に近いです。

ここで、AWSなどのクラウドが用意してくれている便利な機能「アクセスアドバイザー(Access Advisor)」の出番です。

アクセスアドバイザーは、いわば「この鍵(権限)、最近使われたっけ?」を自動で記録してくれる賢い番人です。
例えば、「山田くんには、データベースを全部消せるような強い権限を渡しているけれど、過去90日間一度もその機能を使っていないな」ということが一目で分かります。

使っていない権限が見つかったら、思い切ってその権限を剥奪(はくだつ)してしまいましょう。これを「最小権限の原則(その人が仕事をするために必要な最低限の権限だけを渡す)」と言います。

—

4. 四半期ごとのプロセスを「自動化」する仕組みづくり

アクセスレビューは、思い出したようにたまにやるのではなく、「3ヶ月に1回(四半期ごと)」など、決まったスパンで定期的におこなうのがプロのやり方です。

とはいえ、毎回エクセルを開いて手動でチェックするのは大変ですし、忘れてしまいますよね。
そこで、インフラエンジニアはこれを自動化します。

例えば、AWS環境であれば、Pythonというプログラミング言語(またはBoto3というAWS操作用のライブラリ)を使って、「90日間ログインしていないユーザーをリストアップして、Slack(チャットツール)に通知する」という仕組みを作ることができます。

実際の現場で使われるような、イメージしやすい簡単な自動化スクリプトの例を見てみましょう。(※もちろん実務ではもっと複雑ですが、基本の考え方はこれ同じです!)

import boto3
from datetime import datetime, timezone

# IAMクライアント(AWSの権限管理を操作する道具)を初期化します
iam_client = boto3.client('iam')

def check_unused_users():
    # 組織内の全ユーザーの一覧を取得します
    users = iam_client.list_users()['Users']
    
    print("--- 権限棚卸しチェックレポート ---")
    
    for user in users:
        username = user['UserName']
        
        # ユーザーの最後のアクティビティ(ログイン日時など)を取得
        response = iam_client.get_user(UserName=username)
        
        # パスワードの最終使用日などを確認するロジック(簡易版)
        # 実際にはここに「90日以上ログインしていないか?」の判定を入れます
        print(f"ユーザー名: {username} の状態を確認しました。")

if __name__ == "__main__":
    check_unused_users()

このように、人間がうっかり忘れてしまう作業をプログラムやクラウドの機能に肩代わりさせることで、セキュリティの穴をスイスイと塞ぐことができるんです。

—

一歩ずつ、安全なシステムを作っていきましょう!

いかがでしたでしょうか?
「アクセスレビュー」や「権限の棚卸し」という言葉を聞くと、なんだか難しそうな書類仕事や、窮屈なルールの押し付けのように感じてしまいますよね。

でも本質はとてもシンプルです。
「自分の家の鍵の管理をしっかりして、使っていない合鍵は定期的に回収する」。これだけのことです。

新人のIT担当者や開発者の皆さんも、最初から完璧を目指す必要はありません。まずは「自分の周りにあるアカウントや権限って、今どうなっているんだろう?」と興味を持つことから始めてみてください。その好奇心こそが、最高峰のセキュリティへの第一歩になります。

一歩ずつ、安全で信頼されるシステムを一緒に作っていきましょう!

コメント

タイトルとURLをコピーしました