Amazon QuickSight: ユーザー管理やパーミッション設定について
QuickSightのユーザー管理やパーミッション設定についての解説と、QuickSightを始めて使うときにハマりがちな、QuickSight管理者ユーザー決定ルールについて補足します。 とにかく、QuickSightを手っ取り早く使いたい方はこちらをお読みください。
目次
- QuickSightのユーザー管理
- マネジメントコンソールからQuickSightにSSO(シングルサインオン)する方法
- QuickSightのサイトからサインインする方法
- QuickSightを手っ取り早く使いたい方
- QuickSight環境の削除も簡単
- まとめ
QuickSightのユーザー管理
QuickSightのユーザーはAWSのIAMユーザーとは別に管理されており、QuickSightのサインインは、マネジメントコンソールからQuickSightにSSO(シングルサインオン)する方法と、QuickSightのサイト(https://quicksight.aws.amazon.com)にサインインする方法 の2種類が提供されています。
QuickSightのユーザー登録の概要
ユーザー登録の流れは以下のとおりです。
- QuickSight管理者になるIAMユーザーにQuickSightが利用するパーミッション設定する
- マネジメントコンソールにサインインしてQuickSightアイコンをクリックする
- AWSアカウント内でQuickSight管理者ユーザーとして登録する
- 以降、QuickSight管理者ユーザーが Invite User(ユーザーを招待)してユーザー追加する
まずはIAMユーザーでQuickSight管理ユーザーを登録した後、IAMユーザーや非IAMユーザーに対してInvite User してユーザーを登録するという流れになります。
QuickSight管理ユーザーがIAMユーザーでなければならない理由は、QuickSightがデータソースとして利用するAWSリソース(S3、RDS、Redshift等)のパーミッション設定などが不可欠であるからです。一方、非IAMユーザーでも利用ができるようにしたのは、BIツールとしてのQuickSightがターゲットにしているデータ分析者やデータ利用者は、マネジメントコンソールの利用が不要であるからと考えられます。目的がわかると、この2種類のアカウントのユースケースも自ずと見えてくると思います。
1.QuickSight管理者になるIAMユーザーにQuickSightが利用するパーミッション設定
既存・新規問わず、QuickSight管理者になるIAMユーザーに以下のパーミッションを与えてください。
{ "Statement": [ { "Action": [ "iam:ListPolicyVersions", "iam:ListAccountAliases", "iam:AttachRolePolicy", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:CreateRole", "iam:CreatePolicy", "iam:CreatePolicyVersion", "iam:DeletePolicyVersion", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRoles", "ds:CheckAlias", "ds:CreateIdentityPoolDirectory", "ds:CreateAlias", "ds:AuthorizeApplication", "ds:DescribeDirectories", "ds:UnauthorizeApplication", "ds:DeleteDirectory", "quicksight:Subscribe", "quicksight:Unsubscribe", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": [ "*" ] } ], "Version": "2012-10-17" }
補足:上記で付与しているパーミッションはQuickSightが利用するものです。「ds:」とあるようにQuickSightのユーザー管理は何らかのディレクトリサービスを利用していることが予想されます。
参考:Sign Up for Amazon QuickSight With an Existing AWS Account
2.マネジメントコンソールにサインインしてQuickSightをクリック
「すべてのサービス」の中から、[QuickSight] をクリックすると、マネジメントコンソールからSSO(シングルサインオン)して、サインインします。QuickSightは、同じAWSアカウント内で一番最初にQuickSightの利用開始したIAMユーザーがQuickSight管理者となるという暗黙のルールがあります。
何も問題がなければ「Sign Up for QuickSight.」と表示されます。
3.AWSアカウント内でQuickSight管理者ユーザーとして登録
QuickSightの登録を行います。
- QuickSight Home Region : US East(N. Virginia)/US West(Oregon)/EU(lreland)のいずれかを選択します。
- QuickSight Account Name : QuickSightのサイトからログインする際に指定しますので、すべてリージョンで固有の名前を指定してください。執筆時点では、QuickSight Account Nameを画面上から把握することができませんのでお忘れないようご注意ください。
- Notification email address : IAMユーザーの通知用メールアドレスを指定します。
登録が成功すると、以下の画面が表示されます。この時点でAWSアカウントにQuickSightの環境がラウンチされ、このQuickSightの環境をすべてIAMユーザーが共有します。
引き続き、QuickSightに対して読み取りアクセスを許可するAWSリソースを指定します。
- Amazon Redshift : 同一AWSアカウントのRedshiftクラスタを自動検出する権限を付与するかを指定します。
- Amazon Redshift : 同一AWSアカウントのRDSインスタンスを自動検出する権限を付与するかを指定します。
- IAM : 同一AWSアカウント内のIAMユーザーをINVITEするためにQuickSightがアクセスすることを許可するか指定します。
- Amazon S3 (All buckets) : 同一AWSアカウント内のS3バケットにアクセスすることを許可するか指定します。[Choose Permissions]からバケットを限定してアクセス許可を与えます。
以上の設定が終わると、QuickSightの解説が始まり、その後にサンプルのAnalyticsが表示されます。
QuickSightが利用するパーミッションを付与していない場合のエラー
上記のパーミションを付与し忘れている場合、以下のエラーが表示されます。QuickSight管理者ユーザーのIAMユーザーに上記のパーミッションを設定してください。
すでにQuickSight管理ユーザーが登録済みの場合のエラー
すでにQuickSight管理ユーザーが登録済みの場合は以下のメッセージが表示されます。QuickSight管理ユーザーのIAMユーザーでQuickSightにログインして、Invite User(ユーザーを招待)します。執筆時点では、QuickSight管理ユーザーのIAMユーザーを画面上から把握することができませんので、わからない場合はAWSサポートに問い合わせが必要となります。
4.以降、QuickSight管理者ユーザーが Invite User(ユーザーを招待)してユーザー追加
- 右上のアカウントのアイコンをクリックして[Manage QuickSight]を選択
- 左の[Manage Users]を選択
- [Invite Users]ボタンを押すと登録ダイアログが表示
[User name]を入力して、[+]ボタンを押すと、下の行に追加されます。引き続き、[Email]、[IAM User](YES/NO)、[Role](ADMIN/USER)を入力・設定します。
[IAM User]が「YES」の場合は以下の通知メール送信され、これで登録は完了です。
[IAM User]が「NO」の場合は以下の通知メール送信されます。リンクをクリックしてパスワードを入力して登録が完了しますので、登録したユーザへの周知してください。
IAMユーザーでマネジメントコンソールからSSO(シングルサインオン)する方法
マネジメントコンソールにログインした後、AWSサービス - すべてのサービス - [QuickSight]リンクをクリックするのみです。
QuickSightのサイトからサインインする方法
QuickSightのサイト https://quicksight.aws.amazon.com からサインインします。 IAMユーザー・非IAMユーザーともにこちらからログインできます。
QuickSight Account Nameを指定します。
UsernameとPasswordによってログインできることを確認しています。IAMユーザーでMFA登録している場合はワンタイムパスワードも忘れずに入力してください。
QuickSightを手っ取り早く使いたい方
「ユーザー管理」の概念や「パーミッション設定」は置いて、とにかく手っ取り早く使いたい人は、すべてのパーミッションが付与された管理者用のIAMユーザーを使って、同じAWSアカウント内で一番最初にQuickSightの利用を開始すればトラブル無しで利用できます。エラーが出た場合はすでにQuickSight管理者ユーザーが他のIAMユーザーに取られているので、QuickSight管理者ユーザーを自力で探してユーザーを追加(INVITE:招待)してもらいましょう。 うまくいかない場合はこのブログの内容を把握してトラブルシューティングを試みてください。
QuickSight環境の削除も簡単
技術調査やPoCのように一時的にQuickSight環境を利用して、終わったらサクッと削除したい場合などもあるでしょう。QuickSightの管理者ユーザーで、QuickSightアカウントの閉じる(Close this QuickSight account)ことができます。
Account Permissions の [Unsubscribe] を押して、
QuickSight account nameを確認して、[Unsubscribe]を押すとクローズされます。
まとめ
Signing Up for Amazon QuickSight の内容から、「初回のサインアップ作業を実施した IAM ユーザーが QuickSight 管理者になる」と、間接的にしか読み取れない表現なので、迷う人は多いはずだろうというのが、このブログにまとめるきっかけでした。いざ書いてみると多くの学びがありました。
今回のプラクティスをまとめますと、
- QuickSightの環境は、AWSアカウント内に1つ
- QuickSight管理者のIAMユーザーにQuickSightに必要なパーミションを付与すること
- ユーザーはIAMユーザーと非IAMユーザーがあり、AWSが管理しているIAMユーザーとは別に管理されている
- サインインの方法は、マネジメントコンソールからのSSOとQuickSightのサイトの2種類
- 同じAWSアカウント内で一番最初にQuickSightの利用開始したIAMユーザーがQuickSight管理者となる
- 後でQuickSight管理者のIAMユーザーと、QuickSight Account Nameを画面から確認できないので、忘れない様にAWSアカウント内のメンバーで情報共有すること
サクッとユーザ登録が完了させて、ぜひチューニングレスでスムーズなSPICEをQuickSightを通じて体験してください。