Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

AWSでシングルサインオン(SSO)を実現する~SAML2.0ベースのAWSマネージメントコンソールへのフェデレーション

小規模な受託開発におけるAWS活用の勘所 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 本連載では、比較的「小規模」な「受託」開発を実施する際のAWS活用の勘所を、実際の開発現場での経験を元に紹介します。大規模な開発では当てはまらない部分もあると思いますが、可能な限りインフラ関連の工数を少なくし、効率的に開発を実施するために、最低限抑えておく実務上役立つ点について、解説します。本記事では、複数のAWSアカウントを効率的かつセキュアに管理するための、SAML2.0ベースのAWSマネージメントコンソールへのフェデレーション(SSO:シングルサインオン)をご紹介します。

目次

はじめに

 受託開発において、顧客システムを開発・運用する際にAWSアカウントの運用管理を実施する場合が多くあります。

 その場合、AWSを利用するユーザ(開発者、運用者)をアカウント毎に管理する必要があり、顧客数(N)、ユーザ数(M)に対してO(N×M)のオーダーのユーザー数を管理する必要があります。AWSアカウントにユーザを追加する場合、通常は開発者、運用者毎にIAMユーザを作成することが多いですが、O(N×M)ですので、AWSアカウントが多くなるとすぐに管理工数が大きくなります。

 また、ユーザ数が多くなることによる管理工数の増大以外にも、以下の問題が発生する可能性があります。

  • プロジェクトに対するアサインが変更した場合のユーザ登録削除の手間がかかる
  • ユーザが放置された場合にセキュリティリスクがある
  • ユーザ毎に発行されたアクセスキーID/シークレットアクセスキーが実際のサービスに組み込んでしまうケースがある(ユーザを削除するとサービスへアクセスできなくなる)

 ここでは、管理コストを削減しながら、開発会社としてできるセキュリティの向上策として、SAML2.0ベースのAWSマネージメントコンソールへのフェデレーションを実現する方法をご紹介します。

 以下の記事も非常にわかりやすいので、併せて参照下さい。

実現できることとメリット

 SAML2.0ベースのAWSマネージメントコンソールへのフェデレーションを行うことにより実現できることは以下のとおりです。

  • 複数のAWSアカウントのマネジメントコンソールに、一つのアイデンティティ(メールアドレス等、パスワード)でログインできる
  • どのユーザ毎にログインできるAWSアカウントを容易に制御できる
  • ログインできる環境を制御できる(IPアドレスによる制御)
  • IAMユーザを作成しないため、コードにアクセスキー等を埋め込まれるリスクを低減できる
シングルサインオンの流れ
シングルサインオンの流れ

株式会社鈴木商店におけるシステム構成

 参考までに弊社(鈴木商店)でのシステム構成をご紹介します。

株式会社鈴木商店におけるシステム構成
株式会社鈴木商店におけるシステム構成

 AWS上にADFS(Active Directory Federation Service)を使って、IdP(Identity Provider)を構築し、VPNで接続されたオフィスからALB(Application Load Balancer)経由でアクセスしています。

 ALB経由でのアクセスとすることで、ACM(AWS Certificate Manager)によるSSL証明書を使用し、通信の暗号化をするとともに、セキュリティグループにて、接続できるIPアドレスを制限しています。

 また、図には記載されていませんが、外部からもアクセスできるように別途VPNサーバを用意し、VPN接続すれば外部からもアクセス可能です。

 従業員数が多くないため、ADFSとADDS(Active Directory Domain Services)を同じサーバで運用していますが、AWS Directory Serviceを使用することも可能です。

今回想定する環境

 ここでは、「既にActive Directoryが存在する」ことを前提に、ADFSを用いてSSOが可能な環境を構築します。

 想定するバージョンは以下のとおりです。

  • Windows Server 2016

 また、以下の想定で構築手順をご紹介しますので、環境に応じて適宜読み替えてください。

  • IIS、ADFSがインストールされていること
  • すべてのAD上のユーザーがSSO用画面にログイン可能であること
  • ADFSとADDSは同じサーバにあること
  • フェデレーションは内部の信頼できる環境からのみアクセスされること
  • SSL証明書は自己証明書を使用すること(証明書は必須)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 塩飽 展弘(株式会社鈴木商店)(シワク ノブヒロ)

     株式会社鈴木商店 経営企画室室長。  大手通信事業者にて、SE、研究開発、経営企画等に従事後、2016年株式会社鈴木商店に入社。  営業、要件定義、開発(主にAWS関連インフラ)に従事後、現職。  AWS Certified Solutions Architect - Professiona...

バックナンバー

連載:小規模な受託開発におけるAWS活用の勘所
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5