AWS コマンドを利用して QuickSight のテンプレート、ダッシュボード、分析を操作する手順を解説いたします。
AWS CLI Command Reference
https://docs.aws.amazon.com/cli/latest/reference/quicksight/
Amazon QuickSight Developer Guide
https://docs.aws.amazon.com/ja_jp/quicksight/latest/developerguide/welcome.html
AWS コマンドの実行環境については以下を参照してください。
参考: IAM ユーザーを利用した AWS CLI の実行
ポリシーの追加
コマンドの実行にはポリシーの追加が必要です。
コマンドを実行する IAM ユーザーに実行するコマンドのポリシーを追加します。
以下は記述例です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"quicksight:PassDataSet",
"quicksight:ListTemplates",
"quicksight:DescribeTemplate",
"quicksight:DeleteTemplate",
"quicksight:UpdateTemplate",
"quicksight:CreateTemplate",
"quicksight:ListAnalyses",
"quicksight:DescribeAnalysis",
"quicksight:DeleteAnalysis",
"quicksight:UpdateAnalysis",
"quicksight:CreateAnalysis",
"quicksight:UpdateAnalysisPermissions",
"quicksight:RestoreAnalysis",
"quicksight:DescribeAnalysisPermissions",
"quicksight:ListDashboards",
"quicksight:DescribeDashboard",
"quicksight:DeleteDashboard",
"quicksight:UpdateDashboard",
"quicksight:CreateDashboard",
"quicksight:UpdateDashboardPermissions",
"quicksight:DescribeDashboardPermissions",
"quicksight:UpdateDashboardPublishedVersion"
],
"Resource": [
"arn:aws:quicksight:ap-northeast-1:123456789012:dataset/*",
"arn:aws:quicksight:ap-northeast-1:123456789012:template/*",
"arn:aws:quicksight:ap-northeast-1:123456789012:analysis/*",
"arn:aws:quicksight:ap-northeast-1:123456789012:dashboard/*",
"arn:aws:quicksight:ap-northeast-1:123456789012:user/default/*"
]
},
]
}
細かなポリシー設定が面倒であれば、セキュリティリスクを十分考慮した上で*
(すべて)を許可しても良いでしょう。
"Action": [
"quicksight:*",
]
テンプレートの操作
テンプレート操作のコマンド例は以下の通りです。
# テンプレートの一覧
>aws quicksight list-templates --aws-account-id {アカウントID}
# テンプレートの参照
>aws quicksight describe-template --aws-account-id {アカウントID} --template-id {テンプレートID}
# テンプレートの削除
>aws quicksight delete-template --aws-account-id {アカウントID} --template-id {テンプレートID}
# テンプレートの更新
>aws quicksight update-template --aws-account-id {アカウントID} --template-id {テンプレートID} --source-entity file://{ファイル名}
>aws quicksight update-template --aws-account-id {アカウントID} --template-id {テンプレートID} --source-entity '{JSON形式の定義}'
# テンプレートの作成
>aws quicksight create-template --aws-account-id {アカウントID} --template-id {テンプレートID} --source-entity file://{ファイル名}
>aws quicksight create-template --aws-account-id {アカウントID} --template-id {テンプレートID} --source-entity '{JSON形式の定義}'
テンプレートの作成・更新でSourceEntity
を指定する場合、2通りの方法があります。
以下は--source-entity
にファイル名を指定する場合の JSON ファイルの記述例です。
{
"SourceAnalysis": {
"Arn": "arn:aws:quicksight:{リージョン}:{アカウントID}:analysis/{元となる分析のID}",
"DataSetReferences": [
{
"DataSetPlaceholder": "{データセット名}",
"DataSetArn": "arn:aws:quicksight:{リージョン}:{アカウントID}:dataset/{データセットID}"
}
]
}
}
以下は--source-entity
に直接SourceEntity
の定義を指定する場合の例です。
ファイル指定の場合の内容をそのまま指定する感じです。
>aws quicksight create-template --aws-account-id 123456789012 --template-id templateId \
--source-entity \
'{
"SourceAnalysis": {
"Arn": "arn:aws:quicksight:{リージョン}:{アカウントID}:analysis/{元となる分析のID}",
"DataSetReferences": [
{
"DataSetPlaceholder": "{データセット名}",
"DataSetArn": "arn:aws:quicksight:{リージョン}:{アカウントID}:dataset/{データセットID}"
}
]
}
}'
分析の操作
分析操作のコマンド例は以下の通りです。
# 分析の一覧・参照・削除
>aws quicksight list-analyses --aws-account-id {アカウントID}
>aws quicksight describe-analysis --aws-account-id {アカウントID} --analysis-id {分析ID}
>aws quicksight delete-analysis --aws-account-id {アカウントID} --analysis-id {分析ID}
# 分析の更新
>aws quicksight update-analysis --aws-account-id {アカウントID} --analysis-id {分析ID} --name {分析名} --source-entity file://{ファイル名}
>aws quicksight update-analysis --aws-account-id {アカウントID} --analysis-id {分析ID} --name {分析名} --source-entity '{JSON形式の定義}'
# 分析の作成
>aws quicksight create-analysis --aws-account-id {アカウントID} --analysis-id {分析ID} --name {分析名} --source-entity file://{ファイル名} --permissions file://{ファイル名}
>aws quicksight create-analysis --aws-account-id {アカウントID} --analysis-id {分析ID} --name {分析名} --source-entity '{JSON形式の定義}' --permissions '{JSON形式の定義}'
# 分析のアクセス権の更新(コンソールからの操作)
>aws quicksight update-analysis-permissions --aws-account-id {アカウントID} --analysis-id {分析ID} --grant-permissions file://file://{ファイル名}
>aws quicksight update-analysis-permissions --aws-account-id {アカウントID} --analysis-id {分析ID} --grant-permissions '{JSON形式の定義}'
以下は分析の作成・更新で--source-entity
にファイル名を指定する場合の JSON ファイルの記述例です。
{
"SourceTemplate": {
"Arn": "arn:aws:quicksight:{リージョン}:{アカウントID}:template/{元となるテンプレートのID}",
"DataSetReferences": [
{
"DataSetPlaceholder": "{データセット名}",
"DataSetArn": "arn:aws:quicksight:{リージョン}:{アカウントID}:dataset/{データセットID}"
}
]
}
}
以下は分析の作成の--permissions
やアクセス権更新の--grant-permissions
にファイル名を指定する場合の JSON ファイルの記述例です。
[
# コンソールからの操作者に本ダッシュボードが参照・操作できるよう権限を設定
# ここではadminグループに属する者に権限を与えている
{
"Principal": "arn:aws:quicksight:{リージョン}:{アカウントID}:group/default/admin",
"Actions": [
"quicksight:QueryAnalysis",
"quicksight:DescribeAnalysis",
"quicksight:DeleteAnalysis",
"quicksight:UpdateAnalysis",
"quicksight:RestoreAnalysis",
"quicksight:DescribeAnalysisPermissions",
"quicksight:UpdateAnalysisPermissions"
]
}
]
ダッシュボードの操作
ダッシュボード操作のコマンド例は以下の通りです。
# ダッシュボードの一覧・参照・削除
>aws quicksight list-dashboards --aws-account-id {アカウントID}
>aws quicksight describe-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID}
>aws quicksight delete-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID}
# ダッシュボードの更新
>aws quicksight update-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --name {ダッシュボード名} --source-entity file://{ファイル名}
>aws quicksight update-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --name {ダッシュボード名} --source-entity '{JSON形式の定義}'
# ダッシュボードの作成
>aws quicksight create-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --name {ダッシュボード名} --source-entity file://{ファイル名} --permissions file://{ファイル名}
>aws quicksight create-dashboard --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --name {ダッシュボード名} --source-entity '{JSON形式の定義}' --permissions '{JSON形式の定義}'
# ダッシュボードのアクセス権の更新(ダッシュボードの共有+コンソールからの操作)
>aws quicksight update-dashboard-permissions --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --grant-permissions file://file://{ファイル名}
>aws quicksight update-dashboard-permissions --aws-account-id {アカウントID} --dashboard-id {ダッシュボードID} --grant-permissions '{JSON形式の定義}'
以下はダッシュボードの作成・更新で--source-entity
にファイル名を指定する場合の JSON ファイルの記述例です。
{
"SourceTemplate": {
"Arn": "arn:aws:quicksight:{リージョン}:{アカウントID}:template/{元となるテンプレートのID}",
"DataSetReferences": [
{
"DataSetPlaceholder": "{データセット名}",
"DataSetArn": "arn:aws:quicksight:{リージョン}:{アカウントID}:dataset/{データセットID}"
}
]
}
}
以下はダッシュボードの作成の--permissions
やアクセス権更新の--grant-permissions
にファイル名を指定する場合の JSON ファイルの記述例です。
[
# コンソールからの操作者に本ダッシュボードが参照・操作できるよう権限を設定
# ここではadminグループに属する者に権限を与えている
{
"Principal": "arn:aws:quicksight:{リージョン}:{アカウントID}:group/default/admin",
"Actions": [
"quicksight:QueryDashboard",
"quicksight:ListDashboardVersions",
"quicksight:DescribeDashboard",
"quicksight:DeleteDashboard",
"quicksight:UpdateDashboard",
"quicksight:DescribeDashboardPermissions",
"quicksight:UpdateDashboardPermissions",
"quicksight:UpdateDashboardPublishedVersion"
]
},
# QuickSight ユーザーに本ダッシュボードが参照できるよう権限を設定(ダッシュボードの共有)
{
"Principal": "arn:aws:quicksight:a{リージョン}:{アカウントID}:user/default/{ユーザー名}",
"Actions": [
"quicksight:QueryDashboard",
"quicksight:DescribeDashboard",
"quicksight:ListDashboardVersions"
]
}
]
コメント