Amazon Web Services ブログ

AWS Single Sign-On 紹介

12/7 にリリースされた AWS Single Sign-On (AWS SSO) サービスをご紹介します。このサービスにより、複数の AWS アカウントやビジネスアプリケーションへの SSO アクセスを簡単に集中管理できるようになります。AWS SSO はユーザポータルを提供するため、ユーザは既にある企業内の認証情報を使ってアサインされた全ての AWS アカウントやアプリケーションを確認して、アクセスできます。AWS SSO は AWS Organizations と統合されており、組織内にある複数の AWS アカウントへのアクセスを管理できます。加えて、AWS SSO は Security Assertion Markup Language (SAML) 2.0 をサポートしており、AWS SSO アプリケション設定ウィザートを使って SAML が利用できるアプリケーションへの SSO アクセスにも広げることができます。AWS SSO は Salesforce、BOX、Office 365 など多くのビジネスアプリケーションとの SSO 連携が組み込まれており、簡単に設定が行なえます。

このブログ記事では、以下の 3 つの質問に答えることで AWS SSO を使い始めに役立つよう説明します。:

  1. AWS SSO はどんなメリットを提供するか?
  2. AWS SSO の主要機能は何か?
  3. どうやって使い始めればいいか?

1. AWS SSO はどんなメリットを提供するか?

社内の Microsoft Active Directory を AWS SSO と接続できるため、エンドユーザはユーザポータルに普段使っているユーザ名とパスワードでサインインして、管理者がアクセスを許可した AWS アカウントやアプリケーションにアクセスできます。以下のスクリーンショットは AWS SSO のユーザポータルの例です。

エンドユーザが複数の AWS アカウントや SAML が利用できるビジネスアプリケーションにアクセスできるよう割り当てで管理し、監査する事を AWS SSO を使うことで一箇所から行えます。新規ユーザは適切な Active Directory グループに追加することで、自動的に AWS アカウントやアプリケーションへのアクセス権を付与できます。AWS SSO はまた全てのユーザポータルへのサインイン操作を AWS CloudTrail に保存することで、どのエンドユーザがどのアカウントやアプリケーションを使ったかについてより透明性を提供します。AWS SSO はサインイン要求のあった IP アドレス、ユーザ名、日時のような詳細を記録します。AWs SSO のコンソールで管理者が行ったあらゆる変更操作も CloudTrail に記録され、Splunk のような SIEM (Security Information and Event Management) 製品を使って関連する CloudTrail ログを分析することができます。

2. AWS SSO の主要機能は何か?

AWS SSO は以下の主要機能があります。

AWS SSO ユーザポータル: ユーザポータルでは、管理者が許可した全てのアプリケーションや AWS アカウントを簡単に見つけ、アクセスすることができます。エンドユーザはユーザポータルに社内の Active Directory で使用している認証情報でアクセスでき、再度ユーザ名とパスワードを入力しなくても別のアプリケーションにアクセスできます。

AWS Organizations との連携: AWS SSO は AWS Organizations と連携して、組織内の全ての AWS アカウントにアクセスして管理できるようになります。組織のマスターアカウントで AWS SSO を有効にすると、AWS SSO に組織内で管理している全アカウントが表示され、AWS コンソールへの SSO アクセスを有効にできます。

オンプレミスの Active Directory との連携: AWS SSO は AWS Directory Service を使用してオンプレミスの Active Directory と連携します。エンドユーザは Active Directory の認証情報を使用して AWS アカウントやビジネスプリケーションにアクセスできます。管理者はディレクトリ内のどのユーザやグループがどの AWS アカウントにアクセスできるかを管理することができます。

権限を集中管理: AWS SSO では、AWS マネージメントコンソールで AWS アカウントへのアクセスをする際にユーザへ許可する権限を一箇所で管理できます。ユーザの権限を AWS マネージドポリシーの組み合わせであるパーミッションセット (permission sets) として定義できます。AWS マネージドポリシーは一般的なユースケースで共通した権限や IT 業界における一般的な仕事の役割に合わせた権限を付与できるよう設計されています。

AWS SSO では、パーミッションセットで全ての必要な AWS アカウントの特定のリソースへの権限となるよう設定が行なえます。例えば、データベース管理者に開発用アカウント内の Amazon Relational Database Service (RDS) に広範囲な権限を付与しつつも、本番用アカウント内では権限を限定する事ができます。パーミッションセットを変更することで全ての関連する AWS アカウント内の権限を更新する事ができるようになり、権限の集中管理を AWS SSO は実現します。

アプリケーション設定ウィザート: AWS SSO アプリケーション設定ウィザードを使うことで、SAML が利用できるビジネスアプリケーションへの SSO アクセスを設定できます。

事前定義された SSO 連携: AWS SSO は事前定義された SSO 連携を提供しており、Office 365、Salesforce、Box など多くの一般的なビジネスアプリケーションの設定を順番に入力して行くだけで行えます。

一箇所で監査: AWS SSO は全てのサインインや管理操作を CloudTrail に記録します。記録されたログを Splunk のような SIEM 製品に送り分析することが可能です。

高い可用性を持ったマルチテナント SSO インフラ: AWS SSO は高い可用性が組み込まれた AWS が管理する SSO インフラです。AWS SSO のマルチテナントのアーキテクチャにより、ハードウェアを調達したりソフトウェアをインストールする事無く素早くサービスの利用を開始できます。

3. どうやって使い始めればいいか?

使い始めるには、まず社内の Active Directory を AWS Directory Service を使って AWS SSO に接続します。社内のディレクトリを接続するには AWS Directory Service の AD Connector を使用する方法と、AWS Directory Service for Microsoft Active Directory (Microsoft AD) とオンプレミスの Active Directory と信頼関係を設定する方法の2つ選択肢があります。社内のディレクトリを接続した後に、AWS アカウントやアプリケーションを SSO アクセスするための設定を行えます。もし、オンプレミスの Active Directory を持っていなかったり、オンプレミスの Active Directory と接続したくない場合は、クラウド上の Microsoft AD を使ってユーザやグループを管理することもできます。

上記の図は、どのように AWS SSO がユーザを AWS アカウントやビジネスアプリケーションへの接続を実現するかを現したものです。図の中の数字は、以下のユースケースに該当します。

ユースケース 1: AWS アカウントへの SSO アクセスを管理

AWS SSO では、ユーザに AWS Organizations の組織内にある AWS アカウントへのアクセスを許可できます。社内の Active Directory 内のグループにユーザを追加することで許可することができます。どの Active Directory グループが AWS アカウントにアクセスをしてよいかを AWS SSO で指定し、その Active Directory グループに許可したい権限のレベルを指定するためにパーミッションセットを指定します。そうすると AWS SSO はグループ内のユーザに AWS アカウントへのアクセスをできるよう設定を行います。その後は、Active Directory のグループにユーザを追加することで、AWS SSO は自動的にそのユーザを指定した AWS アカウントへのアクセスを許可します。グループを使用せずに Active Directory のユーザを直接 AWS アカウントへのアクセスを許可することもできます。

AWS アカウントへの SSO アクセスを設定するには以下の通り行います。:

  1. AWS SSO コンソールを開き、左側のナビゲーションから “AWS accounts” を選択します。アカウントのリストからユーザにアクセスを許可したいアカウントを選択します。この例では、”MarketingBU” 組織ユニットから3つのアカウントを選択します。それから “Assign users” をクリックします。
  2. “Users” を選択し、ユーザを検索するためにユーザ名の入力を始めて “Search connected directory” をクリックします。接続されているディレクトリからユーザのリストが検索されて表示されます。グループについても同様に検索できます。許可を与えたいユーザを選択して、”Next: permission sets” をクリックします。
  3. パーミッションセットを選択するには、最初1つ作成する必要があるため、”Create new permission set” をクリックします。
  4. パーミッションセットを作するのに、”Use an existing job function policy” を選択できます。このタイプのポリシーを使用することで、IT 業界で一般的の仕事の役割の役割に応じて事前定義されている AWS マネージドポリシーをパーミッションセットに適用することができます。逆に、”Create a custom permission set” を選ぶことで、カスタマイズしたパーミッションセットを作成することもできます。
  5. この例では、”SecurityAudit” ポリシーを選択して、”Create” をクリックします。これにより、次の画面ではこのパーミッションセットを選択できるようになります。
  6. どの程度のレベルのアクセスをユーザに許可したいのか指定するために、パーミッションセットを選択します。この例では、選択したユーザに1つ前のステップで作成した “SecurityAudit” パーミッションセットを選択し、”Finish” をクリックします。
  7. ユーザはユーザポータルにサインインして、許可を与えた AWS アカウントにアクセスできます。AWS SSO は SSO を実現するために必要な信頼関係を自動的に AWS アカウント間で設定します。また、AWS SSO は各アカウントで必要な許可設定も行います。このため複数の AWS アカウントにまたがって管理の規模が大きくなっても大丈夫です。
  8. ユーザはサインインするのに何度もパスワードを入力しなくても、AWS アカウントとパーミッションセットを選択できます。例えば、ユーザに2つのパーミッションセットを許可し、1つは制限されたものでもう1つはあまり制限されていないものとし、ユーザはそのセッションでどちらのパーミッションセットを使用するか選択できるようにできます。以下のスクリーンショットは、John がユーザポータルにサインインした時のものです。アクセスできるアカウントの一覧を確認でき、”SecurityAudit”の権限がある”Production Account”でサインインができます。

ユースケース 2: ビジネスアプリケーションへの SSO アクセスを管理

AWS SSO は Salesforce、Office 365、Boxのような一般的に使用されているビジネスアプリケーションへの SSO アクセスが事前定義されています。AWS SSO でこれらのアプリケーションを確認してアプリケーション設定ウィザードを使って簡単に設定することができます。アプリケーションへの SSO アクセスを設定した後は、社内ディレクトリからユーザやグループを検索してユーザにアクセスを許可できます。事前定義されているアプリケーションの完全なリストは AWS SSO コンソールで確認して下さい。

ビジネスアプリケーションへのSSO アクセスを設定するには以下の通り行います。:

  1. AWS SSO コンソールを開き、左側のナビゲーションから “Applications” を選択します。
  2. “Add a new application” をクリックし、リストからアプリケーションを1つ選びます。この例では、”Dropbox” を選択し、”Add” をクリックします。
  3. どのアプリケーションを選択したかに応じて、そのアプリケーションの SSO アクセスを設定するための手順書を実施するように求められます。手順書では、アプリケーション側の設定に “AWS SSO metadata” セクションにある詳細を使用するように案内されます。そして、アプリケーションの詳細を “Application metadata” セクションに入力するよう案内されます。入力後、”Save changes” をクリックして下さい。
  4. オプションで、”Attribute mappings” タブを選択して追加の SAML 属性マッピングを指定することができます。社内ディレクトリからアプリケーションにユーザの属性を追加で渡したいときのみ設定する必要があります。
  5. このアプリケーションへのアクセスをユーザに許可するには、”Assigned users” タブを選択します。接続した社内ディレクトリを検索してこのアプリケーションへアクセスできるようにするユーザやグループを選択するには “Assign users” をクリックします。

ユースケース 3: 独自の SAML が利用できるアプリケーションへの SSO アクセスを管理

独自開発やサードパーティが開発した SAML アプリケーションへの SSO アクセスを AWS SSO のアプリケーション設定ウィザードを使って有効にすることもできます。

SAML が利用できるアプリケーションへの SSO アクセスを設定するには以下の通り行います。:

  1. AWS SSO コンソールを開き、左側のナビゲーションから “Applications” を選択します。
  2. “Add a new application” をクリックし、”Custom SAML 2.0 application” を選び、”Add” をクリックします。
  3. “Custom SAML 2.0 application” のページでは、AWS SSO メタデータのセクションからメタデータをコピーするかダウンロードして、独自の SAML が利用できるアプリケーションに設定して AWS SSO を IdP として認識されるよう設定します。
  4. 同じページの “Application metadata” セクションで、ダウンロードしたアプリケーションのメタデータのファイルを指定します。メタデータのファイルがない場合は、”If you don’t have a metadata file, you can manually type your metadata values.” をクリックします。各項目に入力して、”Save changes” をクリックします。
  5. “Attribute mappings” タブを選択して、SAML アサーションに入れてアプリケーションに渡したい SAML 属性のマッピングを設定します。使用できる属性の一覧についてはドキュメント(http://docs.thinkwithwp.com/singlesignon/latest/userguide/attributemappingsconcept.html)を確認して下さい。
  6. このアプリケーションへのアクセスを許可するために、”Assigned users” タブを選択します。”Assign users” をクリックして、接続した社内ディレクトリを検索してこのアプリケーションへアクセスできるようにするユーザやグループを選択するには “Assign users” をクリックします。

サマリー

このブログ記事では、AWS SSO を紹介して主要機能、メリット、ユースケースを説明しました。AWS SSO では、全ての AWS アカウント、クラウドアプリケーション、独自アプリケーションへの SSO アクセスを一箇所から管理、監査できます。AWS SSO を使い始めるには、AWS SSO コンソールを開いてください。

AWS SSO についてフィードバックや質問があれば、AWS SSO フォーラムで新しいスレッドを作成してください。

– Anand (翻訳は SA 辻 義一 が担当しました。原文はこちら)