トラスト・ログインを使って、個人のAWSマルチアカウント検証環境にSAML認証を導入してみた
はじめに
こんにちは!みゃっちーです🦔
最近個人の検証環境をマルチアカウントで構成しているのですが、アカウントの切り替えが少しめんどくさい…ということでAWS資格試験を勉強する中で頻繁に出てくるSAML認証を今回やってみました。
SAML認証とは
こちらの公式ドキュメントにはこのように説明されています。
-
1.組織のユーザーが、クライアントアプリを使用して、組織の IdP に認証を要求します。
-
2.IdP がユーザーを組織の ID ストアに対して認証します。
-
3.IdP はユーザーに関する情報を使用して SAML アサーションを構築し、クライアントアプリにアサーションを送信します。
-
4.クライアントアプリが、AWS STS AssumeRoleWithSAML API を呼び出して、SAML プロバイダーの ARN、引き受けるロールの ARN、および IdP からの SAML アサーションを渡します。
-
5.API は一時的なセキュリティ認証情報を含むレスポンスをクライアントアプリに返します。
-
6.クライアントアプリでは、一時的なセキュリティ証明書を使用して Amazon S3 API オペレーションを呼び出します。
ややこしいですが、自分の中ではこう簡単に解釈していました。
「AWS以外のアカウント認証を提供しているサービスのアカウントに必要なIAMロールを結び付けて、それぞれのIAMロールを持ったIAMユーザとして様々なAWSアカウントにワンクリックでアクセスできる仕組み」
GMO TrustLoginとは
今回IdPはGMOのTrustLoginを使用しました。個人で利用する分には無料で使い勝手もいいのでこちらでいいかと思います。
トラスト・ログインとは、業務で使用するアプリや社内システムのID/パスワード管理、またその各アプリへのシングルサインオンができる無料のクラウドサービスです。有償オプションを利用することで、トラスト・ログインへの多要素認証やアクセス制限も実現できます。
やってみた
SAMLアプリの登録
TrustLoginにAWSをアプリ登録
TrustLoginの管理画面からアプリを選択し、アプリ登録をクリックします。
検索欄からAWSと検索して、AWS IAM(SAML)をクリック
認証に必要なメタデータをダウンロードします。
AWSにIDプロバイダを追加する
マネジメントコンソールからIAMと検索し、「IDプロバイダを追加」をクリックします。
先ほどダウンロードしたメタデータをアップロードします。
最後に「IDプロバイダーを追加」を押すとこのようにプロバイダが登録されます。
IAMロールの作成
今度はIAMロールの作成をクリックします。
SAML2.0フェデレーションをクリックし、先ほど作成したIDプロバイダを選択します。
最後にこのIAMロールに与える権限を設定します。
IAMロールをIdPに登録する
作成したIAMロールをIdPと紐付け、IDプロバイダ上のアカウントに付与できるようにします。
先ほどメタデータを取得したページ下部にいきます。
ここに下記のような形式で値を入力してください。
{ロールのARN}, {プロバイダのARN}
IAMロールを扱うユーザの登録
IdPに登録したIAMロールをどのIDプロバイダ上のユーザに与えるかを管理画面から設定します。
ここからこのIAMロールにメンバーもしくは、メンバーのグループを割り当てます。
メンバーのログイン
ユーザの登録が終わるとユーザの画面に新しくログインアイコンが表示されます。
このアイコンをクリックすることで、簡単にAWSのマネジメントコンソールにアクセスすることが可能になります。
さいごに
最後まで読んでいただきありがとうございました!
今までは毎回アカウントの切り替えごとにメールアドレスとパスワードを入力していましたが、ワンクリックで必要な権限をもって簡単にアカウントを切り替えられるようになり、かなり楽になりました。
もうこれがないとめんどくさい!ってなっちゃうかも…
Discussion