catch-img

QuickSightのアセットをAaBでクロスアカウント移行する手順と注意点

QuickSight のアセット(データセットや分析、ダッシュボード)を、別 AWS アカウントへ移行できるかどうかを試しました(開発環境から本番環境への移行を想定)。QuickSight はアカウント間の移行が意外と難しく、「開発 → 本番」「外注 → 顧客アカウント」など、実務でよくあるケースでも簡単には移行できず困ることがあります。

QuickSight Assets as Bundle(AaB)を使うと、これらのアセットをまとめてエクスポート/インポートできますが、実際にやってみると注意点やハマりどころも多いです。

この記事では、CLI を使ってアカウント間移行を実際に試し、どこまで移行できるのか、どこでつまずくのかを整理しました。過去に移行で苦労した方にも役立つ内容になっています。

目次[非表示]

  1. 1.まず最初に:ファイルアップロード型データセットは移行できない
  2. 2.今回用意したサンプル構成
  3. 3.S3 に配置するサンプルデータ
  4. 4.Athenaで参照するGlueテーブル定義の作成
  5. 5.移行元アカウントで、アセット作成
  6. 6.移行元アカウントからアセットバンドルエクスポート
    1. 6.1.移行対象のダッシュボードのARNを取得
    2. 6.2.エクスポート実行
    3. 6.3.エクスポート状況確認
    4. 6.4.QS ファイルのダウンロード
  7. 7.移行先アカウントにアセットバンドルインポート
    1. 7.1.インポート前準備
    2. 7.2.設定のオーバーライドについて(今回の移行では不要でした)
    3. 7.3.インポート実施
    4. 7.4.インポート確認
    5. 7.5.ダッシュボード
    6. 7.6.分析
    7. 7.7.データセット
    8. 7.8.データセット
    9. 7.9.データソース
  8. 8.アセットの所有者変更
    1. 8.1.ダッシュボード
  9. 9.分析
  10. 10.データセット
  11. 11.データソース
  12. 12.つまずきポイント
  13. 13.まとめ

【おすすめ関連記事】
AWSでIoTデータを可視化するなら?主要3サービスを徹底比較
QuickSight連携術|URLパラメータで別ダッシュボードへ条件を引き継ぐ
CONEXIOBlackBearでAWS IoT Greengrassを使ってみる

まず最初に:ファイルアップロード型データセットは移行できない

まず最初に把握しておかなければならないことですが、QuickSight には、ファイル(CSV / Excel など)を直接アップロードして作成する「ファイルアップロード型のデータセット」がありますが、これを QuickSight Assets as Bundle(AaB) では移行することができません。

もし既存ダッシュボードで、「ファイルアップロード型のデータセット」を使っている場合は、データを外部データソースに置き換える必要があります。

たとえば、以下のような対応が必要です。

  • データを外部ストレージ(S3 など)に配置する
  • 外部データソース(Athena / RDS / Redshift / S3 マニュフェストファイル など)として再定義する
  • QuickSight でデータセットを作り直す
  • 分析画面で データセットを置き換える

今回の検証では、S3 + Athena ベースのデータセット のみであるため、この制約には引っかかりませんでした。

【補足】これに関しては、実際にエクスポートを実行したところ、エラーになることを確認しました。以下のように特定のダッシュボードを対象に Asset Bundle Export を実行し、describe-asset-bundle-export-job で結果を確認したところ、以下のように FAILED となりました。

{

    "Status": 200,

    "JobStatus": "FAILED",

    "Errors": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:100000000001:dataset/gggg7777-gggg-7777-gggg-777777777777",

            "Type": " com.amazonaws.services.quicksight.model.InvalidParameterValueException",

            "Message":"File source type is not supported in Public API"

        }

    ],

    ・

}

今回用意したサンプル構成

移行元AWSアカウントでは、以下の構成を作成しました。これをすべて、移行先AWSアカウントへ移行します。

  • データソース × 2(test_device_master、test_sensor_log)
  • データセット × 2(test_device_master、test_sensor_log)
  • 分析(Analysis) × 1(test_aab_analysis)
  • ビジュアル ×2(テーブル・折れ線グラフ)
  • ダッシュボード × 1(test_aab_dashboard)

デバイスのマスタ情報 と、センサーの時系列ログ の 2 種類の CSV を S3 に配置し、Athena テーブルを作成して QuickSight に取り込んでいます。

S3 に配置するサンプルデータ

デバイスのマスタ情報 と、センサーの時系列ログ の 2 種類の CSV を S3 に配置しています。以下、CSVファイル例です。

device_master.csv

device_id,device_type,location,installed_at

dev-001,temperature,Room-A,2026-01-01

dev-002,humidity,Room-A,2026-01-02

dev-003,camera,Entrance,2026-01-05

dev-004,temperature,Room-B,2026-01-10

dev-005,camera,Hall,2026-01-12

sensor_log.csv

timestamp,device_id,value,status

2026-04-01T10:00:00,dev-001,22.5,normal

2026-04-01T10:00:00,dev-002,45.0,normal

2026-04-01T10:00:00,dev-003,1,active

2026-04-01T10:10:00,dev-001,22.8,normal

2026-04-01T10:10:00,dev-002,44.7,normal

2026-04-01T10:10:00,dev-003,1,active

2026-04-01T10:20:00,dev-001,23.1,normal

2026-04-01T10:20:00,dev-002,44.3,normal

2026-04-01T10:20:00,dev-003,1,active

2026-04-01T10:30:00,dev-001,23.4,normal

2026-04-01T10:30:00,dev-002,44.9,normal

2026-04-01T10:30:00,dev-003,1,active

2026-04-01T10:40:00,dev-001,23.0,normal

2026-04-01T10:40:00,dev-002,45.2,normal

2026-04-01T10:40:00,dev-003,1,active

2026-04-01T10:50:00,dev-001,22.6,normal

2026-04-01T10:50:00,dev-002,45.5,normal

2026-04-01T10:50:00,dev-003,1,active

Athenaで参照するGlueテーブル定義の作成

前述の S3 上の CSV Athena から参照できるよう、Glue Data Catalog にデータベース、テーブル定義を作成します。以下、SQLクエリ例です。

device_master

CREATE EXTERNAL TABLE IF NOT EXISTS test_db.device_master (

  device_id     string,

  device_type   string,

  location      string,

  installed_at  string

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'

WITH SERDEPROPERTIES (

  "separatorChar" = ",",

  "quoteChar"     = "\"",

  "escapeChar"    = "\\"

)

LOCATION 's3://conexio-xxxxxx/device_master/'

TBLPROPERTIES ("skip.header.line.count"="1");

sensor_log

CREATE EXTERNAL TABLE IF NOT EXISTS test_db.sensor_log (

  timestamp string,

  device_id string,

  value     double,

  status    string

)

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'

WITH SERDEPROPERTIES (

  "separatorChar" = ",",

  "quoteChar"     = "\"",

  "escapeChar"    = "\\"

)

LOCATION 's3://conexio-xxxxxx/sensor_log/'

TBLPROPERTIES ("skip.header.line.count"="1");

移行元アカウントで、アセット作成

移行元アカウントで、以下のアセットをそれぞれ作成しています。

データソース

データセット.png

データセット

データソース.png

分析

分析.png

分析2.png

ダッシュボード

ダッシュボード.png

ダッシュボード2.png

移行元アカウントからアセットバンドルエクスポート

QuickSight Assets as BundleAaBは、ダッシュボードを指定すると 依存する データソース、データセット、分析を全部エクスポートしてくれます。今回の場合、データソース2つ、データセット 2つ、分析 1つ、ダッシュボード 1つ 全てのARNを取得してそれぞれでエクスポートする必要はありません。 ダッシュボードの指定だけで、そのダッシュボードに関連するアセットが全部エクスポートされます。

移行対象のダッシュボードのARNを取得

エクスポートで必要となる移行対象のダッシュボードのARNを取得します。

以下は、指定したダッシュボード名のダッシュボード情報のみを出力するコマンド例です。出力された情報の Arn をエクスポートで使用します。

コマンド:

$ACCOUNT_ID = "<移行元AWSアカウントID>"

$PROFILE    = "<移行元プロファイル>"

$DASHBOARD_NAME = "<移行対象ダッシュボード名>"

aws quicksight list-dashboards `

  --aws-account-id $ACCOUNT_ID `

  --profile $PROFILE `

| ConvertFrom-Json `

| Select-Object -ExpandProperty DashboardSummaryList `

| Where-Object { $_.Name -eq $DASHBOARD_NAME }

実行例:

> $ACCOUNT_ID = "100000000001"

> $PROFILE    = "conexio-1000"

> $DASHBOARD_NAME = "test_aab_dashboard"

> aws quicksight list-dashboards `

>>   --aws-account-id $ACCOUNT_ID `

>>   --profile $PROFILE `

>> | ConvertFrom-Json `

>> | Select-Object -ExpandProperty DashboardSummaryList `

>> | Where-Object { $_.Name -eq $DASHBOARD_NAME }

Arn                    : arn:aws:quicksight:ap-northeast-1:100000000001:dashboard/aaaa1111-aaaa-1111-aaaa-111111111111

DashboardId            : aaaa1111-aaaa-1111-aaaa-111111111111

Name                   : test_aab_dashboard

CreatedTime            : 2026/04/22 10:38:47

LastUpdatedTime        : 2026/04/22 10:38:47

PublishedVersionNumber : 1

LastPublishedTime      : 2026/04/22 10:38:47

エクスポート実行

エクスポートを実行します。コマンド実行例は以下になります。

エクスポート処理は非同期処理となっており、次の「エクスポート状況確認」で、ここで“asset-bundle-export-job-id”に指定したJOB ID(例では、export-test-aab)を指定することにより、処理状況を確認します。

コマンド:

$ACCOUNT_ID = "<移行元AWSアカウントID>"

$PROFILE    = "<移行元プロファイル>"

$DASHBOARDID= "<移行対象ダッシュボードID>"

$DASHBOARD_ARN = "arn:aws:quicksight:ap-northeast-1:${ACCOUNT_ID}:dashboard/${DASHBOARDID}"

aws quicksight start-asset-bundle-export-job `

  --aws-account-id $ACCOUNT_ID `

  --asset-bundle-export-job-id export-test-aab `

  --resource-arns "$DASHBOARD_ARN" `

  --include-all-dependencies `

  --export-format QUICKSIGHT_JSON `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "100000000001"

> $PROFILE    = "conexio-1000"

> $DASHBOARDID= "aaaa1111-aaaa-1111-aaaa-111111111111"

> $DASHBOARD_ARN = "arn:aws:quicksight:ap-northeast-1:${ACCOUNT_ID}:dashboard/${DASHBOARDID}"

> aws quicksight start-asset-bundle-export-job `

>>   --aws-account-id $ACCOUNT_ID `

>>   --asset-bundle-export-job-id export-test-aab `

>>   --resource-arns "$DASHBOARD_ARN" `

>>   --include-all-dependencies `

>>   --export-format QUICKSIGHT_JSON `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 202,

    "Arn": "arn:aws:quicksight:ap-northeast-1:100000000001:asset-bundle-export-job/export-test-aab",

    "AssetBundleExportJobId": "export-test-aab",

    "RequestId": "5f8dc9a8-5efa-47c4-b8e6-e780192c951b"

}

エクスポート状況確認

エクスポート状況確認を実行します。コマンド実行例は以下になります。

エクスポートの実行が完了すると("JobStatus": "SUCCESSFUL")、QS ファイルのダウンロードURLを得ることができます。“DownloadUrl”に出力されるURLクリックすることで、QS ファイルをダウンロードすることができます。

コマンド:

$ACCOUNT_ID = "<移行元AWSアカウントID>"

$PROFILE    = "<移行元プロファイル>"

aws quicksight describe-asset-bundle-export-job `

  --aws-account-id $ACCOUNT_ID `

  --asset-bundle-export-job-id export-test-aab `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "100000000001"

> $PROFILE    = "conexio-1000"

> aws quicksight describe-asset-bundle-export-job `

>>   --aws-account-id $ACCOUNT_ID `

>>   --asset-bundle-export-job-id export-test-aab `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "JobStatus": "SUCCESSFUL",

    "DownloadUrl": "https://quicksight-asset-bundle-export-job-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/100000000001/export-test-aab/5f8dc9a8-5efa-47c4-b8e6-e780192c951b/assetbundle-export-test-aab.qs?X-Amz-Security-Token=IQoJb3Jp...(truncated) ",

    "Arn": "arn:aws:quicksight:ap-northeast-1:100000000001:asset-bundle-export-job/export-test-aab",

    "CreatedTime": "2026-04-22T11:00:17+09:00",

    "AssetBundleExportJobId": "export-test-aab",

    "AwsAccountId": "100000000001",

    "ResourceArns": [

        "arn:aws:quicksight:ap-northeast-1:100000000001:dashboard/aaaa1111-aaaa-1111-aaaa-111111111111"

    ],

    "IncludeAllDependencies": true,

    "ExportFormat": "QUICKSIGHT_JSON",

    "RequestId": "5605f1b6-8033-4d97-a827-860ae8790166",

    "IncludePermissions": false,

    "IncludeTags": false,

    "IncludeFolderMemberships": false,

    "IncludeFolderMembers": "NONE"

}

QS ファイルのダウンロード

前の「エクスポート状況確認」で取得したQS ファイルのダウンロードURL にアクセスして、ファイルをダウンロードします。

ファイルのダウンロード.png

QS ファイルは、ファイル名「assetbundle-{エクスポートジョブ名}」でダウンロードされます。このファイルは、 ZIP 化されています。解凍すると、指定したダッシュボードと、依存関係にあるアセットの定義 JSON ファイルが各フォルダに格納されています。JSON ファイル名は、各々のアセットIDになっています。解凍したイメージは以下の通りです。

├─analysis

│      bbbb2222-bbbb-2222-bbbb-222222222222.json

├─dashboard

│      aaaa1111-aaaa-1111-aaaa-111111111111.json

├─dataset

│      cccc3333-cccc-3333-cccc-333333333333.json

│      dddd4444-dddd-4444-dddd-444444444444.json

└─datasource

        eeee5555-eeee-5555-eeee-555555555555.json

        ffff6666-ffff-6666-ffff-666666666666.json

移行先アカウントにアセットバンドルインポート

インポート前準備

QuickSight のアセットバンドルはデータの実体までは移行してくれないため、ターゲット環境側でデータの参照元を事前に用意しておく必要があります。

今回は、前述の「S3 に置いたサンプルデータ」のS3への配置 及び、「Athena で参照する Glue テーブル定義の作成」を移行先の環境用の設定で行っています。

以下は代表的な準備内容の一例です。

  • データセットの元となるファイルを、ターゲットアカウントの S3 バケットへ配置する。

  • QuickSight が参照する Glue テーブル定義(データベース/テーブル)をターゲット側で作成する。

  • QuickSight のデータセットが参照するデータベース(RDS / Aurora / Redshift / DynamoDB など)をターゲット環境側で作成する。

設定のオーバーライドについて(今回の移行では不要でした)

よく見かけるアセットバンドルインポート実施例では、「override-parameters を使って DataSource の名前や ARN を書き換える」という手順が紹介されることが多いのですが、今回のケースでは、移行先で名前や ARN を変更する必要がなかったので不要でした。(オーバーライド設定をしようとしたことで インポートが失敗し、ハマりました。)

インポート実施

インポートを実行します。コマンド実行例は以下になります。QS ファイルは S3 に置いて実行することもできますが、今回はローカルのファイルを指定しています。エクスポート処理と同様に非同期処理となっており、次の「インポート状況確認」で、ここで“asset-bundle-import-job-id”に指定したJOB ID(例では、import-test-aab)を指定することにより、処理状況を確認します。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight start-asset-bundle-import-job `

  --aws-account-id $ACCOUNT_ID `

  --asset-bundle-import-job-id import-test-aab `

  --asset-bundle-import-source-bytes fileb://C:\work\quicksight-export\assetbundle-export-test-aab.qs `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight start-asset-bundle-import-job `

>>   --aws-account-id $ACCOUNT_ID `

>>   --asset-bundle-import-job-id import-test-aab `

>>   --asset-bundle-import-source-bytes fileb://C:\work\quicksight-export\assetbundle-export-test-aab.qs `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 202,

    "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:asset-bundle-import-job/import-test-aab",

    "AssetBundleImportJobId": "import-test-aab",
    "RequestId": "95b44b27-4709-45a5-a746-6c7598335012"

}

インポート確認

エクスポート状況確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight describe-asset-bundle-import-job `

  --aws-account-id $ACCOUNT_ID `

  --asset-bundle-import-job-id import-test-aab `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight describe-asset-bundle-import-job `

>>   --aws-account-id $ACCOUNT_ID `

>>   --asset-bundle-import-job-id import-test-aab `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "JobStatus": "SUCCESSFUL",

    "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:asset-bundle-import-job/import-test-aab",

    "CreatedTime": "2026-04-23T14:05:15+09:00",

    "AssetBundleImportJobId": "import-test-aab",

    "AwsAccountId": "200000000002",

    "AssetBundleImportSource": {

        "Body": "https://quicksight-asset-bundle-import-job-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/200000000002/import-test-aab/95b44b27-4709-45a5-a746-6c7598335012/body.zip?X-Amz-Security-Token=IQoJb3Jp...(truncated)"

    },

    "FailureAction": "ROLLBACK",

    "RequestId": "0050ff9e-2a66-4cf7-8361-be58ba975498"

}

インポートの実行が完了したら("JobStatus": "SUCCESSFUL")、各アセットがインポートされたか確認します。

ダッシュボード

ダッシュボードの存在確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight list-dashboards `

  --aws-account-id $ACCOUNT_ID `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight list-dashboards `

>>   --aws-account-id $ACCOUNT_ID `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "DashboardSummaryList": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:dashboard/aaaa1111-aaaa-1111-aaaa-111111111111",

            "DashboardId": "aaaa1111-aaaa-1111-aaaa-111111111111",

            "Name": "test_aab_dashboard",

            "CreatedTime": "2026-04-23T14:05:39.944000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:40.141000+09:00",

            "PublishedVersionNumber": 1,

            "LastPublishedTime": "2026-04-23T14:05:41.883000+09:00"

        }

    ],

    "Status": 200,

    "RequestId": "c25bcd3b-2fed-4eee-b7cc-7bc54fdb80ac"

}

分析

分析の存在確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight list-analyses `

  --aws-account-id $ACCOUNT_ID `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight list-analyses `

>>   --aws-account-id $ACCOUNT_ID `

>>   --region ap-northeast-1 `

>>   --profile  $PROFILE

{

    "AnalysisSummaryList": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:analysis/bbbb2222-bbbb-2222-bbbb-222222222222",

            "AnalysisId": "bbbb2222-bbbb-2222-bbbb-222222222222",

            "Name": "test_aab_analysis",

            "Status": "CREATION_SUCCESSFUL",

            "CreatedTime": "2026-04-23T14:05:35.519000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:35.728000+09:00"

        }

    ],

    "Status": 200,

    "RequestId": "7ad2938b-f5f9-4cae-8db8-99073db4f7c2"

}

データセット

データセットの存在確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight list-data-sets `

  --aws-account-id $ACCOUNT_ID `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight list-data-sets `

>>   --aws-account-id $ACCOUNT_ID `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "DataSetSummaries": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/cccc3333-cccc-3333-cccc-333333333333",

            "DataSetId": "cccc3333-cccc-3333-cccc-333333333333",

            "Name": "test_device_master",

            "CreatedTime": "2026-04-23T14:05:32.015000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:32.015000+09:00",

            "ImportMode": "DIRECT_QUERY",

            "RowLevelPermissionTagConfigurationApplied": false,

            "ColumnLevelPermissionRulesApplied": false

        },

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/dddd4444-dddd-4444-dddd-444444444444",

            "DataSetId": "dddd4444-dddd-4444-dddd-444444444444",

            "Name": "test_sensor_log",

            "CreatedTime": "2026-04-23T14:05:30.033000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:30.033000+09:00",

            "ImportMode": "DIRECT_QUERY",

            "RowLevelPermissionTagConfigurationApplied": false,

            "ColumnLevelPermissionRulesApplied": false

        }

    ],

    "Status": 200,

    "RequestId": "cc7a4a42-1349-4c05-ba68-10b5be04548e"

}

データセット

データセットの存在確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight list-data-sets `

  --aws-account-id $ACCOUNT_ID `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight list-data-sets `

>>   --aws-account-id $ACCOUNT_ID `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "DataSetSummaries": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/cccc3333-cccc-3333-cccc-333333333333",

            "DataSetId": "cccc3333-cccc-3333-cccc-333333333333",

            "Name": "test_device_master",

            "CreatedTime": "2026-04-23T14:05:32.015000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:32.015000+09:00",

            "ImportMode": "DIRECT_QUERY",

            "RowLevelPermissionTagConfigurationApplied": false,

            "ColumnLevelPermissionRulesApplied": false

        },

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/dddd4444-dddd-4444-dddd-444444444444",

            "DataSetId": "dddd4444-dddd-4444-dddd-444444444444",

            "Name": "test_sensor_log",

            "CreatedTime": "2026-04-23T14:05:30.033000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:30.033000+09:00",

            "ImportMode": "DIRECT_QUERY",

            "RowLevelPermissionTagConfigurationApplied": false,

            "ColumnLevelPermissionRulesApplied": false

        }

    ],

    "Status": 200,

    "RequestId": "cc7a4a42-1349-4c05-ba68-10b5be04548e"

}

データソース

データソースの存在確認を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight list-data-sources `

  --aws-account-id $ACCOUNT_ID `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight list-data-sources `

>>   --aws-account-id $ACCOUNT_ID `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "DataSources": [

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:datasource/eeee5555-eeee-5555-eeee-555555555555",

            "DataSourceId": "eeee5555-eeee-5555-eeee-555555555555",

            "Name": "test_sensor_log",

            "Type": "ATHENA",

            "Status": "CREATION_SUCCESSFUL",

            "CreatedTime": "2026-04-23T14:05:23.624000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:26.279000+09:00",

            "DataSourceParameters": {

                "AthenaParameters": {

                    "WorkGroup": "primary",

                    "IdentityCenterConfiguration": {

                        "EnableIdentityPropagation": false

                    }

                }

            },

            "SslProperties": {

                "DisableSsl": false

            }

        },

        {

            "Arn": "arn:aws:quicksight:ap-northeast-1:200000000002:datasource/ffff6666-ffff-6666-ffff-666666666666",

            "DataSourceId": "ffff6666-ffff-6666-ffff-666666666666",

            "Name": "test_device_master",

            "Type": "ATHENA",

            "Status": "CREATION_SUCCESSFUL",

            "CreatedTime": "2026-04-23T14:05:20.619000+09:00",

            "LastUpdatedTime": "2026-04-23T14:05:22.591000+09:00",

            "DataSourceParameters": {

                "AthenaParameters": {

                    "WorkGroup": "primary",

                    "IdentityCenterConfiguration": {

                        "EnableIdentityPropagation": false

                    }

                }

            },

            "SslProperties": {

                "DisableSsl": false

            }

        }

    ],

    "Status": 200,

    "RequestId": "6f438f17-f11f-4220-9e7f-7617e2124044"

}

アセットの所有者変更

前の「インポート確認」で、各アセットが正常にインポートされていることが確認できました。しかし、実際のQuick SightUI を見ると、何も表示されません。どうやら 所有者がログインユーザー自身になっており、適切な権限がないと、自身のUIには表示されないようです。インポート時に権限設定する方法があるかもしれませんが、今回はインポート後に権限設定を行いました。

アセットの所有者変更.png

ダッシュボード

ダッシュボードの権限設定を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight update-dashboard-permissions `

  --aws-account-id $ACCOUNT_ID `

  --dashboard-id aaaa1111-aaaa-1111-aaaa-111111111111 `

  --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDashboard,quicksight:ListDashboardVersions,quicksight:UpdateDashboardPermissions,quicksight:QueryDashboard,quicksight:UpdateDashboard,quicksight:DeleteDashboard,quicksight:UpdateDashboardPublishedVersion,quicksight:DescribeDashboardPermissions `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight update-dashboard-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --dashboard-id aaaa1111-aaaa-1111-aaaa-111111111111 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDashboard,quicksight:ListDashboardVersions,quicksight:UpdateDashboardPermissions,quicksight:QueryDashboard,quicksight:UpdateDashboard,quicksight:DeleteDashboard,quicksight:UpdateDashboardPublishedVersion,quicksight:DescribeDashboardPermissions `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "DashboardArn": "arn:aws:quicksight:ap-northeast-1:200000000002:dashboard/aaaa1111-aaaa-1111-aaaa-111111111111",

    "DashboardId": "aaaa1111-aaaa-1111-aaaa-111111111111",

    "Permissions": [

        {

            "Principal": "arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai",

            "Actions": [

                "quicksight:DescribeDashboard",

                "quicksight:ListDashboardVersions",

                "quicksight:UpdateDashboardPermissions",

                "quicksight:QueryDashboard",

                "quicksight:UpdateDashboard",

                "quicksight:DeleteDashboard",

                "quicksight:DescribeDashboardPermissions",

                "quicksight:UpdateDashboardPublishedVersion"

            ]

        }

    ],

    "RequestId": "9184faaa-579e-4583-b53f-0ae4fe337b52",

    "LinkSharingConfiguration": {

        "Permissions": []

    }

}

権限設定後、自身のUIに表示されるようになりました。

ダッシュボード3.png

ダッシュボード2.png

分析

分析の権限設定を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight update-analysis-permissions `

  --aws-account-id $ACCOUNT_ID `

  --analysis-id bbbb2222-bbbb-2222-bbbb-222222222222 `

  --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeAnalysis,quicksight:DescribeAnalysisPermissions,quicksight:UpdateAnalysis,quicksight:UpdateAnalysisPermissions,quicksight:DeleteAnalysis,quicksight:QueryAnalysis,quicksight:RestoreAnalysis `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight update-analysis-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --analysis-id bbbb2222-bbbb-2222-bbbb-222222222222 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeAnalysis,quicksight:DescribeAnalysisPermissions,quicksight:UpdateAnalysis,quicksight:UpdateAnalysisPermissions,quicksight:DeleteAnalysis,quicksight:QueryAnalysis,quicksight:RestoreAnalysis `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "AnalysisArn": "arn:aws:quicksight:ap-northeast-1:200000000002:analysis/bbbb2222-bbbb-2222-bbbb-222222222222",

    "AnalysisId": "bbbb2222-bbbb-2222-bbbb-222222222222",

    "Permissions": [

        {

            "Principal": "arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai",

            "Actions": [

                "quicksight:RestoreAnalysis",

                "quicksight:UpdateAnalysisPermissions",

                "quicksight:DeleteAnalysis",

                "quicksight:DescribeAnalysisPermissions",

                "quicksight:QueryAnalysis",

                "quicksight:DescribeAnalysis",

                "quicksight:UpdateAnalysis"

            ]

        }

    ],

    "RequestId": "0fd7d6f0-1a0d-4baa-85f5-914610c999d0"

}

分析3.png

権限設定後、自身のUIに表示されるようになりました。

分析4.png

データセット

データセットの権限設定を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight update-data-set-permissions `

  --aws-account-id $ACCOUNT_ID `

  --data-set-id cccc3333-cccc-3333-cccc-333333333333 `

  --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSet,quicksight:DescribeDataSetPermissions,quicksight:PassDataSet,quicksight:DescribeIngestion,quicksight:ListIngestions,quicksight:UpdateDataSet,quicksight:DeleteDataSet,quicksight:CreateIngestion,quicksight:CancelIngestion,quicksight:UpdateDataSetPermissions `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight update-data-set-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --data-set-id cccc3333-cccc-3333-cccc-333333333333 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSet,quicksight:DescribeDataSetPermissions,quicksight:PassDataSet,quicksight:DescribeIngestion,quicksight:ListIngestions,quicksight:UpdateDataSet,quicksight:DeleteDataSet,quicksight:CreateIngestion,quicksight:CancelIngestion,quicksight:UpdateDataSetPermissions `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "DataSetArn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/cccc3333-cccc-3333-cccc-333333333333",

    "DataSetId": "cccc3333-cccc-3333-cccc-333333333333",

    "RequestId": "ba15b5ef-784d-421d-a4a1-c7a4ecb05cdb"

}

> aws quicksight update-data-set-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --data-set-id dddd4444-dddd-4444-dddd-444444444444 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSet,quicksight:DescribeDataSetPermissions,quicksight:PassDataSet,quicksight:DescribeIngestion,quicksight:ListIngestions,quicksight:UpdateDataSet,quicksight:DeleteDataSet,quicksight:CreateIngestion,quicksight:CancelIngestion,quicksight:UpdateDataSetPermissions `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "DataSetArn": "arn:aws:quicksight:ap-northeast-1:200000000002:dataset/dddd4444-dddd-4444-dddd-444444444444",

    "DataSetId": "dddd4444-dddd-4444-dddd-444444444444",

    "RequestId": "350b42b1-4a68-42a4-bbd5-3fae09036e7f"

}

権限設定後、自身のUIに表示されるようになりました。

データセット2.pngデータセット3.png

データセット4.png

データソース

データソースの権限設定を実行します。コマンド実行例は以下になります。

コマンド:

$ACCOUNT_ID = "<移行先AWSアカウントID>"

$PROFILE    = "<移行先プロファイル>"

aws quicksight update-data-source-permissions `

  --aws-account-id $ACCOUNT_ID `

  --data-source-id eeee5555-eeee-5555-eeee-555555555555 `

  --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSource,quicksight:DescribeDataSourcePermissions,quicksight:PassDataSource,quicksight:UpdateDataSource,quicksight:DeleteDataSource,quicksight:UpdateDataSourcePermissions `

  --region ap-northeast-1 `

  --profile $PROFILE

実行例:

> $ACCOUNT_ID = "200000000002"

> $PROFILE    = "conexio-2000"

> aws quicksight update-data-source-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --data-source-id eeee5555-eeee-5555-eeee-555555555555 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSource,quicksight:DescribeDataSourcePermissions,quicksight:PassDataSource,quicksight:UpdateDataSource,quicksight:DeleteDataSource,quicksight:UpdateDataSourcePermissions `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "DataSourceArn": "arn:aws:quicksight:ap-northeast-1:200000000002:datasource/eeee5555-eeee-5555-eeee-555555555555",

    "DataSourceId": "eeee5555-eeee-5555-eeee-555555555555",

    "RequestId": "4ad9fc45-8020-4c7a-9d90-cb00152adf5c"

}

> aws quicksight update-data-source-permissions `

>>   --aws-account-id $ACCOUNT_ID `

>>   --data-source-id ffff6666-ffff-6666-ffff-666666666666 `

>>   --grant-permissions Principal=arn:aws:quicksight:ap-northeast-1:200000000002:user/default/conexio.arai,Actions=quicksight:DescribeDataSource,quicksight:DescribeDataSourcePermissions,quicksight:PassDataSource,quicksight:UpdateDataSource,quicksight:DeleteDataSource,quicksight:UpdateDataSourcePermissions `

>>   --region ap-northeast-1 `

>>   --profile $PROFILE

{

    "Status": 200,

    "DataSourceArn": "arn:aws:quicksight:ap-northeast-1:200000000002:datasource/ffff6666-ffff-6666-ffff-666666666666",

    "DataSourceId": "ffff6666-ffff-6666-ffff-666666666666",

    "RequestId": "51d0b7b0-3738-4c04-89fd-f128d5c1e15b"

}

権限設定後、自身のUIに表示されるようになりました。

データセット5.png

test_device_master.png

test_sensor_log.png

つまずきポイント

  • “ファイルアップロード型データセット”がは移行不可。

  • インポート時の上書き設定(override-parameters を使って DataSource の名前や ARN を書き換える 等)を行うと失敗することが多い。

  • インポート時のDataSourceArn の書き換えは今回不要だった。

  • 移行先アカウントで、データソース、データセット を事前に作成する必要はなかった。

  • 所有者権限は移行されない。

まとめ

QuickSight のアセットを別AWSアカウントへ移行できるかどうか、QuickSight Assets as BundleAaB)を使って検証しました。特に、インポート時にデータを上書きしなくてもエクスポートしたデータがそのままインポートできた  という点は、実際に試してみて初めて分かったポイントでした。同じように移行を検討している方の参考になれば幸いです。

コネクシオでは、IoTゲートウェイや通信だけでなく、資格を持ったエンジニアが、AWSを中心としたクラウドアプリケーション開発まで行います。

ぜひ、IoTクラウド基盤やアプリケーションの開発もご相談ください。

【お役立ち資料】コネクシオのIoTソリューションをご紹介

あらい
あらい
DX・IoTソリューション部所属。ゲートウェイのアプリケーション開発からクラウドまで、実務でのハマりどころや、ドキュメントには載っていない実際に手を動かした検証ナレッジを発信していきたい。 保有資格 ■AWS Certified Solutions Architect - Professional ■AWS Certified Developer - Associate ■応用情報技術者
コネクシオのソリューションが5分でわかる!
工業・農業・オフィス・車両・インフラなど、
各分野から抜粋した代表例をご紹介
ご質問やご要望はこちらから
お気軽にお問い合わせください

お役立ち資料

ソリューション紹介資料

まるわかり大全サムネール

IoTソリューション導入事例集

導入事例集

IoT化のナビゲートBOOK

目先の課題解決から始める IoT化のナビゲートBOOK

IoTゲートウェイ選定ガイド

IoTゲートウェイ選定ガイド

IoT導入ステップ完全ガイド

サイト内検索