アマゾンクイックサイト は、スケーラブルでサーバーレスの機械学習 (ML) を活用したビジネス インテリジェンス (BI) ソリューションであり、データへの接続、インタラクティブなダッシュボードの作成、ML 対応の分析情報へのアクセス、数万人とのビジュアルやダッシュボードの共有が簡単になります。 QuickSight 自体内、またはアプリケーションに組み込まれた内部および外部ユーザーのいずれかです。
ライトバックは、BI ダッシュボード内からデータ マート、データ ウェアハウス、またはその他のデータベース バックエンドを更新し、更新されたデータをダッシュボード自体内でほぼリアルタイムで分析できる機能です。 この記事では、QuickSight を使用して安全なデータベース ライトバックを実行する方法を説明します。
ユースケースの概要
QuickSight でライトバック機能を有効にする方法を示すために、AnyCompany Inc という架空の会社を考えてみましょう。AnyCompany は、顧客に従業員ソリューションを提供することに特化したプロフェッショナル サービス会社です。 AnyCompany は、増大するグローバル ビジネス ニーズをサポートするためにクラウドでワークロードを実行することが競争上の利点であると判断し、クラウドを使用してすべてのワークロードをホストしています。 AnyCompany は、支店が顧客に見積もりを提供する方法を強化することを決定しました。 現在、各支店は顧客見積を手動で生成していますが、このイノベーションへの取り組みの最初のステップとして、AnyCompany は見積生成時にローカル価格データを動的に適用する機能を備えた顧客見積生成用のエンタープライズ ソリューションの開発を検討しています。
AnyCompany が現在使用している Amazonレッドシフト エンタープライズ データ ウェアハウス プラットフォームとして、QuickSight を BI ソリューションとして使用します。
新しいソリューションを構築するには、次のような課題が伴います。
- AnyCompany は、構築と保守が簡単なソリューションを望んでおり、個別のユーザー インターフェイスの構築に投資したくありません。
- AnyCompany は、既存の QuickSight BI ダッシュボードの機能を拡張して、見積の生成と見積の受け入れも可能にしたいと考えています。 従業員はすでに QuickSight ダッシュボードを使用しており、QuickSight が提供する使いやすいインターフェイスを享受しているため、これにより機能の展開が簡素化されます。
- AnyCompany は、生成、レビュー、承認された見積を含む見積交渉履歴を保存したいと考えています。
- AnyCompany は、分析とビジネスの洞察のために見積履歴データを備えた新しいダッシュボードを構築したいと考えています。
この投稿では、QuickSight から Amazon Redshift へのライトバック機能を有効にする手順について説明します。 従来の BI ツールは読み取り専用で、ソース データを更新するオプションがほとんど、またはまったくないことに注意してください。
ソリューションの概要
このソリューションでは、次の AWS サービスを使用します。
- アマゾンAPIゲートウェイ – QuickSight によって呼び出されるライトバック REST API をホストし、保護します。
- AWSラムダ – ハッシュの生成に必要な計算関数と、ライトバックを安全に実行するための XNUMX 番目の関数を実行します。
- アマゾンクイックサイト – BI ダッシュボードと見積生成機能を提供します
- Amazonレッドシフト – 見積書、価格、その他の関連データセットを保存します
- AWSシークレットマネージャー – ハッシュに署名するためのキー (メッセージ ダイジェスト) を保存および管理します
このソリューションではデータ ストアとして Amazon Redshift を使用しますが、Lambda を呼び出すことができるユーザー定義関数 (UDF) の作成をサポートする任意のデータベースで同様のアプローチを実装できます。
次の図は、QuickSight からライトバックを実行するワークフローを示しています。
ソリューションの最初のステップは、Lambda 関数を呼び出して、Amazon Redshift の一連の属性のハッシュまたはメッセージ ダイジェストを生成することです。 このステップにより、リクエストの改ざんが防止されます。 ハッシュを生成するために、Amazon Redshift は スカラー ラムダ UDF。 ここで使用されるハッシュ メカニズムは一般的なものです。 ブレイク2 関数 (Python ライブラリで利用可能) ハッシュライブラリ)。 ハッシュをさらに安全にするために、キー付きハッシュが使用されます。これは、より高速かつ簡単な代替手段です。 ハッシュベースのメッセージ認証コード (HMAC)。 このキーは Secrets Manager によって生成および保存され、許可されたアプリケーションのみがアクセスできるようにする必要があります。 安全なハッシュが生成された後、Amazon Redshift に返され、Amazon Redshift ビューで結合されます。
生成された見積もりの Amazon Redshift への書き込みは、ライトバック Lambda 関数によって実行され、API Gateway REST API エンドポイントが作成され、リクエストを保護してライトバック関数に渡します。 ライトバック機能は次のアクションを実行します。
- QuickSight から受け取った API 入力パラメータに基づいてハッシュを生成します。
- Secrets Manager からキーを適用してハッシュに署名します。
- で利用可能なcompare_digestメソッドを使用して、生成されたハッシュを入力パラメータから受け取ったハッシュと比較します。 HMAC モジュールを開きます。
- 検証が成功したら、Amazon Redshift の見積もり送信テーブルにレコードを書き込みます。
次のセクションでは、サンプル ペイロードとコード スニペットを使用して詳細な手順を説明します。
ハッシュを生成する
ハッシュは、Amazon Redshift の Lambda UDF を使用して生成されます。 さらに、ハッシュの署名には Secrets Manager キーが使用されます。 ハッシュを作成するには、次の手順を実行します。
- Secrets Manager キーを次から作成します。 AWSコマンドラインインターフェイス (AWS CLI):
- Lambda UDF を作成して暗号化用のハッシュを生成します。
- Lambda 関数を呼び出してハッシュを作成するように Amazon Redshift UDF を定義します。
AWS IDおよびアクセス管理 Lambda 関数を呼び出せるようにするには、前のステップの (IAM) ロールに次のポリシーをアタッチする必要があります。
- Secrets Manager からキーを取得します。
このキーは、ハッシュをさらに保護するために Lambda 関数によって使用されます。 これは、 get_secret ステップ 2 の機能。
QuickSight で Amazon Redshift データセットをセットアップする
見積生成ダッシュボードは、次の Amazon Redshift ビューを使用します。
前述のすべての列とハッシュ列を使用する Amazon Redshift ビューを作成します。
レコードは次のスクリーンショットのようになります。
前述のビューは、見積もりを生成するための QuickSight データセットとして使用されます。 データセットを使用して QuickSight 分析が作成されます。 ほぼリアルタイムの分析には、QuickSight ダイレクト クエリ モードを使用できます。
APIゲートウェイリソースの作成
ライトバック操作は、QuickSight が API Gateway リソースを呼び出すことによって開始され、Lambda ライトバック関数が呼び出されます。 QuickSight で計算フィールドを作成してライトバック API を呼び出すための前提条件として、まずこれらのリソースを作成する必要があります。
API Gateway は、マッピング テンプレートを使用して URL クエリ文字列パラメータとして作成されたパラメータを使用してライトバック Lambda 関数を保護し、呼び出します。 マッピングパラメータは、Lambda プロキシ統合を使用することで回避できます。
Lambda 関数 (次のステップで作成) を統合タイプとして使用する、メソッド タイプ GET の REST API リソースを作成します。 手順については、を参照してください。 Amazon API Gateway での REST API の作成 および API Gateway で Lambda 統合をセットアップする.
次のスクリーンショットは、API ゲートウェイに渡される各パラメーターのクエリ文字列パラメーターを作成する詳細を示しています。
次のスクリーンショットは、API ゲートウェイに渡される各パラメーターのマッピング テンプレート パラメーターを作成する詳細を示しています。
Lambda関数を作成する
API Gateway が呼び出す新しい Lambda 関数を作成します。 Lambda 関数は次の手順を実行します。
- API Gateway を介して QuickSight からパラメータを受信し、連結されたパラメータをハッシュします。
次のコード例では、Lambda 関数のイベント オブジェクトを使用して API Gateway 呼び出しからパラメータを取得します。
この関数は、次のようにハッシュ ロジックを実行します。 ハッシュを作成する QuickSight によって渡された連結パラメーターを使用して、先に進みます。
- ハッシュされた出力をハッシュ パラメーターと比較します。
これらが一致しない場合、ライトバックは行われません。
- ハッシュが一致する場合は、ライトバックを実行します。 QuickSight から渡されたパラメーターを使用してテーブルからクエリを生成し、見積生成テーブルにレコードが存在するかどうかを確認します。
- クエリの結果に基づいて次のアクションを実行します。
- 前述の組み合わせのレコードが存在しない場合は、ステータスが生成済みのすべてのパラメーターを使用して挿入クエリを生成し、実行します。
- 前述の組み合わせのレコードが存在する場合は、レビュー中のステータスで挿入クエリを生成して実行します。 既存の組み合わせの quote_Id が再利用されます。
QuickSight ビジュアルを作成する
このステップには、計算フィールドを使用してパラメータを API Gateway に渡し、前述の Lambda 関数を呼び出すテーブル ビジュアルの作成が含まれます。
- Generate Quote という名前の QuickSight 計算フィールドを追加して、Amazon Redshift に見積もり履歴を書き戻すためにトリガーされる API Gateway でホストされる URL を保持します。
- QuickSight テーブル ビジュアルを作成します。
- 顧客、スキル、コストなどの必須フィールドを追加します。
- 「Generate Quote」計算フィールドを追加し、これをハイパーリンクとしてスタイル設定します。
このリンクを選択すると、レコードが Amazon Redshift に書き込まれます。 これは、Lambda 関数がパラメータのハッシュを実行するときに返される同じハッシュ値に影響します。
次のスクリーンショットは、サンプル テーブルのビジュアルを示しています。
Amazon Redshift データベースへの書き込み
Secrets Manager キーは Lambda 関数によって取得され、比較用のハッシュを生成するために使用されます。 ライトバックは、ハッシュがパラメータで渡されたハッシュと一致する場合にのみ実行されます。
次の Amazon Redshift テーブルは、Lambda 関数によって入力された見積もり履歴をキャプチャします。 緑色のレコードは、見積の最新のレコードを表します。
考慮事項と次のステップ
安全なハッシュを使用すると、ライトバック URL が呼び出されたときにブラウザ ウィンドウに表示されるペイロード パラメータの改ざんが防止されます。 ライトバック URL のセキュリティをさらに強化するには、次の手法を使用できます。
- QuickSight ユーザーのみがアクセスできるプライベート VPC に REST API をデプロイします。
- リプレイ攻撃を防ぐために、ハッシュ関数とともにタイムスタンプを生成し、ライトバック URL の追加パラメータとして渡すことができます。 その後、特定の時間ベースのしきい値内でのみライトバックを許可するようにバックエンド Lambda 関数を変更できます。
- APIゲートウェイに従ってください アクセス制御 および セキュリティ ベストプラクティス。
- 軽減する 公開 API に対するサービス拒否の可能性。
このソリューションをさらに拡張して、ライトバック URL が開かれたときに Web ベースのフォームをレンダリングすることができます。 これは、追加情報の入力をサポートするバックエンド Lambda 関数で HTML フォームを動的に生成することで実装できます。 ワークロードで、より高いスループットまたは同時実行性を必要とする多数のライトバックが必要な場合は、次のような専用のデータ ストアを使用します。 AmazonAuroraPostgreSQL互換版 より良い選択かもしれません。 詳細については、以下を参照してください。 Aurora PostgreSQL DB クラスターからの AWS Lambda 関数の呼び出し。 これらの更新は、次を使用して Amazon Redshift テーブルに同期できます。 フェデレーションクエリ.
まとめ
この投稿では、QuickSight を Lambda、API Gateway、Secrets Manager、Amazon Redshift と組み合わせて使用して、QuickSight BI 環境を離れることなくユーザー入力データをキャプチャし、Amazon Redshift データ ウェアハウスを安全に更新する方法を説明しました。 このソリューションにより、データベースの更新または挿入操作のために外部アプリケーションやユーザー インターフェイスを作成する必要がなくなり、関連する開発とメンテナンスのオーバーヘッドが削減されます。 API ゲートウェイ呼び出しは、キーまたはトークンを使用して保護し、QuickSight から発信された呼び出しのみが API ゲートウェイによって受け入れられるようにすることもできます。 これについては今後の投稿で説明します。
著者について
スリカントバヘティ Amazon QuickSight の世界規模の専門プリンシパル ソリューション アーキテクトです。 彼はコンサルタントとしてキャリアをスタートし、複数の民間および政府機関で働いていました。 その後、PerkinElmer Health and Sciences & eResearch Technology Inc に勤務し、AWS サービスとサーバーレス コンピューティングを使用したレポート プラットフォーム用の高トラフィック Web アプリケーション、拡張性と保守性の高いデータ パイプラインの設計と開発を担当しました。
ラジ・シバスブラマニアム AWSのシニアソリューションアーキテクトであり、アナリティクスを専門としています。 Rajiは、世界中のFortune500およびFortune100企業向けのエンドツーエンドのエンタープライズデータ管理、ビジネスインテリジェンス、および分析ソリューションの設計を専門としています。 彼女は、管理された市場、医師のターゲティング、患者の分析など、さまざまな医療データセットを使用した統合医療データと分析の深い経験を持っています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 未来を鋳造する w エイドリエン・アシュリー。 こちらからアクセスしてください。
- PREIPO® を使用して PRE-IPO 企業の株式を売買します。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/big-data/perform-secure-database-write-backs-with-amazon-quicksight/
- :持っている
- :は
- :どこ
- $UP
- 100
- 11
- 13
- 22
- 500
- 7
- 8
- 9
- a
- 能力
- できる
- 受け入れ
- 一般に認められた
- アクセス
- アクセス可能な
- 越えて
- Action
- 行動
- NEW
- 追加情報
- さらに
- 利点
- 後
- すべて
- 許す
- 沿って
- 並んで
- 既に
- また
- 代替案
- Amazon
- アマゾンクイックサイト
- an
- 分析
- 分析論
- 分析します
- および
- どれか
- API
- API
- 申し込み
- 申し込む
- 適用
- アプローチ
- です
- 引数
- 引数
- AS
- At
- 攻撃
- 属性
- オーロラ
- 認証
- 利用できます
- 避ける
- AWS
- AWSラムダ
- バック
- バックエンド
- ベース
- BE
- なぜなら
- BEST
- ベストプラクティス
- より良いです
- 支店
- ブラウザ
- ビルド
- 建物
- ビジネス
- ビジネス・インテリジェンス
- by
- 計算された
- コール
- コール
- 缶
- 機能
- キャプチャー
- キャリア
- 場合
- 一定
- 課題
- チェック
- 選択
- クライアント
- クラウド
- コード
- コラム
- コラム
- 組み合わせ
- 組み合わせた
- comes
- 企業
- 会社
- 比較
- 競争力のある
- コンプリート
- 計算
- コンピューティング
- お問合せ
- 検討
- コンサルタント
- コンテキスト
- 費用
- 可能性
- カバー
- 作ります
- 作成した
- 作成
- 現在
- 顧客
- Customers
- ダッシュボード
- データ
- データ管理
- データウェアハウス
- データベース
- データセット
- 決定しました
- デフォルト
- 実証します
- サービス拒否
- 設計
- 詳細な
- 細部
- 決定
- 開発する
- 開発
- 開発
- ダイジェスト
- 直接
- ドント
- 動的に
- e
- 各
- 前
- 簡単に
- 使いやすい
- 効果
- どちら
- 排除
- 埋め込まれた
- 社員
- enable
- 暗号化
- 端から端まで
- エンドポイント
- 高めます
- 楽しみます
- 確保
- Enterprise
- 環境
- エーテル(ETH)
- イベント
- 例
- 除く
- 例外
- 既存の
- 存在
- 体験
- 伸ばす
- 外部
- false
- 速いです
- 特徴
- フェッチ
- 架空の
- フィールド
- フィールズ
- フィギュア
- 会社
- 名
- 焦点
- フォロー中
- フォーム
- フォーチュン
- から
- function
- 機能性
- 機能
- さらに
- ゲートウェイ
- 生成する
- 生成された
- 生成
- 世代
- 取得する
- グローバル
- グローバルなビジネス
- 世界
- ゴエス
- 政府・公共機関
- グリーン
- 成長
- ハンドル
- 起こる
- ハッシュ
- ハッシュ化
- ハッシュ
- 持ってる
- he
- 健康
- ヘルスケア
- こちら
- ハイ
- より高い
- 非常に
- 彼の
- history
- host
- 主催
- ホスト
- 認定条件
- How To
- HTML
- HTTP
- HTTPS
- IAM
- アイデンティティ
- if
- 実装
- import
- in
- 綿密な
- (株)
- 含ま
- 含めて
- 現職
- 示された
- 情報
- 革新的手法
- 洞察
- 説明書
- 統合された
- 統合
- 統合
- インテリジェンス
- 相互作用的
- インタフェース
- 内部
- に
- 投資する
- 呼び出された
- 呼び出す
- IT
- ITS
- 自体
- 旅
- JPG
- JSON
- キー
- キー
- 後で
- 学習
- 残す
- 図書館
- ような
- LINE
- LINK
- 少し
- ローカル
- ロジック
- 見て
- のように見える
- 探して
- 機械
- 機械学習
- 維持する
- メンテナンス可能
- メンテナンス
- 作る
- マネージド
- 管理
- マネージャー
- 管理する
- 手動で
- マッピング
- 市場
- 一致
- メカニズム
- メッセージ
- 方法
- かもしれない
- ML
- モード
- 修正されました
- モジュール
- 他には?
- 最も
- の試合に
- しなければなりません
- 名前付き
- 必要
- ニーズ
- 新作
- 新しいソリューション
- 次の
- いいえ
- 数
- オブジェクト
- of
- オファー
- on
- の
- 開かれた
- 操作
- 業務執行統括
- オプション
- or
- 組織
- その他
- 出力
- パラメーター
- パラメータ
- パス
- 渡された
- 患者
- 実行する
- 実行する
- 医師
- プラットフォーム
- プラットフォーム
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 方針
- 人気
- 人口
- ポスト
- Postgresql
- 投稿
- 潜在的な
- プラクティス
- プレゼンス
- 防ぐ
- を防止
- 価格、またオプションについて
- 価格設定
- 校長
- プライベート
- プロ
- 提供します
- は、大阪で
- 提供
- 代理
- Python
- 上げる
- 受け
- 最近
- 記録
- 記録
- 軽減
- 関連する
- 関連した
- replace
- 各種レポート作成
- 表す
- 要求
- リクエスト
- 必要とする
- の提出が必要です
- 必要
- リソースを追加する。
- リソース
- 責任
- REST
- 結果
- return
- 返す
- 収益
- レビュー
- 日
- 職種
- ラン
- ランニング
- 同じ
- ド電源のデ
- 科学
- 二番
- 秘密
- セクション
- 安全に
- セキュア
- しっかりと
- 確保
- 別
- サーバレス
- サービス
- サービス
- セッション
- セッションに
- シェアする
- 彼女
- シフト
- すべき
- 表示する
- 示す
- 作品
- 符号
- 同様の
- 簡素化する
- 技能
- 溶液
- ソリューション
- ソース
- 専門の
- 専門にする
- 特定の
- 安定した
- 開始
- ステートメント
- Status:
- 手順
- ステップ
- 店舗
- 保存され
- 店舗
- 文字列
- 提出
- それに続きます
- 成功
- 成功した
- そのような
- サポート
- サポート
- テーブル
- ターゲット
- テクニック
- テクノロジー
- template
- テンプレート
- 十
- それ
- アプリ環境に合わせて
- その後
- ボーマン
- 彼ら
- この
- 数千
- しきい値
- 介して
- スループット
- 時間
- タイムスタンプ
- 〜へ
- トークン
- 豊富なツール群
- 伝統的な
- トラフィック
- トリガ
- true
- 試します
- type
- アップデイト
- 更新しました
- 更新版
- URL
- つかいます
- 中古
- ユーザー
- ユーザーインターフェース
- users
- 値
- 多様
- バージョン
- 詳しく見る
- 目に見える
- ビジュアル
- 欲しいです
- 望んでいる
- 倉庫
- ました
- 仕方..
- we
- ウェブ
- Webアプリケーション
- ウェブベースの
- いつ
- which
- ワイド
- Wikipedia
- 意志
- 以内
- 無し
- 働いていました
- ワークフロー
- 労働人口
- 世界
- 書きます
- 貴社
- あなたの
- ゼファーネット