【初心者向け】日常にある認証と認可について考えてみた
はじめに
AWSを学習していると、認証と認可という言葉がでてきます。特にIAM(AWS Identity and Access Management)によって権限を管理する際に、この考え方はとても重要になりますが、初心者である私はこれまで認証と認可の違いについて意識してこなかったため、理解するのが難しいと感じました。エンジニアの方に具体例を教えてもらい分かりやすかったので、自分でも身の回りにある認証と認可について考えてみました。
認証と認可とは
認証とは
「あなた誰?」を確認します。 本人確認書類、IDとパスワード、顔認証、指紋などの生体認証などを用いて、あなたが誰であるのかを特定するのが認証です。
認可とは
「何の権限持ってる?」を確認します。 条件を満たすことにより、許可を与えられます。
日常にある認証と認可
日常にも認証と認可はあります。身近な例についていくつか考えてみました。
運転免許証
運転免許証は、認証と認可の両方に使うことができます。
- 「あなた誰?」:名前、住所、生年月日、顔写真
- 「何の権限持ってる?」:中型自動車、普通自動二輪、原動機付自転車、などの運転
あなたが誰で、本人であると認証できることと、何を運転してよいかは別です。 自動車の種類に応じて、それぞれの認可を取得しなければなりません。
また、認証のみの目的で使用することも可能です。 例えば、銀行口座の開設などで、身分証明書として運転免許証を使用する場合。 この人が本人であるということを確認するための書類として使用されます。
パスポートとビザ
パスポートでは、国籍やあなたが誰であるかを確認ができます。
一方、外国に行く際、パスポートを持っているからと言ってどの国にも入れる訳ではありません。 入国の許可を得るには、ビザが必要です(あるいはビザ免除措置)。
- 「あなた誰?」:国籍、名前、生年月日、顔写真、署名
- 「何の権限持ってる?」:ビジタービザ、短期商用ビザ、就労ビザ、配偶者ビザ
何日滞在してよいのか、何の目的で滞在してよい(何をしてよい)のかといった認可がビザになります。 ビザの種類に応じて、許可される内容が変わってきます。
ウェブサイト
会員登録のあるウェブサイトでは、ログインすることによってあなたが誰であるかを認証します。
また、会員レベルによって利用できる内容・範囲が異なります。例えばAmazonの場合、無料の一般会員と、有料のPrime会員があります。
- 「あなた誰?」:ID (e-mail)とパスワード
- 「何の権限持ってる?」:一般会員、Prime会員
ログインして認証できたからといって、誰でもPrime会員得点を利用できるわけではありません。 Prime会費を支払って認可されてはじめて利用可能となります。
AWSにおける認証と認可
AWSアカウントでは、ログインする際にルートユーザーまたはIAMユーザーを使用できます。
- 「あなた誰?」:ID (e-mail)とパスワード、MFA(多要素認証)
- 「なんの権限持ってる?」:無制限アクセス、Admin権限、その他設定した権限
ID (e-mail)とパスワードでマネジメントコンソールにログインできることと、何ができるかは別です。 ルートユーザーであれば、無制限アクセスが許可されていますので、全てのリソースにアクセスすることができます。IAMユーザの場合には、それぞれのユーザーにどんな権限(IAMポリシー)を与えられているかによって異なります。
おわりに
日常にある認証と認可について具体例を元に考えることで、IAMユーザー、IAMポリシーの違いを理解することができました。IAMについては別記事に書いていますので、これから勉強したいという方の役に立てると嬉しく思います。