Help us understand the problem. What is going on with this article?

AzureADの認証情報(SSO)を使って AWSのコンソールにアクセスする

目的

複数のAWSアカウントを利用用途に使い分けていると、それぞれのログイン情報を管理するのは煩雑なので Azure Active Directory の認証情報を用いて、Office 365 ポータル からAWSコンソールを利用できる状態にします。

Office365ポータル.png

手順1. AzureADにエンタープライズアプリケーションを追加

チュートリアル:Azure Active Directory シングル サインオン (SSO) とアマゾン ウェブ サービス (AWS) の統合 に書いてある通りです。

AzureAD のエンタープライズアプリケーション に追加

01azureAdd.png

「Azure Active Directory 管理センター」 の 「エンタープライズ アプリケーション」 で + 新しいアプリケーション を選択します。


02addApp.png

追加するアプリケーションを指定するので、「ギャラリーから追加する」にあるテキストボックスに「Amazon Web Services」と入力して、 候補に上がった Amazon Web Services(AWS) を選択します。


03.png

画面右側に詳細が表示されるので、 「名前」に利用するAWSアカウントを識別できるものに変更して、 追加 をクリックします。 ここで指定した名前は Office 365 ポータルのの表示にも使われます。


Azure Active Directoryのエンタープライズアプリケーション でSAMLの設定

04.png

追加した エンタープライズアプリケーション の「概要」が表示されるので、 2。シングル サインオンの設定 を選択します。


05.png

「シングル サインオン方式の選択」から SAML を選択します。


06.png

SAMLの設定画面を表示した時に 識別子と 応答URL を問われるので、 いいえ、後で保存します を選択します。


07.png

スクロールして、 「SAML署名証明書」にある フィレデーション メタデータXML をダウンロードします。ここでダウンロードしたXMLは AWSに設定を行う過程で、AWSコンソールからアップロードします。


手順2.AWSにIDプロバイダーを追加

08.png

AWSコンソソールにログインして、 「Identity and Access Management (IAM)」の IDプロバイダー の作成を開始します。


09.png

作成する IDプロバイダーの情報を入力します。入力後は画面右下の 次のステップ をクリックします。

  • プロバイダーのタイプ
    • SAML を選択する
  • プロバイダー名
    • 任意の名前を入力する
    • 次の手順で IAM ロールを作成する時に指定するので名前を控えておく
  • メタデータドキュメント
    • AzureADのエンタープライズアプリケーションの設定をこなう過程でダウンロードした 「SAML署名証明書」にの フィレデーションメタデータXML を指定する

10.png

入力した IDプロバイダーの確認画面が表示されるので、誤りがなければ画面右下の 作成 をクリックします。


11.png

IDプロバイダーが作成されると、一覧に追加されます。


手順3. AWSでIAMロールを作成してSSOで認証されたユーザの権限を定義する

12.png

「Identity and Access Management (IAM)」の ロール の作成を開始します。


13.png

作成するロールの情報を指定します。必要な指定を行ったら、 次のステップ: アクセス権限 をクリックします。

  • 信頼されたエンティティの種類を選択
    • SAML2.0 フィデレーション を選択する
  • SAML 2.0 プロバイダを選択
    • SAML プロバイダーは一つ前の手順で作成した IDプロバイダーを指定する
    • プログラムによるアクセスとAWSマネージメントコンソールによるアクセスを許可する を選択する
    • 属性 は変更しない
    • は変更しない
    • 条件 はAzure Active Directoryの属性に基づいて条件付けを行うのであれば指定する

14.png

Azure Active Directoryで認証したユーザに付与する IAM ポリシーを指定したら、次のステップ: タグ をクリックします。今回は 「ReadOnlyAccess」にしました。


15.png

タグを適宜設定したら、次のステップ: 確認 をクリックします。


16.png

最後に、ロール名とロールの説明を入力して、 ロールの作成 をクリックします。ここで指定したロール名は AzureADの「エンタープライズ アプリケーション」の「ユーザとグループ」で利用されます。後の手順でユーザを単位に付与するロールを指定します。

  • ロール名
    • 「ReadOnlyAccessWithAzureAD」
  • 説明
    • 「Grant ReadOnlyAccess permission to the user authenticated by Azuru AD.」

17.png

ロールの一覧に今回作成した IAM ロールが追加された事を確認します。


手順4. AWSのIAMロールのリストを取得できるIAMユーザを作成する

ポリシーを作成

AzureADがユーザにロールを割り当てるために、ロールの一覧を取得できるIAMユーザを作成します。
18.png

まずは、ポリシーを作成します。 「Identity and Access Management (IAM)」の ポリシーの作成を開始します。


19.png

ポリシーの作成画面では、 JSON タブに下に JSONを設定して、 ポリシーの確認 をクリックします。

IAMロールの一覧取得を許可する
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
            "iam:ListRoles"
            ],
            "Resource": "*"
        }
    ]
}

20.png

作成したポリシー名と説明を入力します。 参考にした チュートリアル:Azure Active Directory シングル サインオン (SSO) とアマゾン ウェブ サービス (AWS) の統合 に従って入力します。最後に、 ポリシーの作成 をクリックして、ポリシーを作成します。

  • 名前
    • 「AzureAD_SSOUserRole_Policy」
  • 説明
    • 「This policy will allow to fetch the roles from AWS accounts」

21.png

作成されると、一覧に追加されます。


IAMユーザを作成

AzureADでユーザにIAMロール (今回であれば ReadOnlyAccessWithAzureAD )を割り当てるために、AWSにあるロールの一覧を取得します。それを行うために、IAMユーザを作成して「Access key ID」と「Secret access key」を発行します。


22.png

「Identity and Access Management (IAM)」の ユーザの作成を開始します。


23.png

作成するユーザ名とアクセスの種類を指定して、 次のステップ: アクセス権限 をクリックします。

  • ユーザ名
    • 「AzureADRoleManager」
  • アクセスの種類
    • 「プログラムによるアクセス」

24.png

直前で作成したポリシー「AzureAD_SSOUserRole_Policy」を指定して、 次のステップ: タグをクリックします。

  • アクセス許可の設定
    • 既存のポリシーを直接アタッチ
  • 指定するポリシー
    • 「ポリシーのフィルター」に AzureAD_SSOUserRole_Policy を設定してフィルターをかけます。
    • 「AzureAD_SSOUserRole_Policy」

25.png

タグを適宜設定して、 次のステップ: 確認 をクリックします。


26.png

内容を確認して問題なければ ユーザの作成 をクリックします。


27.png

ユーザの追加が完了したら、 アクセスキーとシークレットアクセスキーが記載された CSVファイルをダウンロードしておきます。

手順5. Azure ADに AIMユーザ AzureADRoleManager のアクセスキーとシークレットアクセスキーを設定する

28.png

AzureADのエンタープライズアプリケーションから 手順1 で追加したものを選択し、 「管理」の「プロビジョニング」を選択します。


29.png

プロビジョニングモードを指定して、 AIMユーザ「AzureADRoleManager」の認証情報を設定して、「テスト接続」を行い、成功する事を確認します。成功した後に「保存」をクリックして、入力値を保存します。

  • プロビジョニングモード
    • 自動
  • clientsecret
    • IAMユーザ「AzureADRoleManager」のアクセスキー
  • シークレットトークン
    • IAMユーザ「AzureADRoleManager」のシークレットアクセスキー

必要事項を入力した後に、「テスト接続」を行い、画面右上に成功メッセージが表示されるのを確認する。


30.png

入力値を保存すると 「プロビジョニング状態」が活性状態になるので、「オン」に変更して、再度保存します。

手順6. SSOで AWSにアクセスできるユーザを指定する

31.png

AzureADのエンタープライズアプリケーションから 手順1 で追加したものを選択し、 「管理」の「ユーザとグループ」を選択します。


32.png

「ユーザとグループ」の + ユーザの追加 をクリックします。


33.png

画面右側でAWS コンソールへのログインを許可するユーザもしくはグループを選択します。

  1. Active Direcotryに登録されているユーザとグループの一覧が表示されるので対象を選択する
  2. 中段の 「選択したアイテム」に、選択肢たユーザもしくはグループが表示されるのを確認する。
  3. 下段の 選択をクリックする

34.png

ロールは一つだけ作成したので、それが適用されます。複数のロールを作成している場合は、「ロールの選択」から適宜指定します。ユーザとロールの選択すると、 割り当て が活性化されるでクリックして保存します。


35.png

ユーザとグループの一覧に戻り、割り当てたユーザが表示されています。

Office 365 ポータルからAWSコンソールにログインする

36.png

追加されたユーザで Office 365 ポータルにアクセスすると、 「All Apps」に追加されているので、これをクリックするとAzureADの認証情報が使われてAWSコンソールを利用できます。

AWSで権限を分けたい場合

37.png

新しいIAMロールを作成します。「信頼されたエンティティ」は同じものを使います。

akym03
株式会社ゆめみ でシステムエンジニアをやっています。
yumemi
みんなが知ってるあのサービス、実はゆめみが作ってます。スマホアプリ/Webサービスの企画・UX/UI設計、開発運用。Swift, Kotlin, PHP, Vue.js, React.js, Node.js, AWS等エンジニア・クリエイターの会社です。東京(三軒茶屋)/京都(四条烏丸)/札幌/大阪/福岡に展開中!Twitterで情報配信中https://twitter.com/yumemiinc
http://www.yumemi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした