Blog
AWS Management ConsoleへのSSO ー PingFederateのインストール編
こんにちは。アドテクスタジオでセキュリティエンジニアをしている岡崎です。
前回は、「LDAP管理が誰にでもできる!?統合権限管理システム」について、説明させていただきました。
今回は、そのLDAPを活用した「AWS Management ConsoleへのSSO」を確立しましたので、紹介させていただきます。
SSO(シングルサインオン)を利用することで、管理者側・利用者側に多くのメリットがあります。
アドテクスタジオでは現在数多くのAWSアカウントがあり、各プロダクトにアカウント管理は一任してます。
そのため、IAMユーザ名や多要素認証設定もバラバラでした。
ですが近年AWSのアクセスキーの漏えいによる不正利用により、過度な請求が発生するなどの事件の情報を耳にし、弊社でもAWS管理周りにはとても敏感になっております。
SSOの導入のメリット
管理者側
・既存のLDAPをデータストアとして利用することができる
社内ですでにディレクトリサービスとして利用しているLDAPのアカウント情報をそのまま利用できます。
・IAMユーザの管理が不要
認証のアカウント情報にLDAPを利用することで、AWS Management Console上でのIAM管理は不要になります。
新入社員のアカウント追加・異動時の権限変更・退職時のアカウント削除のすべてをディレクトリサービスだけで行うことができます。
・2段階認証の有効
イントラネット内では1段階の認証で利用できますが、インターネットからは2段階認証を有効することにより、アカウント情報漏洩時のアカウント乗っ取りを回避することができます。
利用者側
・AWSごとにURLとIAMユーザ名とパスワードを管理する必要がない
アドテクスタジオでは「AWS Management ConsoleへのSSO」を実現するために、社内でも実績がある「PingFederate」を利用しています。
今回は別途アドテクスタジオ用にIDプロバイダーを構築させていただきました。
参考: PingFederate Server
インストール
PingFederateのインストールは用意されたスクリプトを実行するだけで必要なパッケージが入り、Webサーバの起動までします。
*事前にJavaだけインストールが必要です。
*OSはRedhat Enterprise Linux 7を使用してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
____ _ ____ __ __ _ __ / __ \(_)___ ____ _ / _/___/ /__ ____ / /_(_) /___ __ / /_/ / / __ \/ __ `/ / // __ / _ \/ __ \/ __/ / __/ / / / / ____/ / / / / /_/ / _/ // /_/ / __/ / / / /_/ / /_/ /_/ / /_/ /_/_/ /_/\__. / /___/\__._/\___/_/ /_/\__/_/\__/\__. / /____/ /____/ PingFederate Installation Script Welcome to PingFederate. Follow these step-by-step instructions to complete your installation. Some steps have more information available, which you can access by typing "?" or "help" JAVA_HOME not set, do you want to set it? (y/n) y Please set JAVA_HOME: /usr/java/default *Javaのパス設定 Found java executable in JAVA_HOME Version 1.8.xxx Could not locate pingfederate-x.tar.gz, would you like to download it? (y/n) y # Downloading pingfederate-x.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 114M 100 114M 0 0 2185k 0 0:00:53 0:00:53 --:--:-- 4149k Please choose which mode you'd like PingFederate to operate in. 1) Standalone 3) Clustered Runtime Node 2) Clustered Admin Node 4) Quit Installer Please enter your choice: 1 You've selected Standalone mode. This will be your only PingFederate node that will operate independently. Would you like to continue? (y/n) y Enter the IP address where the console communication should bind. Enter IP Address (or ?): 0.0.0.0 Enter the port where the PingFederate admin console and API will run. Enter Port (or ?): xxxx ※管理画面のポート Enter the port where PingFederate will listen for encrypted HTTPS (SSL/TLS) traffic. Enter Port (or ?): yyyy ※サービス提供画面のポート Do you want to enable a secondary HTTPS port for additional security measures? (y/n/?) y Enter Port (or ?): zzzz PingFederate is starting ... Please open your browser to https://<yourhost>:xxxx/pingfederate/app to finalize your setup. |
これで、インストールは完了になります。
次に、「管理画面:https://<yourhost>:xxxx/pingfederate/app」より、ライセンスや管理者アカウントなどの初期設定を行うとPingFederateの初期設定は完了です。
*試用版もあるのでお試しください。
管理画面はこのようなイメージです。
PingFederate の冗長化
PingFederate の構築が終わった後は冗長化も行います。
アドテクスタジオでは様々な環境でシステムが動いています(オンプレミスDC・AWS・GCP等)。
今回は PingFederate を AWSとGCP両方を使って冗長化を図りました。
簡単な構成図は下記になります。
以下、それぞれの概要になります。
・DNS:AWS Route53
ホットスタンバイ形式ををとっており、GCP側(Active)とAWS側(Standby)のIP設定をしてます。
Route53のヘルスチェックを利用しており、GCP側と疎通が取れなくなると、AWS側に自動で切り替わります。
・監視:GCP StackDriver
対象のインスタンス全てにStackDriverのエージェントをインストールし、パフォーマンス監視を行なっています。
アラートに関しては、StackDriverからSlackに通知しています。
・バックアップ:AWS S3
今回のシステムはデータが全てテキスト(xml)データなので、そのファイル群を一式、S3にコピーしています。
・オンプレミスDCへのアクセス
データストアは、アドテクスタジオのオンプレミスDCにあるため、GCPからはVPN、AWSからはAWS Direct Connectを利用し接続しています。
個人的には今までマルチクラウドの環境を構築する機会が無かったので、今回大変勉強になりました。
いかがだったでしょうか。
次回はIDプロバイダーとして活用するためにサービスプロバイダー(AWS)の設定を説明します。
Author