1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SAMLによって、GoogleアカウントでAWSマネジメントコンソールにSSOログインする

Posted at

前置き

AWSには、IAM Userというユーザー管理機能があり、AWSアカウント内でユーザー管理することも可能です。
しかし、G Suiteを使っている環境において、メンバーが増えるたびに、Googleアカウントを発行したり、AWS IAMユーザーを発行したりするには、工数が発生するとともに、漏洩のリスクも増やしてしまいます。
そこで、SSOにより、GoogleアカウントにてAWSアカウントにログインできるようにしてみます。

AWSおよびGoogle(G Suite)には、これをSAML経由で簡単に実現できるようにしてくれています。

ここでの詳細な説明は割愛しますが、SAML環境は、IdP(認証をつかさどる)とSP(サービス提供)によって構成されます。
ここでは、G SuiteがIdP、AWSがSPとなります。
構成図としては、AWSドキュメントのSSO関連のいたるところでみる、以下がわかりやすいです。
G Suite アカウントを用いた AWS へのシングルサインオン | AWS Startup ブログ 2020-08-10 14-48-00.png

なお、図では「AWS SSO Endpoint」と表記がありますが、今回の手順では、「AWS SSO」は利用しません。
より詳細なコントロールが必要な際などに、「AWS SSO」を利用することになります(最後のまとめにも記載)。

前置き2

だいたい、このサイトの手順どおりで実現できます。しかし、いくつか現在(2020/8/10)の環境では差異があるため、手順どおりに進めていく上での留意点を補足する形で、以降の手順を記載します。
https://support.google.com/a/answer/6194963?hl=en

Stepごとの補足ポイント

Before you begin

以下の手順において、表記されているようなリンクは見つけられませんでした。
しかしながら、ユーザーリスト右上の「More」に、「Manage Custom Attribute」という、両者を混ぜ合わせたようなリンクから、手順を実行できました。

3 At the top of Users list, click Manage user attributes User attributes.
4 At the top right, click Add Custom Attribute.

ちょいちょいこの手の差異はあったような気もしますが、Googleに限らず、Web UI上の表記が微妙にアップデートされ、公式の手順書と差異があることはままあります。

Step 4: Enable the Amazon Web Services app

正直、英語で読んでも日本語で読んでも、ここで書いている文が言語として難解でした :(

また、これだけではStep 5の検証をとおすのに、不十分に思えます。
検証するユーザー(Chromeを使っているならログイン中のユーザーアカウント)にて、ロールを設定しておかねばなりません(Step 6相当の準備)。

Step 2でAWS側に準備しておいたロール群(※)の出番です。
(※) 以下の2つの形式のもの。

  • arn:aws:iam::ACCOUNT_NUMBER:role/SSO
  • arn:aws:iam::ACCOUNT_NUMBER:saml-provider/GoogleApps

G Suiteのユーザー一覧から、検証したいユーザーのリンクを開きます。
「User Information」を開くと、「Amazon」という項目が見つけられると思います。また、この時点では、Roleは未設定の状態になっているかと思います。
このロールを編集し、Step 2で作成したロールの2つのARNを、カンマ区切りで設定します。

これで、Step 5での検証や、Google Appsから、AWSマネジメントコンソールにログインすることが可能になったかと思われます :)

まとめ

個人的には、ユーザーへのロールの設定が罠になるかと思いますが、それ以外については手順は丁寧で、SAMLやSSOについて、あまり理解していなくても表題の実現が可能かと思いますが、SSOの仕組みを自分で手を動かして動かすことで、理解が深まることもあるかと思います。

今回実施した手段は、AWSアカウントとGoogleアカウントそれぞれで設定しました。
複数のAWSアカウントを扱ったりしていったり、ユーザー数が増えて行ったりと、ビジネスが成長していく上でこの手順では厳しくなってきます。
AWS SSOなどを利用した仕組みを構築する必要があります。

また、そのあたりの記事も書けたらと思います。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?