QuickSight でグループ管理をしてみた

# はじめに

QuickSight はグループ管理機能があります。複数ユーザーを参加させることで、グループ単位の権限管理が可能になります。一般的なグループの概念ですね。

ただ、QuickSight の Web UI にはグループの管理画面が提供されておらず、AWS CLI や REST API, SDK などでグループ新規作成やグループ参加などを操作する必要があります。

今回は、AWS CLI でグループを作成する動作を簡単に確認してみます。



# グループを作成してメンバーの追加

AWS CLI を使って、QuickSight 上にグループを1個作成します。

- グループ名 `admin-group01`

```
aws quicksight create-group \
--aws-account-id xxxxxxxxxxxx \
--namespace default \
--group-name admin-group01
```



実行例です。正常に作成できています。

```
> aws quicksight create-group \
      --aws-account-id xxxxxxxxxxxx \
      --namespace default \
      --group-name admin-group01
{
    "Status": 201,
    "Group": {
        "Arn": "arn:aws:quicksight:ap-northeast-1:xxxxxxxxxxxx:group/default/admin-group01",
        "GroupName": "admin-group01",
        "PrincipalId": "group/d-95671e6425/9301d8e0-92ef-44b4-8f0e-f68916220eb2"
    },
    "RequestId": "4ff6f583-17c0-4097-ad07-b579cf3be19d"
}
```



作成したグループにユーザーを追加するため、ユーザーの一覧を確認します。

```
aws quicksight list-users --aws-account-id xxxxxxxxxxxx --namespace default
```



実行例です。一部抜粋していますが、2個のユーザーが表示されています。

```
{
    "Status": 200,
    "UserList": [
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:xxxxxxxxxxxx:user/default/QuickSightAdminforAzureAD/quicksight-admin02@test.com",
            "UserName": "QuickSightAdminforAzureAD/quicksight-admin02@test.com",
            "Email": "admin02@test.com",
            "Role": "ADMIN",
            "IdentityType": "IAM",
            "Active": true,
            "PrincipalId": "federated/iam/AROAVNVNXMHCFY7644GS4:quicksight-admin02@test.com"
        },
        {
            "Arn": "arn:aws:quicksight:ap-northeast-1:xxxxxxxxxxxx:user/default/QuickSightAdminforAzureAD/quicksight-admin01@test.com",
            "UserName": "QuickSightAdminforAzureAD/quicksight-admin01@test.com",
            "Email": "admin01@test.com",
            "Role": "ADMIN",
            "IdentityType": "IAM",
            "Active": true,
            "PrincipalId": "federated/iam/AROAVNVNXMHCFY7644GS4:quicksight-admin01@test.com"
        }
    ],
    "RequestId": "22214a3c-2565-4cd5-80d3-cbd6bedee051"
}
```



作成した Group に、2人のメンバーを追加していきます。

1人目

```
aws quicksight create-group-membership \
--aws-account-id xxxxxxxxxxxx \
--namespace default \
--group-name admin-group01 \
--member-name "QuickSightAdminforAzureAD/quicksight-admin01@test.com"
```



2人目

```
aws quicksight create-group-membership \
--aws-account-id xxxxxxxxxxxx \
--namespace default \
--group-name admin-group01 \
--member-name "QuickSightAdminforAzureAD/quicksight-admin02@test.com"
```



# Dashboard をグループに共有

Group を作成して、ユーザーを追加出来たため、適当にダッシュボードの共有設定をしてみましょう。適当に Dashboard を選択します。

![image-20220102204149465.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/c83f5e51-2679-7da5-9804-2b117ece56bb.png)



Share Dashboard を選択

![image-20220102204231295.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/a0866ea3-b4fa-e501-2b38-fa4e42a24901.png)



共有先として、新たに作成したグループ `admin-group01` を選択可能

![image-20220102204305010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/2bb00cc3-f7c9-7118-e931-86b7cf75498d.png)



# 動作確認

対象のユーザーでログインすると、正常にダッシュボードが共有されています。これで、グループを作成し、正常に共有が出来ることを確認しました。

![image-20220102204512579.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/755d4e51-94e6-4bc2-3b42-ff433f1f59c3.png)