QuickSightのテナント管理において、何がテナント(名前空間)に属しており、何がそうでないのか、という理解は大切です。
データセットへのアクセス権限をテナントに付与する流れを通して概念を理解します。
- 名前空間に属するもの
- ユーザー/グループ
- 作成時/照会時に名前空間(Namespace)指定が必要なもの
- 名前空間に属さず、権限で管理されるもの
- データソース、データセット、分析、ダッシュボードなど上記以外のオブジェクト
- 作成時/照会時に名前空間(Namespace)指定が不要なもの
埋め込みコンソール機能を使用しテナントNS1/NS2用に自由に分析を行わせたい、というニーズがある場合のデータセット権限の設定方法を解説します。
# NS1 Dataset Permission
cat <<EOF > update-dataset-permission-NS1.json
{
"AwsAccountId": "$AWSACCOUNTID",
"DataSetId": "NS1-Data-Set",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS1/dashboard-members",
"Actions": [
"quicksight:DescribeDataSet",
"quicksight:DescribeDataSetPermissions",
"quicksight:PassDataSet",
"quicksight:DescribeIngestion",
"quicksight:ListIngestions"
]
}
]
}
EOF
# NS2 Dataset Permission
cat <<EOF > update-dataset-permission-NS2.json
{
"AwsAccountId": "$AWSACCOUNTID",
"DataSetId": "NS2-Data-Set",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:group/NS2/dashboard-members",
"Actions": [
"quicksight:DescribeDataSet",
"quicksight:DescribeDataSetPermissions",
"quicksight:PassDataSet",
"quicksight:DescribeIngestion",
"quicksight:ListIngestions"
]
}
]
}
EOF
次のコマンドを実行します。
aws quicksight update-data-set-permissions --cli-input-json file://update-dataset-permission-NS1.json
aws quicksight update-data-set-permissions --cli-input-json file://update-dataset-permission-NS2.json
以下のような結果が返っていれば成功です。
aws quicksight update-data-set-permissions --cli-input-json file://update-dataset-permission-NS1.json
{
"Status": 200,
"DataSetArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS1-Data-Set",
"DataSetId": "NS1-Data-Set",
"RequestId": "6179589a-d38c-4610-89e0-c747d8cc8386"
}
aws quicksight update-data-set-permissions --cli-input-json file://update-dataset-permission-NS2.json
{
"Status": 200,
"DataSetArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/NS2-Data-Set",
"DataSetId": "NS2-Data-Set",
"RequestId": "7e4200db-a259-4b93-8b7c-113f35409cf9"
}
埋め込みアプリケーションでパーミッションの動作確認を行います。
「3.テナントでの埋め込み動作確認」で生成した埋め込みコンソールURL(テナント:NS1/AUTHOR権限)をOpenします。(URLが無効になっている場合は再生成してください)
NS1のAUTHORであるQSDemoUser1
にデータセットが共有されています。
NS1のAUTHORであるQSDemoUser1
はデータセットから分析/ダッシュボードを作成可能になっています。
作成したダッシュボードはテナントNS1内のみで共有可能です。(NS1の別ユーザQSDemoUser2
のみ共有先として選択可能)
「3.テナントでの埋め込み動作確認」で生成した埋め込みコンソールURL(テナント:NS1/READER権限)をOpenします。(URLが無効になっている場合は再生成してください)
QSDemoUser2
にダッシュボードが共有されていることを確認できます。