FUTURE MEDIAフューチャーメディア

フューチャースピリッツの動向やお客様の導入事例など最新情報をお届けします

bg

2023.11.09

用語解説

【AWS IAMとは?】初心者でもわかるざっくり解説

目次

AWS IAMとは?

「認証と認可」の違いについて考えたことはありますか?

認証(英表記「Authentication」):利用者本人の確認を行うこと
=あなたは誰ですか?本当にあなたですか?

認可(英表記「Authorisation」):利用が適当と認め、許可をすること
=あなたはこれを扱う権利はありますか?

日常的にも様々な認証や認可があります。
例えば銀行口座を開設するときに本人確認として免許証を提示した場合、これはあなたが誰で、本人なのかを確認しています。
ですが、車を購入するときに免許証の提示を要求された場合、これはあなたが運転をする権限があるのかを確認しています。
すなわち、あなたが誰なのか、そしてあなたが何の権限を持っているのかは別のサブジェクトとなります。

では、みなさんAWSのIAMはご存知でしょうか?
IAMはIdentity and Access Managementの略称でありAWSのリソースへのアクセスをセキュアに制御します。
AWS IAM は権限を管理しており、「認証と認可」はこのサービスを理解する上で非常に重要になります。相手が誰なのか、そして誰に権限を付与するのか、AWSを安全に利用する上で重要となります。

早速ですが、「認証と認可」という言葉を念頭に、AWS IAM以下5つの要点に絞って解説していきたいと思います。

  • ・ IAM User
  • ・ アクセス認証方法
  • ├ アクセスキー
  • └ パスワード
  • ・ IAM Group
  • ・ IAM ポリシー
  • ・ IAMロール
  • AWS IAM User

    初めに「Root User」及び「IAM User」について軽く紹介します。

    「ルートユーザー」はAWSのアカウントに対し、すべての権限を持ちます。そのためAWS IAMのユーザーガイドの通り、セキュリティ面から見ても日々の業務においてルートユーザーの使用は推奨されていません。そこで通常はルートユーザーでIAMユーザーと呼ばれる個別のユーザーを作成し、IAM ユーザーに作業で必要になる権限のみを付与して運用することが一般的とされています。

    IAMユーザーはAWSリソースにアクセスするためのエンティティ(人やサービス)であり、AWSアカウントの範囲内にて個別で作成できるユーザーです。ユーザーと呼ばれますが、必ずしも人間が利用する必要はなく、プログラムによるアクセス用で使用される場合もあります。

    では次にIAMユーザーがどのようにAWSのリソースにアクセスするのかについて説明していきます。

    ◆ アクセス認証方法

    IAMユーザーにアクセスする認証方法は2つあります。

    1. AWSマネジメントコンソールへのアクセス(パスワード)
    パスワードはAWSマネジメントコンソールにログインする際に使用するもので、ユーザー名およびパスワードで認証します。AWSマネジメントコンソールはAWSのリソースやサービスを管理するためのユーザーインターフェースです。

    2. プログラムによるアクセス(アクセスキー)
    アクセスキーはIAMユーザーがアプリケーションからAWSのサービスにアクセスする際に使用する認証情報です。作成時にはアクセスキーIDおよびシークレットアクセスキーの2種類が発行され、この2種類のキー情報があれば、場所を問わず、AWSを操作できる仕組みになっています。
    (例)個人PCからIAM ユーザーと同じ権限を持つことができ、遠隔操作でEC2などのインスタンスを作成することが可能となります。

    これら二つの認証方法は冒頭に述べた「認証」と同じ役目を果たしており、ユーザー、システム、アプリケーション等、自身を正確に識別する情報です。アクセスキーのような資格情報を提供することでアクセスが可能となります。

    このようにIAMユーザーはAWSリソースへのアクセスに対して「誰」であり、アクセスキーはプログラム的にそのユーザーとして「適当」であるかの情報を提供しています。

    ◆ AWS IAM Group

    AWS IAM Groupとは複数のIAMユーザーの集まりであり、権限管理等をよりシンプルにするメリットがあります。また、複数のIAMユーザーに一度に同じ権限を付与することが可能であり、一つのユーザーを複数のグループに割り当てるなどのことも可能です。のちに説明します、AWS IAMポリシーを、一度に複数のユーザーに適用する際にも便利です。

    AWS IAMポリシー

    AWS IAMポリシーとはAWSリソースの操作権限、アクセス許可権を表したものです。IAMユーザーといった評価主体にアタッチして使用するものであり、ユーザーがどのリソースに対してどの操作が許可されているのか、もしくは拒否されているのかを明示的に記述するものです。つまりAWSのサービスやリソースへの「できること」や「できないこと」のルールが定義され、書かれているドキュメントになります。

    AWS IAMポリシーはJSON形式で記述される設定ファイルであり、このファイルはAWSに保管されます。保管されるIAMポリシーには管理ポリシーが2種類あり、このポリシーを使用することで特定のサービスやリソースに対するアクションの認可をします。

    1. AWS管理ポリシー
    AWS管理ポリシーはあらかじめ用意されており、AWSが定めた形式で保存され、操作できる権限が記述されたJSONファイルのことです。

    2. カスタマー管理ポリシー
    カスタマー管理ポリシーは自身で設定が可能となっています。そのためより細かい設定が可能であり、自身でJSONを記述することで使用が可能となります。

    IAMポリシーの例
    S3バケットへの読み取り専用アクセスを許可するポリシー」をJSON形式でドキュメント化するとします。これをIAMユーザーAにアタッチすることで、IAMユーザーAはS3バケットへの読み取りが可能となります。

    IAMポリシーは、AWSリソースへのアクセス権限を詳細に定義します。適切なポリシーを作成・適用することで、必要な権限だけを適切なエンティティに付与し、AWS環境のセキュリティを向上させることができます。

    しかし各IAMユーザーに対し、それぞれIAMポリシーを個別で適用するのは管理の複雑さ等を考慮するとあまりお勧めできません。
    そこでIAMロールを利用することで管理を円滑に進めることができます。複数のIAMポリシーをIAMロールにアタッチすることで、そのポリシーに書かれている権限がロールに与えられます。
    もう少し詳しく説明していきます。

    AWS IAMロール

    ロール(英表記「Role」)とは役割や任務を意味します。一時的に特定の権限を持つことができる「役割」や「任務」のようなものであり、一時的に権限を付与します。主にIAMユーザーやAWSのサービス、さらには外部のユーザーやサービスが、AWSのリソースにアクセスする際にも使用されます。

    仕組みとしてはユーザーやアプリケーションがロールを一時的に引き受けることで、そのロールに関連付けられたアクセス許可を受けることができるというものです。ロールを引き受けるエンティティに一時的なセキュリティトークンを提供することで永続的な認証情報を持つ必要がなくなります。

    例えば一時的に特定のリソースにアクセスする必要があるサービスやアプリケーションに使用されます。また、IAMロールはユーザーやグループとは異なり、有効期限がついている短期的な認証となっており、アクセスキーやパスワードなどの固定的な認証情報を直接共有する必要がないため、情報漏洩といったセキュリティのリスクを低減させることができます。

    まとめ

    以上はAWS IAMについての解説となりました。

    AWS IAMにてユーザーがアカウントを付与される際、例えば「管理者ページにアクセスする権限」があるのかどうかを判断します。
    また、ユーザーがアカウントにログインする際、ユーザー名とパスワードを入力し、ユーザーが認証されるべきかを判断します。

    冒頭に戻ると、AWS IAMにおいて認証は「あなたが誰で本当に自分なのか」という問いへの答えであり、認可は「あなたはこれを扱う権利があるのか」という問いへの答えとなります。AWSではこの認証と認可の二段階を組み合わせることでシステムをセキュアに、ユーザーのアクセスを管理することができるのではないでしょうか。

    以上、最後までご覧いただき、ありがとうございました。

    AWS の導入でお困りの方はお気軽にご相談ください!

    AWS 無料相談はこちら

    この記事をシェアする

    メルマガ配信中!ご登録いただいたメールアドレスに、編集部おすすめ記事や最新情報を、いち早くお届けします。

    記事の一覧を見る 戻る

    お問い合わせはこちら

    ご不明点や気になる点は、
    サポートデスクにお問い合わせください

    お問い合わせ