ダッシュボードの展開

テナントへのダッシュボード展開

ここまで作成したダッシュボードはすべて管理用テナントdefaultに存在しています。本項では作成したダッシュボードに対するアクセス権限を設定し、テナントNS1/NS2のユーザーがダッシュボードにアクセス出来るよう設定を行います。

(再掲) QuickSightのテナント・グループ・ユーザー

権限設定を行っていくにあたり、4.a.4で作成したテナント等の情報を再掲します。

用語のおさらい

  • 名前空間(Namespace)
    • QuickSight上で分離されたテナント
  • グループ
    • QuickSightの論理的なグループ
  • ユーザー
    • QuickSightのユーザー

現在の設定

  • 名前空間:default テナント全体を管理する名前空間
    • グループ:なし
      • ユーザ:ログイン中のIAMユーザ アカウントの全体管理ユーザ(ADMIN)
  • 名前空間:NS1 テナント向け名前空間1
    • グループ:dashboard-membders
      • ユーザ:QSDemoUser1 NS1の作成者ユーザ(AUTHOR)
      • ユーザ:QSDemoUser2 NS1の閲覧者ユーザ(READER)
  • 名前空間:NS2 テナント向け名前空間2
    • グループ:dashboard-membders
      • ユーザ:QSDemoUser3 NS2の作成者ユーザ(AUTHOR)
      • ユーザ:QSDemoUser4 NS2の閲覧者ユーザ(READER)

QuickSightセットアップイメージ

Alt text

ダッシュボードへのアクセス許可の更新

  • NS1/NS2の各ダッシュボードをそれぞれのテナントのグループdashboard-membersからアクセス可能となるよう設定を行います。
  • ここではアクセス許可を権限を設定するため、対象のダッシュボードID、アクセス主体、アクセス許可内容を定義しています。
# Permission for NS1
cat <<EOF > update-dashboard-NS1.json
{
    "AwsAccountId": "$AWSACCOUNTID",
    "DashboardId": "QShandson-dashboard-NS1",
    "GrantPermissions": [
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS1/dashboard-members",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:QueryDashboard"

            ]
        }
    ]

}
EOF

# Permission for NS2
cat <<EOF > update-dashboard-NS2.json
{
    "AwsAccountId": "$AWSACCOUNTID",
    "DashboardId": "QShandson-dashboard-NS2",
    "GrantPermissions": [
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS2/dashboard-members",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:QueryDashboard"

            ]
        }
    ]

}
EOF

アクセス許可の更新の実行

aws quicksight  update-dashboard-permissions --cli-input-json file://update-dashboard-NS1.json
aws quicksight  update-dashboard-permissions --cli-input-json file://update-dashboard-NS2.json

実行結果

以下のような出力があれば成功です。
各ダッシュボードに対し、defaultの権限に加えてNS1/NS2の読取権限が付与されていることが確認できます。

aws quicksight  update-dashboard-permissions --cli-input-json file://update-dashboard-NS1.json
{
    "Status": 200,
    "DashboardArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dashboard/QShandson-dashboard-NS1",
    "DashboardId": "QShandson-dashboard-NS1",
    "Permissions": [
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:user/default/$IAMUSERNAME",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:UpdateDashboardPermissions",
                "quicksight:QueryDashboard",
                "quicksight:UpdateDashboard",
                "quicksight:DeleteDashboard",
                "quicksight:DescribeDashboardPermissions",
                "quicksight:UpdateDashboardPublishedVersion"
            ]
        },
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS1/dashboard-members",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:QueryDashboard"
            ]
        }
    ],
    "RequestId": "4f5d44ec-3507-4ddd-a2f8-a5cc8610b53e"
}
aws quicksight  update-dashboard-permissions --cli-input-json file://update-dashboard-NS2.json
{
    "Status": 200,
    "DashboardArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dashboard/QShandson-dashboard-NS2",
    "DashboardId": "QShandson-dashboard-NS2",
    "Permissions": [
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:user/default/$IAMUSERNAME",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:UpdateDashboardPermissions",
                "quicksight:QueryDashboard",
                "quicksight:UpdateDashboard",
                "quicksight:DeleteDashboard",
                "quicksight:DescribeDashboardPermissions",
                "quicksight:UpdateDashboardPublishedVersion"
            ]
        },
        {
            "Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS2/dashboard-members",
            "Actions": [
                "quicksight:DescribeDashboard",
                "quicksight:ListDashboardVersions",
                "quicksight:QueryDashboard"
            ]
        }
    ],
    "RequestId": "857c298a-44b7-4570-a4e4-0f8e4582ae08"
}

ダッシュボードのアクセス許可の確認

次のコマンドを実行して、ダッシュボードのアクセス許可を確認できます。

aws quicksight describe-dashboard-permissions --aws-account-id $AWSACCOUNTID --dashboard-id QShandson-dashboard-NS1
aws quicksight describe-dashboard-permissions --aws-account-id $AWSACCOUNTID --dashboard-id QShandson-dashboard-NS2

QuickSightセットアップイメージ

ここまでの操作により以下のマルチテナント環境が完成しました。次項より、作成された環境の動作確認を行います。

Alt text