0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:Amazon CognitoとAWS Identity and Access Management(IAM)の違いを記事としてアウトプットしてみた

Last updated at Posted at 2025-01-20

はじめに

Amazon Cognitoは、モバイルアプリやWebアプリケーションにおけるユーザー認証や承認の課題を解決する、非常に便利で強力なツールです。

特に、セキュリティと利便性を両立したソーシャルログインや多要素認証の機能が魅力的です。

本記事では、Amazon Cognitoの基本的な機能や用途、さらにAWS Identity and Access Management(IAM)との違いについて解説します。記事は簡潔な内容となりますが、少しでもお役に立てれば幸いです。

書こうと思ったきっかけ

現在、受講しているITスクールでのハッカソン活動の中で、「Amazon Cognito」を使用する要件が出てきました。

しかし、私自身これまでCognitoを使った経験が全くなかったため、どのように技術をキャッチアップすれば良いのか悩んでいました...。

一方で、AWS Identity and Access Management(IAM)を使ったアーキテクチャ設計には比較的慣れているため、CognitoとIAMを比較しながら理解を深める方法が有効だと考えました。

今回のブログでは、Amazon CognitoとIAMの違いを整理し、その知識を横展開できる形でまとめたいと考えています。

Amazon Cognitoとは?

Amazon Cognito(アマゾン コグニート)は、モバイルアプリやWebアプリケーション向けの認証・認可、ユーザー管理、データ同期を提供するAWSのサービスです。以下の特徴があります。

  1. スケーラビリティ

    • 数億人規模のユーザー管理が可能。
  2. ソーシャルログイン

    • Google、Facebook、AmazonなどのソーシャルIDを使用した認証をサポート。
  3. セキュリティ強化

    • 多要素認証(MFA)やアドバンスドセキュリティ機能を提供し、アカウント管理の安全性を向上。

これにより、開発者は安全で柔軟な認証・認可機能をアプリケーションに簡単に統合できます。

Cognitoを使った構成は調べた感じこんなイメージ

パターン:サーバーレス認証・アクセス制御パターン

Screenshot 2025-01-20 at 17.32.37.png
引用画像:https://aws.amazon.com/jp/builders-flash/202210/cognito-userpool-endpoint/

Amazon CloudFrontを利用した静的Webページを通じて、認証はCognitoユーザープールで提供しています。

また、バックエンドサービスでは、Cognitoユーザープールが発行するIDトークンを使用してAPIへのアクセス制御を行っています。

AWS Identity and Access Management(IAM)との違い

Amazon Cognitoは、アプリケーション開発者にとって、ユーザー認証やセキュリティ強化を簡単に実現するための便利なツールです。

以下に、Amazon CognitoとAWS Identity and Access Management(IAM)の違いを簡単にまとめました。

興味のある方は参考にしてみてください!

項目 Amazon Cognito AWS Identity and Access Management(IAM)
対象 アプリケーションユーザー(人) AWSリソース(システム)
用途 アプリの認証・認可 AWSリソースへの認証・認可
ログイン要件 必須(トークンによるアクセス) 必須ではない(IAMロールで即アクセス可能)
特徴 ソーシャルID、カスタム認証をサポート AWSリソースのアクセス制御に特化

IAMはAWSリソースへのアクセス管理に特化しており、これら2つは利用対象や用途が異なるため、適切に使い分けることが重要です。

主な違いのポイント

対象範囲の違い

  • Amazon Cognito:アプリケーションのユーザー認証を担い、外部ユーザー(アプリの利用者)向け。

  • AWS Identity and Access Management(IAM):AWSリソースへのアクセスを制御するため、主に内部ユーザーやシステム向け。

利用フローの違い

  • Amazon Cognito:ログイン後にトークンを使用してクエリを実行。

  • AWS Identity and Access Management(IAM):IAMロールを付与されたユーザーが直接クエリを実行可能。

まとめ

最後まで読んでいただき、ありがとうございました。今回の記事を通じて、Amazon CognitoとIAMの違いについて改めて体系的に整理することで、それぞれの役割や使いどころを理解する良い機会となりました。

今後のチーム開発や個人的なプロジェクトでも、これらのサービスを積極的に活用していきたいと思います!

こうした基礎的な内容を継続的にアウトプットすることで、自分の知識を深めるとともに、必要なときに振り返るためのきっかけを作りたいと考えています。この記事が少しでも皆さんの参考になれば幸いです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?