Happy Elements 株式会社 カカリアスタジオ Advent Calendar 2016 2 日目の記事となります.本日の担当はインフラグループの @nagizero です.よろしくお願いします.
はじめに
従来,弊社では AWS を利用する従業員ひとりひとりに IAM アカウントを発行していました.最初はよかったのですが,利用者が増えるにつれてアカウントの管理が煩雑になっていきました.さらに,複数の AWS を利用することになったため,管理コストも倍々となりました.
そこで,管理の手間を省くために,従業員がすでに持っている何かしらのアカウントで認証を統合することにしました.弊社では Google Apps for Work を利用していたので, Google アカウントを利用して AWS を利用できるように設定しました.
以下, Google Apps for Work のアカウントで AWS にログインできるようになるまでの手順をスクリーンショットを交えながら記載します.
資料
これらの記事には大変お世話になりました.この場で謝意を表します.
- AWS 管理コンソールを社内認証と SSO 化させる #m3dev - Qiita
- Google Apps for Work の SAML を使って AWS にログインする - Qiita
- Amazon Web Services (AWS) クラウド アプリケーション - Google Apps 管理者 ヘルプ
作業
AWS, Google Apps 双方の管理者権限が必要となります.
AWS を SAML 2.0 のサービスプロバイダとして設定する
Google Apps の管理コンソールから Security を開きます.
Set up single sign-on (SSO) から Certificate と IDP metadata をダウンロードします.
AWS の IAM コンソールから ID プロバイダ を選択して プロバイダの作成を押します.
プロバイダーのタイプは SAML, プロバイダ名は GoogleApps, メタデータドキュメントは先ほど Google Apps からダウンロードした IDP metadata を選択して次に進みます.
作成を押して終了です.
プロバイダのリストから GoogleApps を選択し,プロバイダの ARN をメモしておきます.
AWS で SSO ユーザのロールを作成する
AWS の IAM コンソールから ロール を選択して 新しいロールの作成を押します.
ロール名を入力して次に進みます.テストのため,読み込み権限のみを持つ ReadOnly ロールを作成してみます.
ID プロバイダアクセス用のロール から SAML プロバイダへのウェブシングルサインオン (WebSSO) アクセスを付与を選択します.
先ほど作成したプロバイダ GoogleApps を選択して次に進みます.
次に進みます.
ReadOnlyAccess を選択して次に進みます.
ロール ARN をメモした後,ロールの作成を押して終了です.
AWS で Google Apps を SAML ID プロバイダ(IdP)として選択する
Google Apps の管理コンソールから Apps > SAML Apps を開き, Add a service/App to your domain を押し, Amazon Web Services を選択します.
NEXT を押します.
お好みでロゴをアップロードして NEXT を押します.
AWS 固有のサービスプロバイダの詳細を入力する
NEXT を押します.
https://aws.amazon.com/SAML/Attributes/RoleSessionName に Basic Information の Primary Email をマッピングします.また, https://aws.amazon.com/SAML/Attributes/Role に Employee Details の Job Title をマッピングして FINISH を押します.
AWS アプリに対して SSO をオンにする
Google Apps の管理コンソールから Apps > SAML Apps > Amazon Web Services を開き, ON for some organizations を押します.
対象の組織のみ ON にします.
Google Apps - AWS 間の SSO を確認する
Google Apps の管理コンソールから SSO を許可したいユーザを選択し, Account > Basic Information > Edit を押します.
何もせず ADDITIONAL INFO を押します.
何もせず NEXT を押します.
Title に {プロバイダの ARN},{ロール ARN} を入力して UPDATE USER を押します.
対象ユーザで Google Apps にログインし,メニューの最下部にある Amazon Web Services を押します.
フェデレーションログインされました. ReadOnly ロールでユーザがログインしていることがわかります.
あとはロールに適切な権限を付与すれば OK です.
おわりに
統合認証を利用することでアカウント管理の手間から少しだけ解放されました.このように,従業員が楽をする (快適に働けるようにする) ための環境整備を行うことも弊社インフラグループのミッションとなっています.