[アップデート] QuickSight 制限付き共有フォルダがサブフォルダをサポートしました
コーヒーが好きな emi です。
本日 2024/10/17(日本時間 2024/10/18)のアップデートで、QuickSight 制限付き共有フォルダがサブフォルダをサポートしました。
QuickSight では「共有フォルダ」という概念でアセットをフォルダ分けすることができます。その中でも「制限付き共有フォルダ」はより強固な制限が必要なアセットを管理するために利用できます。制限付き共有フォルダについては以下ブログを参照ください。
この制限付き共有フォルダは今までサブフォルダ(子フォルダ)をサポートしていなかったのですが、今回のアップデートでサポートされました。
さっそくサブフォルダの作成と権限の付与を試してみました。
検証結果イメージ
最初に検証結果をイメージで描きます。
制限付き共有フォルダに付与された権限は、サブフォルダに継承されました。
サブフォルダのみに権限を付与し、親の制限付き共有フォルダにアクセスさせない、という構成も可能でした。
サブフォルダ内に作成した分析から、親の制限付き共有フォルダにダッシュボードを配置することもできました。
サブフォルダ配下に更にサブフォルダを作成することもできました。
事前準備
事前に、QuickSight ユーザー「DataAnalysisUser1」を、グループ「test-group」に所属させておきます。
QuickSight のユーザー・グループの作成方法は以下ブログを参照ください。
制限付き共有フォルダの作成
制限付き共有フォルダは QuickSight コンソールからは作成できません。API 操作でのみ作成可能です。
まず、QuickSight への権限がある IAM ユーザーで制限付き共有フォルダを作成します。
AWS マネジメントコンソールログインし、CloudShell から AWS CLI で制限付き共有フォルダを作成していきます。
まず、制限付き共有フォルダに権限を付与する QuickSight グループの一覧を表示します。
aws quicksight list-groups --aws-account-id 123456789012 --namespace default
実行結果
[cloudshell-user@ip-10-130-57-248 ~]$ aws quicksight list-groups --aws-account-id 123456789012 --namespace default
{
"GroupList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/test-group",
"GroupName": "test-group",
"Description": "test-group",
"PrincipalId": "group/d-956747a400/7d75c34e-667b-41ed-9a29-xxxxxxxxxx"
}
],
"Status": 200,
"RequestId": "b25b4fa2-cfce-4007-88b4-d97f193e9bea"
}
[cloudshell-user@ip-10-130-57-248 ~]$
グループの ARN arn:aws:quicksight:ap-northeast-1:123456789012:group/default/test-group
をメモしておきます。
次に AWS CLI スケルトンで制限付き共有フォルダを作成する JSON ファイル create-folder-for-test-group.json
を作成します。
aws quicksight create-folder --generate-cli-skeleton > create-folder-for-test-group.json
実行結果
[cloudshell-user@ip-10-130-57-248 ~]$ aws quicksight create-folder --generate-cli-skeleton > create-folder-for-test-group.json
[cloudshell-user@ip-10-130-57-248 ~]$
スケルトンファイルの中身を確認します。
[cloudshell-user@ip-10-130-57-248 ~]$ ls
create-folder-for-test-group.json
[cloudshell-user@ip-10-130-57-248 ~]$ cat create-folder-for-test-group.json
{
"AwsAccountId": "",
"FolderId": "",
"Name": "",
"FolderType": "SHARED",
"ParentFolderArn": "",
"Permissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"Tags": [
{
"Key": "",
"Value": ""
}
],
"SharingModel": "ACCOUNT"
}
[cloudshell-user@ip-10-130-57-248 ~]$
create-folder-for-test-group.json
を vim などで以下のように編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_test-group",
"Name": "Shared restricted folder for test-group",
"FolderType": "RESTRICTED",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/test-group",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
]
}
これは test-group
に含まれる QuickSight ユーザーに寄稿者権限を付与するスケルトンファイルです。
"Permissions"
の "Principal"
にはメモしておいたグループの ARN arn:aws:quicksight:ap-northeast-1:123456789012:group/default/test-group
を記入します。
では、create-folder
コマンドで制限付き共有フォルダを作成します。
aws quicksight create-folder \
--cli-input-json file://create-folder-for-test-group.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight create-folder \
> --cli-input-json file://create-folder-for-test-group.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_test-group",
"FolderId": "shared_restricted_folder_for_test-group",
"RequestId": "914e4965-c977-404a-87bb-6ea9c559bd06"
}
[cloudshell-user@ip-10-132-91-55 ~]$
制限付き共有フォルダが作成されたか、list-folders
コマンドで確認します。
aws quicksight list-folders --aws-account-id 123456789012
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight list-folders --aws-account-id 123456789012
{
"FolderSummaryList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_test-group",
"FolderId": "shared_restricted_folder_for_test-group",
"Name": "Shared restricted folder for test-group",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-10-18T03:44:50.613000+00:00",
"LastUpdatedTime": "2024-10-18T03:44:50.613000+00:00",
"SharingModel": "ACCOUNT"
}
],
"Status": 200,
"RequestId": "dd38e763-f8d5-46a9-b629-29a1425d51b8"
}
[cloudshell-user@ip-10-132-91-55 ~]$
「Shared restricted folder for test-group」という名前の制限付き共有フォルダが作成されたことが確認できました。
さて、制限付き共有フォルダを作成した IAM 権限のある QuickSight ユーザー「xxxkitani.emi」は「test-group」に所属していませんので、QuickSight コンソール画面上では制限付き共有フォルダが確認できません。
「test-group」に所属している「DataAnalysisUser1」で、制限付き共有フォルダが確認できました。制限付き共有フォルダには鍵マークが表示されます。
制限付き共有フォルダ「Shared restricted folder for test-group」の権限を「View permissions」で確認します。
「test-group」に寄稿者の権限が付与されていることが分かります。
制限付き共有フォルダのサブフォルダの作成
では、サブフォルダを作成します。
制限付き共有フォルダ「Shared restricted folder for test-group」内から「+新規」をクリックすると、「フォルダ」が選択できるようになっています。クリックします。
サブフォルダの名前を入力して「作成」をクリックします。今回は「sub-folder」という名前にしました。
サブフォルダ「sub-folder」ができました。
サブフォルダ「sub-folder」の権限を見てみます。
何も表示されません。
「継承されたアクセス許可を表示」にチェックを入れると、親の制限付き共有フォルダに付与されていた権限が表示されました。親の制限付き共有フォルダに付与された権限はサブフォルダにも継承されることが分かります。
サブフォルダ内でのアセット作成
サブフォルダ内でアセットを作成してみます。
今回は CSV ファイルをアップロードしてみました。
CSV データを確認したら、「保存して公開」をクリックしてデータセットとして保存します。
ここでフォルダの階層が選べますね。サブフォルダ「sub-folder」を選択して「追加」してみます。
サブフォルダ「sub-folder」にデータセットを作成できました。このデータセットは別の共有フォルダに移動したり、フォルダから削除したりできないようです。
さて、今度は作成したデータセットから分析を作成します。「保存して視覚化」を選択すると、またフォルダ選択画面が表示されました。このまま同じサブフォルダ「sub-folder」内に分析を作成していきます。
分析でデータを可視化します。ビジュアルは垂直積み上げ棒グラフにしました。「公開」をクリックしてダッシュボードを作成します。
ダッシュボードの名前を指定します。このまま進むとダッシュボードはサブフォルダ「sub-folder」内に作成されると表示されています。「CHANGE FOLDER」でフォルダを変更できそうなので、「CHANGE FOLDER」をクリックしてみます。
親の制限付き共有フォルダが選択できそうです。親の制限付き共有フォルダ「Shared restricted folder for test-group」を選択して「追加」を押してみます。
注意書きを読んでみると、
Dashboard must be saved within the restricted folder root of this analysis(このダッシュボードは、この分析の制限付きフォルダーのルートに保存する必要があります。)
とのことでした。なるほど、制限付き共有フォルダのルート配下ならどこでも配置できそうです。
今回はこのまま親の制限付き共有フォルダ「Shared restricted folder for test-group」を選択した状態で「ダッシュボードの公開」をクリックします。
ダッシュボードが作成されました。
親の制限付き共有フォルダ「Shared restricted folder for test-group」配下を見ると、サブフォルダ「sub-folder」と、ダッシュボードが配置されているのが分かります。サブフォルダ内の分析から、サブフォルダの外にダッシュボードができていますね。
再度、サブフォルダ「sub-folder」配下のデータセットから分析を作成し、今度は水平積み上げ棒グラフで可視化しました。ダッシュボードはこのままサブフォルダ「sub-folder」に作成してみます。
サブフォルダ「sub-folder」にもダッシュボードが作成できました。
サブフォルダ内のアセットも、別の共有フォルダに移動したり、フォルダから削除したりはできないようです。「最近のスナップショットを見る」と「削除」は選択できそうです。
グループにユーザーを追加
グループ「test-group」に QuickSight ユーザー「DataAnalysisUser2」を追加して、想定通りアセットが見えるか確認してみます。
まずはユーザーを作成して、
グループ「test-group」に追加します。
親の制限付き共有フォルダ内は見えますね。
サブフォルダ内も見えます。
ちなみに QuickSight の閲覧者権限のユーザーは、フォルダやアセットに三点リーダが表示されず、権限を確認することができません。
サブフォルダのみに権限を付与
次は、サブフォルダのみに権限を付与し、「親の制限付き共有フォルダのアセットは見えないが、サブフォルダ内のアセットは見える」状態が可能かやってみます。
検証用に QuickSight ユーザー「DataAnalysisUser3」を作成します。特にグループに追加はしません。
まだ何も見えません。
サブフォルダーの権限設定も画面からはできないようなので、CloudShell から AWS CLI で実施します。
まず list-users
コマンドで QuickSight ユーザー一覧を取得します。
aws quicksight list-users \
--aws-account-id 123456789012 \
--namespace default
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight list-users \
> --aws-account-id 123456789012 \
> --namespace default
{
"UserList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/xxx/xxxkitani.emi",
"UserName": "xxx/xxxkitani.emi",
"Email": "xxxxx",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/XXXXXXXXXX:xxxkitani.emi"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser1",
"UserName": "DataAnalysisUser1",
"Email": "xxxxx",
"Role": "AUTHOR",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/XXXXXXXXXX"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser2",
"UserName": "DataAnalysisUser2",
"Email": "xxxxx",
"Role": "READER",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-956747a400/06dd5d12-3976-47d1-8505-e7e5c7ef4f70"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"UserName": "DataAnalysisUser3",
"Email": "xxxxx",
"Role": "READER",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-956747a400/b342ac19-97ca-406b-a1ee-853baaf79b72"
}
],
"Status": 200,
"RequestId": "9457b6de-6bfd-4b54-8eae-cd6772079ad0"
}
[cloudshell-user@ip-10-132-91-55 ~]$
「DataAnalysisUser3」の ARN arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3
をメモしておきます。
次に、サブフォルダのフォルダ ID を確認します。list-folders
を実行します。
aws quicksight list-folders --aws-account-id 123456789012
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight list-folders --aws-account-id 123456789012
{
"FolderSummaryList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/9e740b22-b78f-4115-8307-032d3c48bc2f",
"FolderId": "9e740b22-b78f-4115-8307-032d3c48bc2f",
"Name": "sub-folder",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-10-18T03:53:41.553000+00:00",
"LastUpdatedTime": "2024-10-18T03:53:41.553000+00:00",
"SharingModel": "ACCOUNT"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_test-group",
"FolderId": "shared_restricted_folder_for_test-group",
"Name": "Shared restricted folder for test-group",
"FolderType": "RESTRICTED",
"CreatedTime": "2024-10-18T03:44:50.613000+00:00",
"LastUpdatedTime": "2024-10-18T03:44:50.613000+00:00",
"SharingModel": "ACCOUNT"
}
],
"Status": 200,
"RequestId": "a56723a3-a317-4ef8-a60c-c3852c9b7b4d"
}
[cloudshell-user@ip-10-132-91-55 ~]$
「sub-folder」の FolderId "9e740b22-b78f-4115-8307-032d3c48bc2f"
をメモしておきます。
次に AWS CLI スケルトンで制限付き共有フォルダのサブフォルダの権限を変更する JSON ファイル update-sub-folder-permissions.json
を作成します。
aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions.json
[cloudshell-user@ip-10-132-91-55 ~]$
スケルトンファイルの中身を確認します。
[cloudshell-user@ip-10-132-91-55 ~]$ ls
create-folder-for-test-group.json update-sub-folder-permissions.json
[cloudshell-user@ip-10-132-91-55 ~]$ cat update-sub-folder-permissions.json
{
"AwsAccountId": "",
"FolderId": "",
"GrantPermissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"RevokePermissions": [
{
"Principal": "",
"Actions": [
""
]
}
]
}
[cloudshell-user@ip-10-132-91-55 ~]$
update-sub-folder-permissions.json
を vim などで以下のように編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "9e740b22-b78f-4115-8307-032d3c48bc2f",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"Actions": [
"quicksight:DescribeFolder"
]
}
]
}
これは「DataAnalysisUser3」に表示者権限を付与するスケルトンファイルです。
"FolderId"
にはメモしておいたフォルダ ID "9e740b22-b78f-4115-8307-032d3c48bc2f"
を記入します。
"GrantPermissions"
の "Principal"
にはメモしておいた「DataAnalysisUser3」の ARN arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3
を記入します。
では、update-folder-permissions
コマンドでサブフォルダの権限を変更します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-sub-folder-permissions.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-sub-folder-permissions.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/9e740b22-b78f-4115-8307-032d3c48bc2f",
"FolderId": "9e740b22-b78f-4115-8307-032d3c48bc2f",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RequestId": "071bcb16-b02e-46f3-9726-fb522404e107"
}
[cloudshell-user@ip-10-132-91-55 ~]$
では、制限付き共有フォルダの権限を見てみます。
親の制限付き共有フォルダ「Shared restricted folder for test-group」の権限は先ほどと同じです。
サブフォルダ「sub-folder」の権限を見ると、継承されたアクセス許可の他に、「DataAnalysisUser3」の表示者権限が追加されていることが分かります。
DataAnalysisUser3 で共有フォルダを確認すると、親の制限付き共有フォルダ「Shared restricted folder for test-group」が見えていてクリックできるようになっています。
親の制限付き共有フォルダ「Shared restricted folder for test-group」内にはダッシュボードも配置したはずですが、DataAnalysisUser3 では見えません。
サブフォルダ「sub-folder」に入り込むと、ダッシュボードが見えました。
親の制限付き共有フォルダには権限を付与せず、サブフォルダのみに権限を付与することが可能だと分かりました。
権限の継承を削除できるか
次は、親の制限付き共有フォルダに付与した権限がサブフォルダに継承されないようにできるか(サブフォルダの継承権限を削除できるか)試してみます。
検証用に QuickSight ユーザー「DataAnalysisUser4」を作成します。特にグループに追加はしません。
まだ何も見えません。
まずは、親の制限付き共有フォルダ「Shared restricted folder for test-group」に「DataAnalysisUser4」の表示者権限を付与します。
list-users
コマンドで QuickSight ユーザー一覧を取得します。
aws quicksight list-users \
--aws-account-id 123456789012 \
--namespace default
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight list-users \
> --aws-account-id 123456789012 \
> --namespace default
{
"UserList": [
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/xxx/xxxkitani.emi",
"UserName": "xxx/xxxkitani.emi",
"Email": "xxxxx",
"Role": "ADMIN",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/XXXXXXXXXX:xxxkitani.emi"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser1",
"UserName": "DataAnalysisUser1",
"Email": "xxxxx",
"Role": "AUTHOR",
"IdentityType": "IAM",
"Active": true,
"PrincipalId": "federated/iam/XXXXXXXXXX"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4",
"UserName": "DataAnalysisUser4",
"Email": "xxxxx",
"Role": "READER",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-956747a400/003e084d-1f9c-44f3-972c-3685c2e76ea6"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser2",
"UserName": "DataAnalysisUser2",
"Email": "xxxxx",
"Role": "READER",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-956747a400/06dd5d12-3976-47d1-8505-e7e5c7ef4f70"
},
{
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"UserName": "DataAnalysisUser3",
"Email": "xxxxx",
"Role": "READER",
"IdentityType": "QUICKSIGHT",
"Active": true,
"PrincipalId": "user/d-956747a400/b342ac19-97ca-406b-a1ee-853baaf79b72"
}
],
"Status": 200,
"RequestId": "b862392a-0390-44b5-9b6e-94fd062bd5dc"
}
[cloudshell-user@ip-10-132-91-55 ~]$
「DataAnalysisUser4」の ARN arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4
をメモしておきます。
次に AWS CLI スケルトンで制限付き共有フォルダのサブフォルダの権限を変更する JSON ファイル update-sub-folder-permissions2.json
を作成します。
aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions2.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions2.json
[cloudshell-user@ip-10-132-91-55 ~]$
スケルトンファイルの中身を確認します。
[cloudshell-user@ip-10-132-91-55 ~]$ ls
create-folder-for-test-group.json update-sub-folder-permissions2.json update-sub-folder-permissions.json
[cloudshell-user@ip-10-132-91-55 ~]$ cat update-sub-folder-permissions2.json
{
"AwsAccountId": "",
"FolderId": "",
"GrantPermissions": [
{
"Principal": "",
"Actions": [
""
]
}
],
"RevokePermissions": [
{
"Principal": "",
"Actions": [
""
]
}
]
}
[cloudshell-user@ip-10-132-91-55 ~]$
update-sub-folder-permissions2.json
を vim などで以下のように編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "shared_restricted_folder_for_test-group",
"GrantPermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4",
"Actions": [
"quicksight:DescribeFolder"
]
}
]
}
これは「DataAnalysisUser4」に表示者権限を付与するスケルトンファイルです。
"FolderId"
には親の制限付き共有フォルダのフォルダ ID "shared_restricted_folder_for_test-group"
を記入します。
"GrantPermissions"
の "Principal"
にはメモしておいた「DataAnalysisUser4」の ARN arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4
を記入します。
では、update-folder-permissions
コマンドでサブフォルダの権限を変更します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-sub-folder-permissions2.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-sub-folder-permissions2.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/shared_restricted_folder_for_test-group",
"FolderId": "shared_restricted_folder_for_test-group",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4",
"Actions": [
"quicksight:DescribeFolder"
]
},
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:group/default/test-group",
"Actions": [
"quicksight:CreateFolder",
"quicksight:DescribeFolder",
"quicksight:CreateFolderMembership",
"quicksight:DeleteFolderMembership",
"quicksight:DescribeFolderPermissions"
]
}
],
"RequestId": "fae515ba-2cbc-401d-998f-d7ce68da34c2"
}
[cloudshell-user@ip-10-132-91-55 ~]$
親の制限付き共有フォルダ「Shared restricted folder for test-group」の権限を確認します。
「DataAnalysisUser4」が表示者権限で追加されているのが分かります。
サブフォルダの権限も確認します。
親フォルダからの継承で、「DataAnalysisUser4」が表示者権限になっているのが分かります。
「DataAnalysisUser4」からの見え方も確認します。親の制限付き共有フォルダ「Shared restricted folder for test-group」は見えていますね。
親の制限付き共有フォルダ「Shared restricted folder for test-group」配下のダッシュボードも見えています。
サブフォルダ配下のダッシュボードも見えています。
親の制限付き共有フォルダに付与した表示者権限がサブフォルダに継承されているのが分かりました。続いて、サブフォルダ側で継承された権限を削除しようとします。
AWS CLI スケルトンで制限付き共有フォルダのサブフォルダの権限を変更する JSON ファイル update-sub-folder-permissions3.json
を作成します。
aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions3.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions --generate-cli-skeleton > update-sub-folder-permissions3.json
[cloudshell-user@ip-10-132-91-55 ~]$
update-sub-folder-permissions3.json
を vim などで以下のように編集します。
{
"AwsAccountId": "123456789012",
"FolderId": "9e740b22-b78f-4115-8307-032d3c48bc2f",
"RevokePermissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser4",
"Actions": [
"quicksight:DescribeFolder"
]
}
]
}
これはサブフォルダから「DataAnalysisUser4」の表示者権限を削除するスケルトンファイルです。
"FolderId"
にはサブフォルダのフォルダ ID "9e740b22-b78f-4115-8307-032d3c48bc2f"
を記入します。
"RevokePermissions"
の "Principal"
には「DataAnalysisUser4」の ARN を記入します。
では、update-folder-permissions
コマンドでサブフォルダの権限を変更します。
aws quicksight update-folder-permissions \
--cli-input-json file://update-sub-folder-permissions3.json
実行結果
[cloudshell-user@ip-10-132-91-55 ~]$ aws quicksight update-folder-permissions \
> --cli-input-json file://update-sub-folder-permissions3.json
{
"Status": 200,
"Arn": "arn:aws:quicksight:ap-northeast-1:123456789012:folder/9e740b22-b78f-4115-8307-032d3c48bc2f",
"FolderId": "9e740b22-b78f-4115-8307-032d3c48bc2f",
"Permissions": [
{
"Principal": "arn:aws:quicksight:ap-northeast-1:123456789012:user/default/DataAnalysisUser3",
"Actions": [
"quicksight:DescribeFolder"
]
}
],
"RequestId": "6375d377-fdfb-4511-a33d-0a1c20111add"
}
[cloudshell-user@ip-10-132-91-55 ~]$
エラーにはならずに完了しました。
「DataAnalysisUser4」からの見え方を確認すると、サブフォルダの中のダッシュボードまで見えてしまいます。
サブフォルダの権限を確認しましたが、継承されたアクセス許可には「DataAnalysisUser4」が表示されたままで、変わっていません。
継承されたアクセス許可はサブフォルダ側で削除できないことが分かりました。
サブフォルダのサブフォルダを作成
ついでにサブフォルダ配下に更にサブフォルダができるかもやってみました。いけます。
名前は「sub-sub-folder」にしました。
できました。
今回はこれ以上やりませんが、更に階層化できそうです。
終わりに
制限付き共有フォルダでサブフォルダがサポートされたので、いろいろと試してみました。
制限付き共有フォルダ内でアセットがバラバラにならないようまとめるのに役立ちそうです。サブフォルダのみに権限が付与できるのも面白いですね。
通常の制限付き共有フォルダと同様、サブフォルダからのアセットの移動やサブフォルダへのアセットの移動はできないので、フォルダ構成の設計は注意する必要があります。
サブフォルダに継承される権限は変更できないので注意してください。