adtech studio

AWS Management ConsoleへのSSO ー PingFederateのインストール編

hajime By hajime

Linux セキュリティ

 こんにちは。アドテクスタジオでセキュリティエンジニアをしている岡崎です。

 前回は、「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を使用してます。

これで、インストールは完了になります。

次に、「管理画面: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)の設定を説明します。