最低権限のIAMユーザーでQuickSightに自己プロビジョニングしてみた

2021.01.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

QuickSightユーザーは、QuickSight管理画面から招待する以外にも、マネジメントコンソールからQuickSightにアクセスすることで自己プロビジョニングという形で作成することが可能です。

QuickSightユーザーは管理者、作成者、閲覧者の3つのロールがあり、自己プロビジョニングするIAMユーザーの権限によって付与されるロールが決まります。
今回はプロビジョニング権限のみで何が出来るのか、そして、ユーザーの手順の流れを確認したかったので権限のないユーザーも含めて一通りの権限ユーザーで自己プロビジョニングを試してみました。

IAMユーザー作成

4つのIAMユーザーを作成しました。

そえぞれの権限は以下です。

管理者作成権限のみ

quick-admin

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "quicksight:CreateAdmin",
            "Resource": "*"
        }
    ]
}

作成者作成権限のみ

quick-user

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "quicksight:CreateUser",
            "Resource": "*"
        }
    ]
}

閲覧者作成権限のみ

quick-reader

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "quicksight:CreateReader",
            "Resource": "*"
        }
    ]
}

自己プロビジョニング

対象ユーザーでマネジメントコンソールからQuickSightにアクセスします。

アクセスするとEメールアドレスの入力を要求されます。

入力して続行ボタンを押すと、すぐプロビジョニングが完了します。
管理者による承認などは発生しません。
よって自己プロビジョニングを許可するかどうか、何のQuickSightロールを割り当てるのかはIAMロールで制御する必要があります。

管理者

quicksight:CreateAdmin権限でプロビジョニングしました。

QuickSightの管理者ユーザーとして認識されています。
ダッシュボードの編集・共有が可能です。

管理権限の一部は権限不足のエラーが発生します。
事前にIAMで適切なパーミッションの追加設定が必要です。

例えば、上記のカスタム許可を編集したい場合は、quicksight:*CustomPermissionsが必要です。

パーミッションについては以下でも触れています。

作成者

quicksight:CreateUserではどうでしょうか。

管理機能へのアクセスは出来ませんが、ダッシュボードの作成は出来ます。

閲覧者

quicksight:CreateReader権限も確認します。

閲覧権限になっていますね。

いずれの権限もなし

上記いずれの権限も保有していないユーザーが自己プロビジョニングを試みた場合はどうなるでしょうか。

ようこそ画面に遷移してメールアドレスを入力することは出来ました。
しかし、続行ボタンを押すとエラーになります。

ユーザー作成権限が全くないユーザーは、管理者にQuickSight管理画面から招待してもらうか、権限を保有しているユーザーに作成してもらう必要があります。

入力したEメールアドレス宛に招待メールが届くので、有効期間内に招待の承認を行います。

ユーザー登録API/CLIを直接実行した場合は承認を挟まずにユーザーのプロビジョニングが可能です。

iwasa.takahito@iwasa ~ % aws quicksight register-user --identity-type IAM --email xxxx@mail.jp --user-role READER --iam-arn arn:aws:iam::999999999999:user/user_reader --aws-account-id 999999999999 --namespace default
{
    "Status": 201,
    "User": {
        "Arn": "arn:aws:quicksight:ap-northeast-1:999999999999:user/default/user_reader",
        "UserName": "user_reader",
        "Email": "xxxx@mail.jp",
        "Role": "READER",
        "IdentityType": "IAM",
        "Active": false,
        "PrincipalId": "federated/iam/ZZZZZZZZZZZZZZZZZZZZZ"
    },
    "RequestId": "077cd6d5-d7d4-4141-8456-fdbae95117b9"
}
iwasa.takahito@iwasa ~ %

パスワード初回入力、リセット

IAMユーザーに紐付いている場合でパスワードの初回更新が済んでいない場合はQuickSightサインイン画面からはサインイン出来ません。
マネジメントコンソールにアクセスしパスワードの更新が必要となります。

同様に、QuickSight管理画面上からのパスワードリセットも出来ません。
IAMから操作を行う必要があります。

まとめ

自己プロビジョニングが必要な場合はIAMポリシーの設定を行いましょう。
ただし、QuickSight内で細かい権限を設定したい場合はQuickSight内でのカスタムアクセス許可を行う形になります。
プロビジョニング時の指定方法はAPI/CLIで実行する必要がありますので別で記事にしたいと思います。