#はじめに
社内で使用しているOffice365のアカウントを検証用に使用しているAWSにSSOしたい、という要件があったため対応したので手順の共有です。
今回はAWS側でSSOをするのではなく、AzureADでSSOしてAWSにログインします。
IdPがAzureAD、SPとしてAWSを追加する形です。
##前提として
・Office365を使用していること(AzureADに登録があること)
・Office365の全体管理者が必要
#設定方法
こちらを参考にやりました
Azure Active Directory シングル サインオン (SSO) とアマゾン ウェブ サービス (AWS) の統合
##AzureADの設定
###エンタープライズアプリケーションの追加
1.まずはAzurePortalに管理者でログイン
2.ホーム画面から左ペインの「Azure Active Directory」を選択します。
3.エンタープライズアプリケーションを選択します。
4.「新しいアプリケーション」を選択します。
5.「ギャラリーから追加する」の検索欄に"amazon"と入力すると、いくつか候補が出てくるので、「Amazon Web Services (AWS)」を選択し、追加します。
(そうすると、エンタープライズアプリケーション-すべてのアプリケーションの一覧にAWSが追加される)
###Amazon Web Services (AWS)の設定
1.AzurePortal⇒Azure Active Directory⇒エンタープライズアプリケーション⇒Amazon Web Services (AWS)を選択します。
2.シングルサインオンを選択し、シングルサインオンの方式⇒SAMLを選択します。
3.「基本的なSAML構成」を編集で開き、「識別子 (エンティティ ID)」に以下URLを入職します。
"https://signin.aws.amazon.com/saml?<任意の値>"
4.「SAML署名証明書」から「フェデレーション メタデータ XML」をダウンロードします。
5.「Amazon Web Services (AWS) のセットアップ」からログイン URL、Azure AD 識別子、ログアウト URLをコピーして控えておきます。
##AWSの設定
1.IAMを編集できるアカウントでAWSマネジメントコンソールにログインします。
2.IAMの画面を開き、「IDプロバイダー」を選択します。
3.「プロバイダの作成」をクリックし、「プロバイダーのタイプ」から SAML を選択し、「プロバイダ名」には、AzureADで設定した「識別子 (エンティティ ID)」の任意の値(URI)を入力し、メタデータにはダウンロードしたものを選択し、プロバイダを作成します。
4.左ペインから「ロール」を選択し、「ロールの作成」を選択します。
5.「SAML2.0フェデレーション」を選択します。
6.SAMLプロバイダーに、作成したものを選択し、「プログラムによるアクセスとAWSマネジメントコンソールによるアクセスを許可する」を選択、属性はたしかそのまま(SAML;aud)、値に以下URLを入力します。
https://signin.aws.amazon.com/saml
7.ポリシーの選択では、SSOしてAWSにログインする際の権限を設定します。
(今回はPowerUserAccessに設定しました。)
8.タグは何も設定せず、スルーでいいです。
9.ロール名に任意の値を入れ、ロールを作成します。
10.左ペインから「ポリシー」を選択し、「ポリシーの作成」を選択します。
11.JSONタブを選択し、以下の通り編集します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:ListRoles"
],
"Resource": "*"
}
]
}
Vesionの部分の日付は適当で大丈夫です。
12.ポリシーの名前を任意のものを入力し、ポリシーを作成します。
13.左ペインから「ユーザー」を選択し、「ユーザーの追加」を選択します。
14.ユーザー名を任意に指定し、アクセスの種類は「プログラムによるアクセス」を選択します。
15.アクセス許可の設定で、「既存のポリシーを直接アタッチ」を選択し、先ほど作成したポリシーを検索して選択します。
16.タグはスルーで、ユーザーを作成します。ここで、CSVのダウンロードと「アクセスキーID」「シークレットアクセスキー」をコピーして控えておきます。
##再びAzureADの設定
1.AzurePortal⇒Azure Active Directory⇒エンタープライズアプリケーション⇒Amazon Web Services (AWS)⇒プロビジョニング を選択します。
2.clientsecretに「アクセスキーID」、シークレット トークンに「シークレットアクセスキー」を入力し、テスト接続を押下して右上に緑のチェックマークが出ることを確認し、一旦保存します。
3.プロビジョニング状態がオフになっているので、オンにして保存します。
##SSOの確認
1.Azure Active Directoryの「ユーザーとグループ」を選択し、「ユーザーの追加」を選択します。
2.SSO対象のユーザを選択し、AWS側で作成したロールを選択し、ユーザーを追加します。
3.対象のアカウントでOffice365ポータルにログインします。
4.「すべてのアプリ」を選択し、Amazon Web Services (AWS)のアプリアイコンを選択します。
5.AWSのマネジメントコンソールにSSOしてログインできる(はず)
#個人的な感想
個人的にはエンタープライズアプリケーションに登録してSSOできるってのがなんかかっこよかったので気に入ってます。
運用自体もAzureADでユーザの出し入れ、もしくはグループの出し入れだけなので簡単かと思いました。
画像つきのものは近々noteにも記事をupします。