テナントへの権限付与

テナントでのデータ保持

QuickSightのテナント管理において、何がテナント(名前空間)に属しており、何がそうでないのか、という理解は大切です。
データセットへのアクセス権限をテナントに付与する流れを通して概念を理解します。

  • 名前空間に属するもの
    • ユーザー/グループ
      • 作成時/照会時に名前空間(Namespace)指定が必要なもの
  • 名前空間に属さず、権限で管理されるもの
    • データソース、データセット、分析、ダッシュボードなど上記以外のオブジェクト
      • 作成時/照会時に名前空間(Namespace)指定が不要なもの

データセットへのパーミッションJSON

埋め込みコンソール機能を使用しテナントNS1/NS2用に自由に分析を行わせたい、というニーズがある場合のデータセット権限の設定方法を解説します。

  • ここでは、NS1/NS2のユーザが管理用テナント(default)のデータセットを参照可能とする権限を付与します。
# 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にデータセットが共有されています。 Alt text

  • NS1のAUTHORであるQSDemoUser1はデータセットから分析/ダッシュボードを作成可能になっています。 Alt text

  • 作成したダッシュボードはテナントNS1内のみで共有可能です。(NS1の別ユーザQSDemoUser2のみ共有先として選択可能) Alt text

「3.テナントでの埋め込み動作確認」で生成した埋め込みコンソールURL(テナント:NS1/READER権限)をOpenします。(URLが無効になっている場合は再生成してください)

  • 同テナントのREADERであるQSDemoUser2にダッシュボードが共有されていることを確認できます。 Alt text