3
1

More than 1 year has passed since last update.

QuickSight の自己プロビジョニングをフェデレーション環境でやってみた QuickSight編

Last updated at Posted at 2022-01-01

はじめに

QuickSight を会社全体に展開しようと思った時に、重要な検討事項の一つにアカウント管理があります。QuickSight 上でローカルユーザーを作成出来ますが、新入社員や退職などに追従するのは大変です。そこで会社全体として使っているアカウント管理基盤が、SAML や OpenID Connect が使える場合、これとQuickSight を連携することが出来ます。

前の記事では、Azure AD と連携して AWS マネージメントコンソールに SSO ログインをできるようにしました。Azure AD に登録されている User を使ってログインすることで、AWS マネージメントコンソールにアクセスできます。しかし、会社全体に展開することを考えたときに、QuickSight は許可するが、AWS マネージメントコンソールは禁止したい場合もあります。

ということで、Azure AD と QucikSight を連携して、Azure AD 上のユーザーログインから直接 QuickSight へ遷移する方法をご紹介します。

わかったこと

検証を通じてわかったことを、まず冒頭に記しておきます。読み飛ばしてもらって大丈夫です。

  • 手順について
    • 次の URL で、Azure AD と QuickSight を連携するための手順が紹介されている。
    • https://aws.amazon.com/jp/blogs/big-data/enabling-amazon-quicksight-federation-with-azure-ad/
    • 私が実施した手順は、多少変更した手順で構成をしている。
    • URL で紹介されているものは、Azure AD のグループを使っていが、私が使っている Azure AD の Free 版は、グループを作成することが出来ないため。(実際の本番環境は、グループを使っていくはずです)
  • QuickSight に直接アクセスにする方法について
    • Azure AD の設定で、Relay State を https://quicksight.aws.amazon.com に向けることで、QuickSight の直接ログインが可能
  • QuickSight 直接アクセスと、AWSマネージメントコンソールアクセスの使い分けについて
    • Azure AD 上で作成する「エンタープライズアプリケーション」を2種類作成することで、ユーザー側で利用するアプリケーションを使い分けることが出来る。
    • つまり、QuickSight しかアクセスさせたくないユーザーには、QuickSight直接アクセスする「エンタープライズアプリケーション」のみ割り当てることで、マネージメントコンソールに入れないようにする。
    • この時の注意点としては、同一ユーザーが2種類作成する「エンタープライズアプリケーション」を同時に使う場合、同じ IAM Role を使いまわす必要がある。
    • ことなる IAM Role で設定した場合、QuickSight としては異なるユーザーと認識されてしまう動作になる。そのため、同じ IAM Role を使いまわして登録することで、同一のユーザーとして認識してくれる。
  • Azure AD のコンソールは、日本語だと若干挙動が怪しい部分があった。言語を英語に変えてやるのがいいのかも

Azure : Azure AD に QuickSight アプリケーションを登録

Microsoft Azure にログインをして、Azure AD に QuickSight アプリケーションを登録していきます。
https://portal.azure.com/

Azure AD 上で、エンタープライズアプリケーションを開きます。

image-20220101141958458.png

新しいアプリケーションを追加を押します。

image-20220101142049614.png

AWS の Icon を選択します。

image-20220101165252381.png

AWS Single-Account Access を選択します。

image-20220101165323846.png

名前を入れて登録をします。

image-20220101165424006.png

シングルサインオンを選択します。

image-20220101144108398.png

SAML を選択します。

image-20220101144149334.png

基本的な SAML 構成を編集します。

image-20220101165606414.png

パラメータを入力して保存をおします。リレー状態を変更することで、直接 QuickSight へのアクセスを行うように構成できます。

  • リレー状態 (Relay State) : https://quicksight.aws.amazon.com

image-20220101170348287.png

フェデレーションメタデータXMLをダウンロードします。

image-20220101150721882.png

AWS : IAM に Identity Provider を構成

Add Provider を選択

image-20220101150924620.png

パラメータを入れて、Add provider を押す

  • Provider type : SAML
  • Provider Name : 好きな名前
  • Metadata document : ダウンロードした XML ファイルを選択

image-20220101151034404.png

AWS : IAM Policy の作成

IAM ユーザー側で QuickSight ユーザーの自己プロビジョニングをするときに、3種類のロールを選べます。IAM ユーザーについている IAM Policy によって、自己プロビジョニングをした時に付与されるロールが自動的に選択されます。

  • Admin (管理者)
  • Author (作成者)
  • Reader (閲覧者)

今回の記事では、3つの IAM Policy を作成していきます。

  • Admin 用ポリシー : QuickSightAdminforAzureAD
  • quicksight:CreateAdmin を指定
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "quicksight:CreateAdmin"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
        }
    ]
}
  • Author 用ポリシー : QuickSightAuthorforAzureAD
  • quicksight:CreateUser を指定
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "quicksight:CreateUser"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
        }
    ]
}
  • Reader 用ポリシー : QuickSightReaderforAzureAD
  • quicksight:CreateReader を指定
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "quicksight:CreateReader"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:quicksight::xxxxxxxxxxxx:user/${aws:userid}"
        }
    ]
}

AWS : IAM Role の作成

上記で作成した 3 つの Policy を使って、3 つの IAM Role を作成します。

Create Role を選択します。

image-20220101151609124.png

SAML を選び、作成した Identity Provider を選択して Next を押す。

image-20220101151654642.png

対象の Role を選び、Next を押す。

image-20220101151806259.png

IAM Role の名前を指定して、Create をします。

image-20211231193008895.png

同様の手順を繰り返して、3個の IAM Role を作成完了している状態です。

image-20211231191039932.png

補足 : 1個の IAM Role を複数の Identity Provider で使いまわす

1 個の IAM Role を複数の Identity Provider で使いまわしたいときがあります。「AWSマネージメントコンソール」用のアクセスと、「QuickSight直接」の2種類の Identity Provider を用意したときに、同じ IAM Role を2つの Identity Provider に共有したいです。

そういった時には、1個の IAM Role の Trust Relationship の設定で、2つの Identity Provider を指定すると良いです。

image-20220101180458118.png

JSON の設定はこんな感じで出来ました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::xxxxxxxxxxxx:saml-provider/AzureADforManagementConsole"
      },
      "Action": "sts:AssumeRoleWithSAML",
      "Condition": {
        "StringEquals": {
          "SAML:aud": "https://signin.aws.amazon.com/saml"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::xxxxxxxxxxxx:saml-provider/AzureADforQuickSight"
      },
      "Action": "sts:AssumeRoleWithSAML",
      "Condition": {
        "StringEquals": {
          "SAML:aud": "https://signin.aws.amazon.com/saml"
        }
      }
    }
  ]
}

Azure AD : 自動プロビジョニング

まず、次の URL の手順を参考にして、自動プロビジョニング用の IAM User と、それに紐づく Access Key, Secret Key を取得します。

Access Key, Secret Key を取得したら、次の手順を進めていきます。

プロビジョニングから、作業の開始を選びます。

image-20220101152850822.png

パラメータを入れて、テスト接続を押します。

  • 自動
  • clientsecret : Access Key
  • シークレット トークン : Secret Accesss Key

image-20211231002025526.png

テスト接続が OK なので、このまま保存を押します。

image-20211231002059532.png

保存完了です。

image-20211231002143871.png

画面を戻した後に、プロビジョニングの開始を押します。

image-20211231002335433.png

プロビジョニングが開始されました。

image-20211231002356523.png

プロビジョニングの編集を押します。

image-20211231002519977.png

プロビジョニングの状態がオンになっていれば OK です。オンになっていない場合は、オンにします。

image-20211231002603153.png

100% 完了と表示されると、OK です。場合によっては時間がかかります。ロールが「5」なっており、AWS IAM Role を Azure AD と連携している様子がわかります。

image-20220101170158828.png

念のため、プロビジョニングの再開をおしておくよいです。

image-20220101170917894.png

Azure AD : RoleSessionName の指定を変更

RoleSessionName の指定を、Azure AD 上でカスタマイズします。

image-20211231011516697.png

RoleSessionName を変更します。

image-20211231011554115.png

user.mail としておきます。

image-20211231011625376.png

変わりました。

image-20211231011650528.png

Azure AD : ユーザーの登録

ユーザーの追加をおします。

image-20220101170757563.png

admin ユーザーを選択します。

image-20220101171053337.png

この Admin ユーザーに割り当てる、AWS IAM Role を指定します。この右側の名前は、[IAMRole名,IdP名] という形式となっています。

image-20220101180850480.png

1個の IAM Role を複数の IdP に設定している場合、IdP を間違えないように正しく選びましょう。

image-20220101180941347.png

割り当てを押します。

image-20220101171154313.png

この手順を繰り返して、3人分のロールを選択します。

image-20220101181036377.png

Azure AD からログイン : 動作確認

これで Azure AD から直接 QuickSight にログインする準備ができました!それでは、Azure AD からログインを試してみましょう。次の Azure AD Portal にログインします。

Admin ユーザー

ユーザー名を入力します。

image-20220101171509026.png

パスワードの入力

image-20220101171555636.png

QuickSight のアイコンを選択します。

image-20220101171624789.png

直接 QuickSight の画面が開けました!

image-20220101181229981.png

Admin アカウントなので、全体の管理画面を開けます。

image-20220101181434394.png

Author ユーザー

Author ユーザーでログインします。

image-20220101181526633.png

QuickSight のアイコンを選択します。

image-20220101171624789.png

直接 QuickSight の画面が開けました!Author アカウントなので、アカウント全体の管理画面は開けません。

image-20220101181629064.png

Reader ユーザー

Reader ユーザーでログインします。

image-20220101181817907.png

Reader 権限なので、Dashboard しか開くことが出来ません。

image-20220101181852009.png

参考URL

3
1
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
3
1