AWS QuickSight 快速指南



AWS QuickSight - 概述

AWS QuickSight 是最強大的商業智慧工具之一,它允許您在幾分鐘內建立互動式儀表板,以提供對組織業務的洞察。儀表板可以使用多種視覺化或圖形格式建立。隨著資料的更新或計劃,儀表板會自動更新。您還可以將 QuickSight 中建立的儀表板嵌入到您的 Web 應用程式中。

藉助最新的機器學習 (ML) 洞察,QuickSight 使用其內建演算法查詢歷史資料中的任何異常或峰值。這有助於根據這些洞察提前做好業務需求的準備。這是一個 QuickSight 入門快速指南。

以下是 AWS 的官方產品描述頁面:

https://aws.amazon.com/quicksight/

您還可以透過填寫以下資訊並點選“繼續”按鈕來訂閱 AWS 試用帳戶。

Aws Trial Account

AWS QuickSight - 登陸頁面

要訪問 AWS QuickSight 工具,您可以直接在 Web 瀏覽器中輸入此 URL,或導航到 **AWS 控制檯 → 服務**

https://aws.amazon.com/quicksight/

開啟此 URL 後,在右上角點選 **“登入控制檯”**。

Sign In Console

您需要提供以下詳細資訊才能登入 QuickSight 工具:

  • 賬戶 ID 或別名
  • IAM 使用者名稱
  • 密碼
Login

登入 QuickSight 後,您將看到以下螢幕:

Quicksight

如上圖所示:

**區域 A** - “新建分析”圖示用於建立新的分析。單擊此圖示後,系統會要求您選擇任何資料集。您也可以建立新的資料集,如下所示:

New Data Set

**區域 B** - “管理資料”圖示將顯示已輸入 QuickSight 的所有資料集。此選項可用於管理資料集,無需建立任何分析。

**區域 C** - 它顯示您已連線的各種資料來源。您還可以連線到新的資料來源或上傳檔案。

Data Sets

**區域 D** - 此區域包含已建立的分析、已釋出的儀表板和詳細解釋 QuickSight 的教程影片的圖示。

您可以點選每個選項卡檢視它們,如下所示:

所有分析

在這裡,您可以看到 AWS QuickSight 帳戶中的所有現有分析,包括報表和儀表板。

All Analysis

所有儀表板

此選項僅顯示 AWS QuickSight 帳戶中現有的儀表板。

All Dashboards

教程影片

Tutorial Vedios

開啟 QuickSight 控制檯的另一種方法是使用以下 URL 導航到 AWS 控制檯:

https://aws.amazon.com/console/

登入後,您需要導航到“服務”選項卡並在搜尋欄中搜索 QuickSight。如果您最近在 AWS 帳戶中使用了 QuickSight 服務,則它將顯示在“歷史記錄”選項卡下。

Services

AWS QuickSight - 使用資料來源

AWS QuickSight 接受來自各種來源的資料。單擊主頁上的“新建資料集”後,它會為您提供所有可用資料來源的選項。

以下是包含所有內部和外部資料來源列表的資料來源:

Using Data Source

讓我們來看一下如何將 QuickSight 與一些最常用的資料來源連線:

上傳系統檔案

它只允許您輸入 .csv、.tsv、.clf、.elf、.xlsx 和 Json 格式的檔案。選擇檔案後,QuickSight 會自動識別檔案並顯示資料。當您點選**“上傳檔案”**按鈕時,您需要提供要用來建立資料集的檔案位置。

使用 S3 格式的檔案

螢幕將顯示如下。在資料來源名稱下,您可以輸入要為將要建立的資料集顯示的名稱。您還需要從本地系統上傳清單檔案或提供清單檔案的 S3 位置。

Data Source Name

清單檔案是一個 json 格式的檔案,它指定輸入檔案及其格式的 url/位置。您可以輸入多個輸入檔案,前提是格式相同。這是一個清單檔案的示例。“URI”引數用於傳遞輸入檔案的位置是 S3。

{
   "fileLocations": [
      {
         "URIs": [
            "url of first file",
            "url of second file",
            "url of 3rd file and so on"
         ]
      },
   
   ],
}
"globalUploadSettings": {
   "format": "CSV",
   "delimiter": ",",
   "textqualifier": "'",
   "containsHeader": "true"
}

在 **globalUploadSettings** 中傳遞的引數是預設引數。您可以根據需要更改這些引數。

MySQL

您需要在欄位中輸入資料庫資訊才能連線到您的資料庫。連線到資料庫後,您可以從中匯入資料。

New SQL Data Source

連線到任何 RDBMS 資料庫時需要以下資訊:

  • DSN 名稱
  • 連線型別
  • 資料庫伺服器名稱
  • 資料庫名稱
  • 使用者名稱
  • 密碼

QuickSight 支援以下基於 RDBMS 的資料來源:

  • Amazon Athena
  • Amazon Aurora
  • Amazon Redshift
  • Amazon Redshift Spectrum
  • Amazon S3
  • Amazon S3 Analytics
  • Apache Spark 2.0 或更高版本
  • MariaDB 10.0 或更高版本
  • Microsoft SQL Server 2012 或更高版本
  • MySQL 5.1 或更高版本
  • PostgreSQL 9.3.1 或更高版本
  • Presto 0.167 或更高版本
  • Snowflake
  • Teradata 14.0 或更高版本

Athena

Athena 是 AWS 用於在表上執行查詢的工具。您可以從 Athena 中選擇任何表,或在這些表上執行自定義查詢,並在 QuickSight 中使用這些查詢的輸出。選擇資料來源有幾個步驟。

選擇 Athena 時,將顯示以下螢幕。您可以輸入要賦予 QuickSight 資料來源的任何資料來源名稱。單擊 **“驗證連線”**。驗證連線後,單擊 **“建立新資料來源”** 按鈕。

 Athena Data Source

現在從下拉選單中選擇表名。下拉選單將顯示 Athena 中存在的資料庫,這些資料庫將進一步顯示該資料庫中的表。或者,您可以單擊 **“使用自定義 SQL”** 來在 Athena 表上執行查詢。

Select

完成後,您可以單擊 **“編輯/預覽資料”** 或 **“視覺化”** 來根據您的需求編輯資料或直接視覺化資料。

Finish Data Set Creation

刪除資料來源

刪除 QuickSight 儀表板中正在使用的任何資料來源時,它可能會使關聯的資料集無法使用。這通常發生在查詢基於 SQL 的資料來源時。

基於 **S3、Salesforce 或 SPICE** 建立資料集時,不會影響您使用任何資料集的能力,因為資料儲存在 SPICE 中;但是,在這種情況下,重新整理選項不可用。

要刪除資料來源,請選擇資料來源。在建立資料集頁面上導航到“從現有資料來源”選項卡。

Delete Data Source

刪除前,您還可以確認資料來源的估計表大小和其他詳細資訊。

Data Source Details

AWS QuickSight - 資料來源限制

當您在 QuickSight 工具中使用不同的資料來源時,會根據資料來源應用某些限制。

檔案

您可以使用清單檔案中指定的總大小達 25 GB。此限制取決於匯入 SPICE 後文件的大小。

清單檔案中支援的檔案數為 1000,並且每個檔案的列數也有一些限制。

表和查詢

查詢大型表時,建議使用 Where 或 Having 條件來減少匯入 SPICE 的資料量。匯入 SPICE 的查詢結果不得超過 25 GB。

您可以匯入 SPICE 時取消選擇某些列。

如果您的資料來源包含 QuickSight 不支援的資料型別,AWS QuickSight 將跳過這些值。

人員 ID 銷售日期 金額
001 10/14/2017 12.43
002 5/3/2017 25.00
003 未知 18.17
004 3/8/2019 86.02

對於以上值,QuickSight 將在將此資料匯入資料集時刪除無日期值行。QuickSight 支援以下資料型別:

資料庫來源 數字資料型別 字串資料型別 日期時間資料型別 布林資料型別
Amazon Athena、Presto
  • bigint
  • decimal
  • double
  • integer
  • real
  • smallint
  • tinyint
  • char
  • varchar
  • date
  • timestamp
  • Boolean
Amazon Aurora、MariaDB 和 MySQL
  • bigint
  • decimal
  • double
  • int
  • integer
  • mediumint
  • numeric
  • smallint
  • tinyint
  • char
  • enum
  • set
  • text
  • varchar
  • date
  • datetime
  • timestamp
  • year
PostgreSQL
  • bigint
  • decimal
  • double
  • integer
  • numeric
  • precision
  • real
  • smallint
  • char
  • character
  • text
  • varchar
  • varying character
  • date
  • timestamp
  • Boolean
Apache Spark
  • bigint
  • decimal
  • double
  • integer
  • real
  • smallint
  • tinyint
  • varchar
  • date
  • timestamp
  • Boolean
Snowflake
  • bigint
  • byteint
  • decimal
  • double
  • doubleprecision
  • float
  • float4
  • float8
  • int
  • integer
  • number
  • numeric
  • real
  • smallint
  • tinyint
  • char
  • character
  • string
  • text
  • varchar
  • date
  • datetime
  • time
  • timestamp
  • timestamp_*
  • Boolean
Microsoft SQL Server
  • bigint
  • bit
  • decimal
  • int
  • money
  • numeric
  • real
  • smallint
  • smallmoney
  • tinyint
  • char
  • nchar
  • nvarchar
  • text
  • varchar
  • date
  • datetime
  • datetime2
  • datetimeoffset
  • smalldatetime
  • bit

AWS QuickSight - 編輯資料集

建立要在 QuickSight 中使用的新資料集時,將顯示以下訊息。您可以根據需要預覽或編輯資料。您可以更改某些欄位的型別、重新命名標題或根據輸入欄位新增一些計算欄位。

Editing Database

單擊“編輯/預覽資料”後,您將能夠看到輸入資料集的標題和欄位。這是一個示例資料集:

Save

還有一個新增計算欄位的選項。您可以對輸入欄位使用內建函式來建立新欄位。有很多選項,例如連線多個欄位、將單個欄位分解成多個欄位、兩個日期之間的時間差等等。完整的列表如下所示:

Add Calculated Filed

完成新增或修改欄位後,只需單擊頂部的“儲存並可視化”或“儲存”。“儲存”按鈕將使您停留在現有螢幕上,而“儲存並可視化”將帶您進入視覺化建立螢幕。

Data Source

要取消更改,請單擊頂部的“取消”按鈕。

AWS QuickSight - 建立新的分析

分析是組合一個或多個視覺化效果。視覺化是資料以圖形、圖表或表格形式的表示。有多種格式可用於建立任何視覺化效果。這包括餅圖、水平條形圖、垂直條形圖和資料透視表。

根據業務需求修改輸入資料集後,雙擊資料集並單擊“視覺化”以開始建立新的分析。它將向您顯示以下螢幕或工作區。

Creating New Analysis

選擇欄位後,QuickSight 會根據欄位自動選擇視覺化型別。如果要更改視覺化型別,可以選擇其中一種視覺化型別。

例如,我們首先選擇“視覺化型別”下的“水平條形圖”。首先,將任意一個欄位拖放到中間的視覺化區域內。在頂部,您將看到“欄位井”,其中包含視覺化中使用的欄位和相應的軸。您可以點選使用者名稱下方最後一個的下拉箭頭。

Visual Types

這將為您提供一個展開檢視。我已經選擇了“性別”作為Y軸,“職位類別”作為“分組/顏色”。您可以從下拉選單中修改欄位。在“值”下,您可以新增任何數值欄位,並對該欄位使用聚合函式。預設情況下,視覺化將顯示行數。

Count of Rows

People Overview Analysis

視覺化效果如下所示:

Visual Appear

您可以更改視覺化的標題以及許多其他格式選項。點選最右側的下拉選單。選項將展開。選擇“格式化視覺化”。您將在左側選項卡的“格式化視覺化”下看到各種選項。

Dropdown

X軸/Y軸 - 這提供了是否要在相應軸上顯示標籤或欄位名稱的選項。它還允許您重新命名這些標籤。

分組/顏色 - 這提供了更改視覺化中預設顏色的選項。

圖例 - 這提供了更改視覺化中標題和標題位置的選項。您也可以透過單擊標題來重新命名它。

資料標籤 - 這提供了顯示每個條形圖的精確值以及需要顯示值的位置的選項。

下圖顯示了所有選項都已開啟的視覺化效果:

Five Insights

AWS QuickSight - 新增視覺化

要新增新的視覺化,請點選頂部“新增”符號。分析中將新增另一個矩形空間。您可以選擇不同的視覺化型別和欄位來建立另一個視覺化。

Add Sign

當您點選“新增”按鈕時,您可以選擇將以下內容新增到您的現有分析中:

  • 新增視覺化
  • 新增洞察
  • 新增標題
  • 新增描述
  • 新增計算欄位
  • 新增引數
X axis Four Sights

要格式化視覺化,您也可以使用圖表右上角的下拉箭頭按鈕。以下選項可用:

  • 最大化
  • 格式化視覺化
  • 隱藏圖例
  • 匯出到CSV
  • 隱藏“其他”類別
  • URL操作
  • 刪除
Count Of Records

AWS QuickSight - 使用篩選器進行視覺化

QuickSight允許您向建立的視覺化新增篩選器。您可以選擇將篩選器應用於任何分析下的單個視覺化或所有視覺化。要新增篩選器,請點選左側選項卡上的“篩選器”圖示。如果存在任何篩選器,它將顯示現有篩選器,或者可以根據需要建立篩選器。在下面的示例中,我們沒有任何現有篩選器,因此它提供了“建立一個”的選項。

Applied Filters

點選“建立一個”,您可以建立篩選器。這允許您選擇是想將篩選器新增到一個視覺化還是所有視覺化。它還允許您選擇要應用篩選器的欄位。

Create Filter

在上面的示例中,我們在輸入資料集的“出生日期”欄位上添加了一個篩選器並指定了一個日期。現在,視覺化包含不同職位級別和職位類別的員工的平均任職時間,但僅包括出生日期在1980-01-01之後的員工。

AWS QuickSight - 洞察

Amazon 使用其機器學習功能來分析您的資料並提供洞察。這些洞察向您展示資料中的趨勢,幫助預測業務指標並識別關鍵驅動因素。它節省了您手動分析和建立它們的大量時間。藉助洞察,您可以輕鬆理解各種要點,這些要點有助於您做出最佳決策並實現目標。

點選“洞察”後,左側面板將顯示Quicksight在“建議洞察”下自動計算和建立的洞察。

Suggested Insights

如果您將滑鼠懸停在每個洞察標題的右側,您將看到一個“+”號和三個點。“+”號用於將洞察新增到您的分析中,而三個點則允許您向現有洞察中新增篩選器。要新增洞察,請點選頂部的“新增”符號,然後點選“新增洞察”。

您可以進一步選擇要執行的計算型別並將該洞察新增到您的分析中。“預測”和“異常檢測”由機器學習驅動,可在Quicksight的“企業版”中使用。

Computation

AWS QuickSight - 建立故事

故事是一個選項,您可以捕獲一系列螢幕並逐一播放它們。例如,如果您想檢視具有不同篩選器選項的視覺化,您可以使用故事。要建立故事,請點選左側面板上的“故事”。預設情況下,有一個名為“故事板1”的故事。現在使用最右側面板頂部的捕獲圖示捕獲螢幕。每個螢幕截圖也稱為場景。您可以捕獲多個場景,這些場景將新增到“故事板1”中。故事中的資料會在您的主要資料來源重新整理後自動重新整理。

Story Board1

AWS QuickSight - 使用引數

引數是建立的變數,用於傳遞使用者控制來修改儀表板。可以使用輸入資料集的欄位或為分析建立的篩選器來建立引數。例如,您可以使用篩選器建立一個引數,儀表板使用者可以直接應用篩選器而無需建立任何篩選器。

Create New Parameter

建立引數

在本節中,我們將瞭解如何建立引數:

步驟1 - 輸入引數名稱。讓我們以“性別”作為引數。

步驟2 - 選擇資料型別。預設情況下為字串。

步驟3 - 選擇如下所示的可能選項。

Multiple Values

引數將被新增。您可以選擇向儀表板新增控制元件。

AWS QuickSight - 分享分析

分析準備就緒後,可以透過電子郵件或其他QuickSight使用者與使用者共享。在右上角選單中,有一個“共享”圖示。

Share Icon

Share Analysis

預設情況下,只有作者或管理員可以訪問分析。您需要向用戶提供訪問許可權才能檢視分析。點選“管理分析訪問許可權”,它將顯示所有註冊使用者。您可以選擇要擴充套件訪問許可權的使用者,然後點選“邀請使用者”。使用者將收到電子郵件通知,一旦他們接受通知,他們將能夠透過電子郵件獲得分析。

Invite Users

AWS QuickSight - 儀表板

儀表板顯示分析的螢幕截圖。與分析不同,儀表板僅作為螢幕截圖讀取。人們只能使用視覺化中建立的引數和篩選器來建立新的視覺化,但使用相同的圖表。

Public Dashboards

要生成已建立分析的儀表板,只需點選“共享”圖示下的“釋出儀表板”。為儀表板提供任何名稱,然後點選“釋出儀表板”圖示。

Public Dashboard Icon

您可以選擇與該帳戶中的所有使用者共享儀表板,或者僅與特定使用者共享。

Share Dashboard

現在,儀表板在主螢幕上的“所有儀表板”選項卡下可見。

Manage Data

這是一個帶有附加篩選器的示例儀表板。您可以看到,除了應用建立視覺化時新增的篩選器之外,沒有其他編輯儀表板的選項。

Dashboard With Filter

AWS QuickSight - 管理 QuickSight

管理QuickSight用於管理您的當前帳戶。您可以新增具有相應角色的使用者,管理您的訂閱,並檢查SPICE容量或列入白名單的嵌入域。您需要管理員訪問許可權才能在此頁面上執行任何活動。

在使用者資料下,您將找到管理QuickSight的選項。

Manage Quicksight

點選“管理訂閱”後,將出現以下螢幕。它將顯示此帳戶中的使用者及其各自的角色。

Manage Users

您還有一個搜尋選項;如果您想特別搜尋QuickSight中的現有使用者。

您可以使用有效的電子郵件地址邀請使用者,也可以使用有效的IAM帳戶新增使用者。具有IAM角色的使用者隨後可以登入到他們的QuickSight帳戶並檢視他們有權訪問的儀表板。

Valid IAM Account

您的訂閱將顯示您訂閱的QuickSight版本。

Subscriptions

SPICE容量顯示其計算引擎的容量以及迄今為止使用的數量。如果需要,可以選擇購買更多容量。

Spice Capacity

帳戶設定顯示QuickSight帳戶的詳細資訊 - 通知電子郵件地址、AWS對QuickSight的資源許可權,或者您也可以選擇關閉帳戶。

Account Settings

關閉QuickSight帳戶時,它會刪除與以下物件相關的所有資料:

  • 資料來源
  • 資料集
  • 分析
  • 已釋出的儀表板

管理VPC連線允許您管理和新增與QuickSight的VPC連線。要新增新的VPC連線,您需要提供以下詳細資訊:

Manage VPC Connections

Adding VPC Connection

域和嵌入允許您列出要為使用者嵌入QuickSight儀表板的域。它僅支援https://域在QuickSight中列入白名單:

https://example.com

如果您想透過選擇下面顯示的複選框來使用任何子域,您也可以包含它們。當您點選“新增”按鈕時,它會將域新增到QuickSight中允許用於嵌入的域名列表中。

Domain

要編輯允許的域,您需要點選位於域名旁邊的“編輯”按鈕。您可以進行更改並點選“更新”。

Edit Allowed Domain

AWS QuickSight - 版本型別

AWS QuickSight支援不同的版本,這些版本根據使用者管理、許可權和支援的功能而有所不同 - 標準版企業版。這兩個版本都支援QuickSight建立和共享資料視覺化的所有功能。

企業版提供對AWS目錄的活動目錄整合的支援。企業版支援各種其他功能,如下所示:

支援的功能 標準版 企業版
免費作者數量 1 1
免費試用作者數量 (60天) 4 4
包含的SPICE容量 10 GB/使用者 10 GB/使用者
閱讀者 N/A 0.30美元/會話
額外的SPICE容量 0.25美元/GB/月 0.38美元/GB/月
連線到電子表格、資料庫、資料湖和業務應用程式
使用AutoGraph輕鬆分析資料
快速、可擴充套件的視覺化
釋出儀表板以進行互動式資料訪問
使用SAML或OpenID Connect進行單點登入
網路和移動訪問
深入瞭解詳細資訊並自定義篩選器
使用AWS CloudTrail啟用稽核日誌
閱讀者角色
安全地訪問私有VPC和本地的資料
行級安全性
SPICE資料的每小時重新整理
安全的資料加密儲存
連線到活動目錄
使用活動目錄組

您可以使用管理QuickSight選項檢查AWS QuickSight的訂閱型別。

Edition Enterprise

在企業版中,AWS QuickSight允許您使用以下任何方式管理使用者:

  • 使用Microsoft Active Directory:在企業版中,您可以新增/刪除Microsoft Active Directory組來建立和停用使用者帳戶。您可以直接訪問目錄組,也可以使用AD聯結器訪問。

  • 聯合登入。

  • 透過電子郵件邀請使用者。

要管理QuickSight中的AD使用者/組,您必須導航到管理QuickSight → 管理使用者/管理組

您也可以透過點選下拉列表更改現有使用者的角色:

  • 管理員
  • 作者
  • 讀者

AWS QuickSight 管理員還可以使用“管理使用者”選項重置現有使用者的密碼,如下所示:

Reset Password

您可以使用“管理帳戶”選項將 AQS QuickSight 標準版升級到企業版。要執行升級,使用者應具有 AWS QuickSight 管理員許可權。

點選右上角的個人資料圖示 → 立即升級。

Upgrade Now

點選“升級”後,將出現以下螢幕。要完成升級,請點選“升級”按鈕。

Upgrade Enterprise Edition

注意 − 將訂閱從標準版更改為企業版後,無法回滾。

AWS QuickSight - 管理 IAM 策略

要管理 QuickSight 帳戶的 IAM 策略,您可以使用根使用者或 IAM 憑證。建議使用 IAM 憑證而不是根使用者來管理資源訪問和策略。

註冊和使用 Amazon QuickSight 需要以下策略:

標準版

  • ds:AuthorizeApplication
  • ds:CheckAlias
  • ds:CreateAlias
  • ds:CreateIdentityPoolDirectory
  • ds:DeleteDirectory
  • ds:DescribeDirectories
  • ds:DescribeTrusts
  • ds:UnauthorizeApplication
  • iam:CreatePolicy
  • iam:CreateRole
  • iam:ListAccountAliases
  • quicksight:CreateUser
  • quicksight:CreateAdmin
  • quicksight:Subscribe

企業版

除了上述策略外,企業版還需要以下許可權:

  • quicksight:GetGroupMapping
  • quicksight:SearchDirectoryGroups
  • quicksight:SetGroupMapping

您還可以允許使用者管理 QuickSight 中 AWS 資源的許可權。在兩個版本中都應分配以下 IAM 策略:

  • iam:AttachRolePolicy
  • iam:CreatePolicy
  • iam:CreatePolicyVersion
  • iam:CreateRole
  • iam:DeletePolicyVersion
  • iam:DeleteRole
  • iam:DetachRolePolicy
  • iam:GetPolicy
  • iam:GetPolicyVersion
  • iam:GetRole
  • iam:ListAttachedRolePolicies
  • iam:ListEntitiesForPolicy
  • iam:ListPolicyVersions
  • iam:ListRoles
  • s3:ListAllMyBuckets

要阻止 AWS 管理員取消訂閱 QuickSight,您可以拒絕所有使用者“quicksight:Unsubscribe”許可權。

儀表板嵌入的 IAM 策略

要在網頁中嵌入 AWS Quciksight 儀表板 URL,需要為使用者分配以下 IAM 策略:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl", 
         "Resource": "arn:aws:quicksight:us-east-1: 
         868211930999:dashboard/ 
         f2cb6cf2-477c-45f9-a1b3-639239eb95d8 ",
         "Effect": "Allow"
      }
   ]
}

您可以使用 QuickSight 中的 IAM 策略模擬器管理和測試這些角色和策略。以下是訪問 IAM 策略模擬器的連結:

https://policysim.aws.amazon.com/home/index.jsp?#

IAM Policy Simulator

AWS QuickSight - 嵌入儀表板

您還可以將 QuickSight 儀表板嵌入外部應用程式/網頁,或使用 AWS Cognito 服務控制使用者訪問。要執行使用者控制,您可以在 Cognito 中建立使用者池和身份池,並將嵌入儀表板策略分配給身份池。

AWS Cognito 是一項 IAM 服務,允許管理員建立和管理臨時使用者以提供對應用程式的訪問許可權。透過使用身份池,您可以管理這些使用者池的許可權。

讓我們看看如何生成安全的儀表板 URL 並執行使用者控制:

步驟 1 - 建立使用者池和使用者

在 AWS Cognito 中建立使用者池並建立使用者。轉到Amazon Cognito → 管理使用者池 → 建立使用者池

Amazon Cognito

步驟 2 - 建立身份池

建立使用者池後,下一步是建立身份池。轉到 https://console.aws.amazon.com/cognito/home?region=us-east-1

點選“建立新的身份池”。

Identity Pool

輸入身份池的相應名稱。轉到“身份驗證提供程式”部分,然後選擇“Cognito”選項。

Create Pool

步驟 3 - 建立 Cognito 角色

輸入使用者池 ID(您的使用者池 ID)和應用程式客戶端 ID(轉到使用者池中的應用程式客戶端並複製 ID)。

接下來,點選“建立池”,然後點選“允許”以在 IAM 中建立身份池的角色。這將建立 2 個 Cognito 角色。

步驟 4 - 分配自定義策略

下一步是將自定義策略分配給上述步驟中建立的身份角色:

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "sts:AssumeRole",
         "Resource": "*",
         "Effect": "Allow"
      }
   ]
}
Policies

您可以將儀表板 Amazon 資源名稱 (ARN) 傳遞到quicksight:GetDashboardEmbedUrl下,而不是“*”,以限制使用者只能訪問一個儀表板。

步驟 5 - 登入到 Cognito 應用程式

下一步是使用使用者池中的使用者憑證登入到 Cognito 應用程式。當用戶登入到應用程式時,Cognito 將生成 3 個令牌:

  • IDToken
  • AccessToken
  • Refresh Token

要建立臨時 IAM 使用者,憑據如下所示:

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId:"Identity pool ID", Logins: {
      'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken
   }
});

要生成臨時 IAM 憑據,您需要使用以下引數呼叫 sts.assume role 方法:

var params = {
   RoleArn: "Cognito Identity role arn", RoleSessionName: "Session name"
};
sts.assumeRole(params, function (err, data) {
   if (err) console.log( err, err.stack); 
   // an error occurred
   else {
      console.log(data);
   })
}

步驟 6 - 在 QuickSight 中註冊使用者

下一步是使用步驟 3 中生成的憑據和以下引數使用“quicksight.registerUser”在 QuickSight 中註冊使用者:

var params = {
   AwsAccountId: “account id”,
   Email: 'email',
   IdentityType: 'IAM' ,
   Namespace: 'default',
   UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER,
   IamArn: 'Cognito Identity role arn',
   SessionName: 'session name given in the assume role creation',
};
quicksight.registerUser(params, function (err, data1) {
   if (err) console.log("err register user”); 
   // an error occurred
   else {
      // console.log("Register User1”);
   }
})

步驟 7 - 更新 AWS 配置檔案

接下來是更新步驟 5 中生成的使用者的 AWS 配置。

AWS.config.update({
   accessKeyId: AccessToken,
   secretAccessKey: SecretAccessKey ,
   sessionToken: SessionToken,
   "region": Region
});

步驟 8 - 為 QuickSight 儀表板生成嵌入式 URL

使用步驟 5 中建立的憑據,使用以下引數呼叫 quicksight.getDashboardEmbedUrl 來生成 URL。

var params = {
   AwsAccountId: "Enter AWS account ID",
   DashboardId: "Enter dashboard Id",
   IdentityType: "IAM",
   ResetDisabled: true,
   SessionLifetimeInMinutes: between 15 to 600 minutes,
   UndoRedoDisabled: True | False
}
quicksight.getDashboardEmbedUrl(params,function (err, data) {
   if (!err) {
      console.log(data);
   } else {
      console.log(err);
   }
});

您必須使用上述生成的 URL 從您的應用程式呼叫“QuickSightEmbedding.embedDashboard”。

與 Amazon QuickSight 一樣,嵌入式儀表板也支援以下功能:

  • 向下鑽取選項
  • 自定義操作(連結到新標籤頁)
  • 螢幕過濾器
  • 下載到 CSV
  • 視覺效果排序
  • 電子郵件報告選擇加入
  • 將儀表板重置為預設值選項
  • 撤消/重做儀表板上的操作

AWS QuickSight - AWS SDK

您可以使用 AWS QuickSight SDK 管理以下內容:

  • 使用者和組管理
  • 嵌入儀表板

以下是用於顯示嵌入式儀表板的示例 HTML 程式碼:

<!DOCTYPE html>
<html>
   <head>
      <title>Sample Embed</title>
      <script type="text/javascript" src="https://unpkg.com/amazon-quicksight-embedding-sdk@1.0.1/dist/quicksight-embedding-js-sdk.min.js"></script>
      <script type="text/javascript">
         function embedDashboard() {
            var containerDiv = document.getElementById("dashboardContainer");
            var params = {
               url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/xxx-x-x-xx-x-x-x-x-x-x-x-xx-xx-x-xx",
               container: containerDiv,
               parameters: {
                  country: 'United States'
               },
               height: "600px",
               width: "800px"
            };
            var dashboard = QuickSightEmbedding.embedDashboard(params);
            dashboard.on('error', function() {});
            dashboard.on('load', function() {});
            dashboard.setParameters({country: 'Canada'});
         }
      </script>
   </head>
<html>

要使用 AWS SDK,您應該熟悉以下內容:

  • JSON

  • Web 服務

  • HTTP 請求

  • 一種或多種程式語言,例如 JavaScript、Java、Python 或 C#。

AWS QuickSight - 開發人員職責

AWS QuickSight 開發人員執行以下工作職責:

  • 人員應在分析、報告和商業智慧工具方面擁有相關工作經驗。

  • 瞭解客戶需求並在 AWS 中設計解決方案以設定 ETL 和商業智慧環境。

  • 瞭解不同的 AWS 服務、其用途和配置。

  • 熟練使用 SQL、ETL、資料倉庫解決方案和資料庫,在具有大型、不同的資料集的業務環境中。

  • 複雜的定量和資料分析能力。

  • 瞭解 AWS IAM 策略、角色和 AWS 服務的管理員。

廣告