見出し画像

【PART1 認証と認可】ぜんぜんわからなかったIAMについてまとめてみました。

こんにちはこぐまです。

さて、本日は第1回目なので、
IAMを理解するうえで前提となる「認証」「認可」という言葉について記載しようと思います。

IAMとはAWSにおいて、「認証」「認可」を管理するサービスです。
なのでまず、この言葉から押さえていきましょう。

「認証(authentication) おーせんてぃけーしょん」
「認可(authorization)  おーそりぜーしょん」

自分は最初、もうこの時点で紛らわしい!と思ってしまいました(笑)
英語の綴りも日本語も似すぎ!
(みんなどうやって覚えているのか教えてほしい。私は「認可のゼット(Z)!」と覚えてます(笑))

認証認可に関する細かい話をしているときに、「認可」の意味で「認証」を(意識せずに)使ったりすると、相手と話がかみ合わないことがあるかもしれません。自分もこの言葉の違いを知ってからは、気を付けて使うようになりました。

では本題です。シンプルに言うと、
認証とは「誰であるか?を判断すること」
認可とは「何を許すか?を判断し、与えること」
です。

狼と7匹の子ヤギという昔話がありました。
お母さんやぎが出かけている間、子ヤギたちがお母さんに扮した狼と奮闘するお話ですね。あれがまさしく、認証・認可です。

子ヤギたちは、「おかあさんですよ~」と言っている声の主を「お母さん」であると認めたら、「家に入れてあげ」ます。

お母さんかどうかを判断することが「認証」であり、
そのお母さんを家に入れてあげることが「認可」です。

「認証」とは純粋に「誰であるか」を判断するだけです。
その後、その人に対して権限を与えるという行為は「認可」の範囲になります。(ここでは「家に入っていい」という権限)

繰り返しになりますが、大事なことなので・・
「あ、お母さんだ。」は「認証」
であり、
「おうちに入っていいよ!」は「認可」です。

よく「認証=ログインすることだよ」と書いてある記事も見かけます・・。
しかし「ログインする行為」は実際は「認証+認可」です。
子ヤギたちは「お母さんと判断した存在(認証)」を「家に入れる(認可)」というところまで実施しています。
「ログイン」とはまさにこの動きなので、正確には「認証+認可」であることがわかっていただけるかと思います。

【以下余談】
しかし実際は、まず何をするにもそのサービスにログインしないと何もできないので、「システムから認証され、利用する許可(マイページの表示など)を与えられる」という最初の一連の行為は、「認証」の概念として含まれてしまっているのかもしれません。ログインした後、自分には見えないフォルダがあったり、利用を許可されていないリンクがあったり・・などが「認可」の概念として広まっているのかなと思います。

狼は自分が「お母さん」と認められたら「家にはいること」を許されるので、いろいろ頑張ります。
結局、子ヤギたちは認証の判断を誤ってしまったことで、
お母さんではない狼を家に入れる認可をしてしまったことになりますが、
これはまたセキュリティの別の話となりますので、今回はしません。
(たしか食べられちゃうけど、お母さん帰ってきて助けておなかに石を詰めるんだよね(笑))

さて最初に話した通り、IAMとは認証・認可を管理するサービスです。
つまり、IAMとは、AWSサービスを利用しようとしているモノが、
「何者であるか?(認証)」
を判断し、そのモノに、
「何の権限を与えるか?(認可)」

を管理しているサービスということになります。

ここであえて、「AWSサービスを利用しようとしている「モノ」」とカタカナで書いたのは、AWSサービスを利用しようとしているのは人間だけではないからです。例えば、AWSサービスが別のAWSサービスを利用しようとすることもあります。また、AWSに登録されていない人間やモノ(プログラムや外部サービスなど)が、AWSを利用しようとすることもあります。
それらを含む意味で、「モノ」と表現しました。

AWSのIAMサービスの中で、
主に認証に関係するのが「IAMユーザ」「IAMロール」になります。
主に認可に関係するのが「IAMポリシー」になります。
そして、この「IAMポリシー」は、認証元や利用する状況によって
いろんな別名を持ちます。
(アイデンティティポリシー、リソースベースポリシー、アクセス許可ポリシー、許可ポリシー、信頼ポリシーとか・・ここがとても紛らわしいのです・・)
まあそのあたりもゆっくり整理していきましょう!

本日はここまで。
読んでくださってありがとうございました!

この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?