18:00お問い合わせTOPサービス一覧セミナー・相談会お知らせコラム構築事例AWSのご紹介SunnyCloudについてTOPサービス一覧セミナー・相談会お知らせコラム構築事例AWSのご紹介SunnyCloudについてホームコラム【徹底解説】AWSにおける認証サービスとは?【徹底解説】AWSにおける認証サービスとは?2021年08月03日コラムAWS活用支援サービス担当TwitterFacebookはてブPocketLINEAWSでは、様々な認証サービスが用意されています。それぞれのサービスについて、想定しているユースケースや使い方が異なります。Cognitoが挙げられます。SSOについて、サービスの機能や、具体的なユースケースについて紹介していきます。SSOについて機能を把握する前に、”認証と認可”について、違いを理解しておく必要があります。認証と認可は、英語でも認証(Authenticaton)、認可(Authorization)と言葉が分かれているように、似ているようで異なる概念です。AWSにおいてはサービスを利用する際に、認証と認可についてどのような違いがあるのかをしっかりと理解したうえで、利用していくことが必要です。認証とは、その人が誰であるかを判別することです。認可とは、その人が何を許可されているかを判別することです。具体的な例として、資格試験を挙げてみます。試験を受ける際に、申し込みを行い、受験をする権利を得ます。これが、”認可”になります。試験会場に行く際には、入り口などで本人確認を行います。これが、”認証”になります。本人確認を受けた後、”認可”済である、資格試験の受験を行います。このように、認証と認可は全く異なるアクションになります。SSOについて、ユースケースや機能について紹介していきます。そもそもSSO(Single-Sign-On)とは?1組のID・パスワードによる認証を1度行うだけで複数のサービスにログインできるようにする仕組みです。様々な社内システムにおいて、それぞれ固有のログインID・パスワードの組み合わせが必要であった場合を考えてみると、それぞれのID・パスワードを覚えることは非常に大変です。ID・パスワードの組を覚えられないがために、紙にメモしておく、同じようなパスワードを使いまわす、といったことを行うと、逆にセキュリティ上の問題をはらんでしまいます。SSOを導入すると、システムを利用する際に、ユーザー側が1組のID・パスワードを覚えておけばいいため、ユーザーの利便性が向上するだけでなく、セキュリティもより強固なる、というメリットがあります。SSOが提供する機能について解説していきます。SSOは、複数のAWSアカウントへのアクセスを行う際に、Single-Sign-Onを提供します。AWSにおいては、開発環境と本番環境においてアカウントを分けることが推奨されています。AWS上で複数のシステムを運用していると、それぞれのシステムの開発・本番環境に対してアカウントが払い出されることになり、覚えておくべきログインID・パスワードが膨大になってしまいます。SSOを利用することで回避が可能です。SSOをより便利にするための様々な機能も備わっています。具体的に見ていきましょう。Organizationsは、AWS上の複数アカウントを管理するためのサービスです。SSOを有効にすることで、AWSコンソールへのSSOアクセスを行うことが出来ます。Directory(AD)と連携取ることが出来ます。ADのような、サードパーティのADとも連携が可能です。これにより、企業で管理しているADのユーザーや階層をそのままAWS上のコンソールの認証に転用することができるようになります。SSOを利用することにより、AWSのコンソールにログインすることなく、アプリケーションのエンドユーザーがログインできるようになります。ユースケースは?ユースケースとしては、先述のように複数のアカウントにSSOする場合のほかに、以下のようなケースが考えられます。Server作成したファイルサーバにSSOを利用して接続を行うことが可能です。これにより、企業のファイルシステムをAWS上に移行しても、認証情報を増やすことなく利用することが可能です。O365などの外部のアプリケーションを利用する。365などのクラウド上のアプリケーションへのSSOが可能になります。Cognitoとは、AWSなどに構築した、Webアプリケーションやモバイルアプリケーションに認証・認可機能を提供するサービスです。ユーザー認証・認可で用いる」一方、Cognitoは「不特定多数の一般ユーザーの認証・認可」を行うことができるサービスです。具体的には、利用するユーザーが自分でIDの登録が可能であるほか、FacebookやGoogle、Appleなどのアカウントと連携できる機能を持っています。なっており、不特定多数の一般ユーザー向け仕様となっています。Cognitoには、主な2つの機能があります。Syncそれぞれにについて、機能を記載していきます。ユーザープールユーザープールは、ユーザー認証機能を提供します。具体的には、Cognito事態にユーザーIDを登録する機能と、外部のIDプロバイダー(GoogleやFacebookなど)と連携する機能が存在します。ユーザー認証が行われると、認証された証として「IDトークン」が発行され、このトークンによって認証されたユーザーがアプリケーションを利用することができるようになります。IDプールIDプールは、外部のIDプロバイダーによって認証されたIDに対して、AWSへのアクセス権限を払い出す、認可の機能を持っています。具体的には、認証されたユーザーに、AWS上のアプリケーションに対するアクセス権を持つ「一時クレデンシャル」を発行することができます。Webアプリケーションなどを想定し、認証されていないゲストユーザーにも、一部のアクセス権を付与する、といった機能を持っています。Syncを用いると、認証したデータを共有することができるようになります。Cognitoのユースケースを見ていきましょう。GatewayやALBといった、サーバーレスアーキテクチャで利用されるようなサービスは、簡単にCognitoと連携を行うことができます。Cognitoユーザープールを使った認証機能を実装することで、コードを書くことなく、セキュアにアプリケーションに認証機能を実装することが可能です。認証をしないでアプリケーションにアクセスさせるWebサイトの利用者からAWSリソースへアクセスさせる必要があるが、わざわざ認証は行わなくてもよい、といった場合があります。掲示板サイトやWebアプリケーションの『お問い合わせフォーム』のようなものです。CognitoのIDプールの機能を利用して、「認証されていないユーザーへアクセス権限を与えるためのIAMロール」に割り当てられたAWS一時クレデンシャルが払い出し、アクセス権を付与する、といったユースケースが考えられます。まとめAWSの認証認可サービスには、様々なサービスがあります。Directoryなどのサービスも利用可能です。SSOはAWSアカウントのユーザーID・パスワード管理を簡略化することに利用できます。CognitoはWebアプリケーションなどの不特定多数が利用するアプリケーションの認証に利用するといいでしょう。様々な機能を適切に使いこなすことで、セキュアなAWSの利用や、アプリケーションの開発が簡単にできるようになるため、利用してみてください。SunnyCloudでは、AWSに関する様々なソリューションをご提供しております。無料相談受付中です!AWSをご利用いただくには、直接契約するより断然お得。テレワーク支援...を幅広くご提供しています。(1)え、私のAWS利用料高すぎ・・!?AWS利用料を誰でも5%お得にご利用できます。大小問わずお気軽にご相談ください。AWSを熟知した弊社スタッフがお応えします。Corporation無料相談会お問い合わせ。