ここまで作成したダッシュボードはすべて管理用テナントdefault
に存在しています。本項では作成したダッシュボードに対するアクセス権限を設定し、テナントNS1/NS2のユーザーがダッシュボードにアクセス出来るよう設定を行います。
権限設定を行っていくにあたり、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)
dashboard-members
からアクセス可能となるよう設定を行います。# 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
ここまでの操作により以下のマルチテナント環境が完成しました。次項より、作成された環境の動作確認を行います。