ゼファーネットのロゴ

BMO が Amazon Redshift と AWS Lake Formation を使用してデータセキュリティをどのように向上させたか |アマゾン ウェブ サービス

日付:

この投稿は、BMO の Amy Tseng、Jack Lin、Regis Chow との共著です。

BMO 資産では北米で 8 番目に大きい銀行です。 13 万人の顧客に個人および商業銀行業務、世界市場、投資銀行業務のサービスを提供しています。スピード、規模、複雑さの排除を目的としたデジタル ファースト戦略の導入を継続する中で、クラウドでのデータ アクセス制御を革新、最新化し、合理化する方法を常に模索しています。 BMO は機密の財務データを蓄積しており、安全でパフォーマンスの高い分析環境を構築する必要がありました。厳格なサイバーセキュリティ要件に関連する銀行の主要な課題の XNUMX つは、個人識別情報 (PII)、ペイメント カード業界 (PCI)、および高プライバシー リスク (HPR) として分類されたデータに対してフィールド レベルの暗号化を実装することです。この安全なデータ分類を持つデータは、データ ウェアハウスとデータ レイクの両方に暗号化された形式で保存されます。必要な権限を持つユーザーのみがクリア テキストのデータにアクセスできます。

Amazonレッドシフト は、何万もの顧客が大規模な分析を管理するために使用しているフルマネージドのデータ ウェアハウス サービスです。 Amazon Redshift は、多要素認証に加えて、組み込みの ID 管理とシングル サインオン (SSO) のフェデレーションにより、業界をリードするセキュリティをサポートします。の AmazonRedshiftスペクトラム この機能により、Amazon Simple Storage Service への直接クエリが可能になります (アマゾンS3) データ レイクであり、多くの顧客がデータ プラットフォームを最新化するためにこれを使用しています。

AWSレイクフォーメーション は、データ レイクの構築、保護、管理を簡素化するフルマネージド サービスです。きめ細かいアクセス制御、タグ付け (タグベースのアクセス制御 (TBAC))、分析サービス全体の統合。これにより、データ カタログ オブジェクトのガバナンスが簡素化され、Amazon Redshift Spectrum などのサービスから安全なデータにアクセスできるようになります。

この投稿では、次を使用してソリューションを共有します Amazon Redshift ロールベースのアクセス制御 (RBAC) & AWS Lake Formation タグベース Amazon Redshift Spectrum を使用してデータレイクにクエリを実行するフェデレーションユーザーのアクセス制御。

使用事例

BMO には、次のように分類されたペタバイト (PB) を超える金融機密データがありました。

  1. 個人を特定できる情報(PII)
  2. ペイメントカード業界(PCI)
  3. 高プライバシー リスク (HPR)

この銀行は、Amazon Redshift データ ウェアハウスと Amazon S3 データ レイクにデータを保存することを目指しています。彼らは、販売、マーケティング、信用リスク、その他の事業分野やペルソナにわたる大規模で多様なエンド ユーザー ベースを持っています。

  1. ビジネスアナリスト
  2. データエンジニア
  3. データサイエンティスト

Amazon Redshift 上のデータと、Amazon Redshift Spectrum を使用してアクセスされるデータレイク データの両方に、きめ細かいアクセス制御を適用する必要があります。この銀行は次のような AWS サービスを活用しています。 AWSグルー & アマゾンセージメーカー この分析プラットフォーム上で。また、外部 ID プロバイダー (IdP) を使用して、優先ユーザー ベースを管理し、それをこれらの分析ツールと統合します。エンド ユーザーは、サードパーティの SQL クライアントとビジネス インテリジェンス ツールを使用してこのデータにアクセスします。

ソリューションの概要

この投稿では、PII、PCI、または HPR として分類されたデータを含む、BMO データによく似た合成データを使用します。ユーザーとグループは外部 IdP に存在します。これらのユーザーは、Amazon Redshift へのシングルサインオンのためにフェデレーションを使用します。 ネイティブ IdP フェデレーション。 Redshift ロールベースのアクセス制御 (RBAC) を使用して、ユーザー ロールの権限を定義します。 Amazon Redshift Spectrum を使用してデータレイク内のデータにアクセスするユーザーの場合、アクセス制御に Lake Formation ポリシーを使用します。

テクニカルソリューション

さまざまなカテゴリのデータを保護するという顧客のニーズを実現するには、複数の AWS IAM ロールを定義する必要があります。これには、IAM ポリシーと、アクセス許可の境界が変更された場合のポリシーの維持に関する知識が必要です。

この投稿では、事業分野やデータ分類ごとにロールを並べ替えたり組み合わせたりするのではなく、データ分類ごとに調整された最小限の数の Amazon Redshift AWS IAM ロールを使用して、データ分類ポリシーの管理を簡素化する方法を示します。他の組織 (金融サービス協会 [FSI] など) は、BMO によるデータ セキュリティとコンプライアンスの実装から恩恵を受けることができます。

このブログの一環として、データは Amazon S3 にアップロードされます。データへのアクセスは、対応する ID プロバイダー ユーザー グループに対して Redshift RBAC を使用して定義されたポリシーを使用して制御され、S3 上のデータに対して AWS Lake Formation を使用して TAG ベースのアクセス制御が実装されます。

ソリューションのアーキテクチャ

次の図は、ソリューションのアーキテクチャと詳細な手順を示しています。

  1. 次のようなグループを持つ IdP ユーザー lob_risk_public, Lob_risk_pci, hr_public, hr_hpr 外部 IdP (アイデンティティ プロバイダー) で割り当てられます。
  2. 各ユーザーは、IdP から送信される Amazon Redshift ローカル ロールにマッピングされます。 aad:lob_risk_pci, aad:lob_risk_public, aad:hr_public, aad:hr_hpr Amazon Redshift で。たとえば、次のメンバーである User1 は、 Lob_risk_public & hr_hpr それに応じてロールの使用が許可されます。
  3. 添付する iam_redshift_hpr, iam_redshift_pcipii, iam_redshift_public Amazon Redshift クラスターに対する AWS IAM ロール。
  4. s3 上にバックアップされた AWS Glue データベース (例: lobrisk,lobmarket,hr およびそれぞれのテーブル) は Amazon Redshift で参照されます。 Amazon Redshift Spectrum を使用すると、これらの外部テーブルとデータベース (例: external_lobrisk_pci, external_lobrisk_public, external_hr_public, external_hr_hpr)、AWS IAM ロールを使用して作成されます iam_redshift_pcipii, iam_redshift_hpr, iam_redshift_public 解決策の手順に示されているように。
  5. AWS Lake Formation は、外部スキーマとテーブルへのアクセスを制御するために使用されます。
  6. AWS Lake Formation タグを使用して、AWS IAM ロール (例: iam_redshift_hpr, iam_redshift_pcipii, iam_redshift_public).
  7. 最後に、これらの外部スキーマの使用を Amazon Redshift ロールに付与します。

チュートリアル

次のセクションでは、合成データを使用したソリューションの実装について説明します。

データ ファイルをダウンロードし、ファイルをバケットに配置します

Amazon S3 は、AWS 上でスケーラブルで耐久性のあるデータレイクとして機能します。 Data Lake を使用すると、CSV、JSON、PARQUET、ORC などのオープン形式のデータを Amazon S3 に取り込み、データの分析を実行できます。

このソリューションは、PCI、PII、HPR、またはパブリックとして分類された情報を含む CSV データ ファイルを利用します。以下のリンクを使用して入力ファイルをダウンロードできます。ダウンロードしたファイルを使用して、以下のスクリーンショットに示すようにフォルダーとファイルを作成し、指示に従って Amazon S3 にアップロードします。 こちら。各ファイルの詳細を次のリストに示します。

クローラーを使用してファイルを AWS Glue データカタログに登録します

次の手順では、クローラを使用して AWS Glue データ カタログにダウンロードしたファイルを登録する方法を示します。次の手順に従って、AWS Glue データ カタログを使用してファイルをデータベースとテーブルに整理します。ドキュメントを参照して、適切なセットアップ方法を学ぶことをお勧めします。 AWSGlueデータベース。クローラーを使用すると、ダウンロードしたファイルをカタログに登録するプロセスを、手動で行うのではなく自動化できます。 AWS Glue データ カタログに次のデータベースを作成します。

  • lobrisk
  • lobmarket
  • hr

AWS Glue データベースを作成する手順の例 lobrisk データは次のとおりです。

  • に行きます AWS Glue コンソール.
  • 次に、 データベースデータカタログ.
  • 選択する データベースを追加する データベースの名前を次のように入力します ロブリスク.
  • 選択 データベースを作成する、次のスクリーンショットに示すように。

次のような他のデータベースを作成する手順を繰り返します。 lobmarket & hr.

AWS Glue クローラーは上記のファイルをスキャンし、それらに関するメタデータを AWS Glue データ カタログにカタログします。 Glue データ カタログは、この Amazon S3 データをテーブルとデータベースに編成し、列とデータ型を割り当てて、Amazon Redshift Spectrum が理解できる SQL を使用してデータをクエリできるようにします。を確認してください。 AWS Glue のドキュメント Glue Crawler の作成について。 AWS Glue クローラーの実行が完了すると、次のそれぞれのデータベースとテーブルが表示されます。

  • lobrisk
    • lob_risk_high_confidential_public
    • lob_risk_high_confidential
  • lobmarket
    • credit_card_transaction_pci
    • credit_card_transaction_pci_public
  • hr
    • customers_pii_hpr_public
    • customers_pii_hpr

AWS Glue クローラーを作成する手順の例 lobrisk データは次のとおりです。

  • 選択 Crawlersデータカタログ AWS Glue コンソールで。
  • 次に、 クローラーを作成する。クローラー名を次のように指定します。 lobrisk_crawler 選択して Next.

データソースを必ず選択してください アマゾンS3 そして、Amazon S3 パスを参照して、 lob_risk_high_confidential_public フォルダーを選択し、Amazon S3 データ ソースを選択します。

  • クローラーは、Amazon S3 内の複数のフォルダーをクロールできます。選ぶ データ ソースを追加する パスを含めます S3://<<Your Bucket >>/ lob_risk_high_confidential.

  • 別の Amazon S3 フォルダーを追加した後、選択します Next.

  • 次に、新しいものを作成します IAMの役割 セクションに 構成のセキュリティ 設定を行います。
  • 選択する Next.

  • ターゲットデータベースを次のように選択します lobrisk。 選択してください Next.

  • 次に、 レビュー、選択する クローラーを作成する.
  • 選択 クローラーを実行。これにより、次の 2 つのテーブルが作成されます。 lob_risk_high_confidential_public & lob_risk_high_confidential データベースの下で lobrisk.

同様に、AWS Glue クローラーを作成します。 lobmarket & hr 上記の手順を使用してデータを作成します。

AWS IAM ロールを作成する

AWS IAM を使用して、Amazon Redshift、Amazon S3、AWS Glue、および AWS Lake Formation のアクセス許可を持つ次の IAM ロールを作成します。

このリンクを使用して、このサービスで AWS IAM ロールを作成できます。後で、管理ポリシーを次の IAM ロールにアタッチできます。

  • iam_redshift_pcipii (Amazon Redshift クラスターにアタッチされた AWS IAM ロール)
    • AmazonRedshiftFullAccess
    • AmazonS3FullAccess
    • 次のように、Lake Formation 権限のインライン ポリシー (Lakeformation-inline) を追加します。
      {
         "Version": "2012-10-17",
          "Statement": [
              {
                  "Sid": "RedshiftPolicyForLF",
                  "Effect": "Allow",
                  "Action": [
                      "lakeformation:GetDataAccess"
                  ],
                  "Resource": "*"
              }
          ]

    • iam_redshift_hpr (Amazon Redshift クラスターにアタッチされた AWS IAM ロール): 次の管理対象を追加します。
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • 前に作成したインライン ポリシー (Lakeformation-inline) を追加します。
    • iam_redshift_public (Amazon Redshift クラスターにアタッチされた AWS IAM ロール): 次の管理ポリシーを追加します。
      • AmazonRedshiftFullAccess
      • AmazonS3FullAccess
      • 前に作成したインライン ポリシー (Lakeformation-inline) を追加します。
    • LF_admin (Lake Formation 管理者): 次の管理ポリシーを追加します。
      • AWSLakeFormationDataAdmin
      • AWSLakeFormationCrossAccountManager
      • AWSGlueConsoleFullAccess

Lake Formation タグベースのアクセス制御 (LF-TBAC) を使用して、AWS Glue データ カタログ テーブルへのアクセス制御を行います。

LF-TBAC は、属性に基づいて権限を定義する認可戦略です。使用する LF_admin Lake Formation 管理者の場合、次の詳細で説明されているように、LF タグを作成できます。

キー
分類:HPR いいえはい
分類:PCI いいえはい
分類:PII いいえはい
分類 鈍感な、敏感な

Lake Formation タグを作成するには、次の手順に従ってください。

  • Lake Formation コンソールにログインします (https://console.aws.amazon.com/lakeformation/) LF-Admin AWS IAM ロールを使用します。
  • に行く LFタグと権限 in 権限セクション.
  • 選択 LFタグを追加.

  • 前の表の指示に従って、残りの LF タグを作成します。作成したら、以下に示すように LF タグが見つかります。

LF-TAG を AWS Glue カタログテーブルに割り当てる

Lake Formation タグをテーブルに割り当てるには、通常、構造化されたアプローチが必要です。 Lake Formation 管理者は、データ ソース、データ タイプ、ビジネス ドメイン、データ所有者、データ品質などのさまざまな基準に基づいてタグを割り当てることができます。 LF タグをデータベース、テーブル、列などの Data Catalog 資産に割り当てることができるため、リソース アクセスを効果的に管理できます。これらのリソースへのアクセスは、対応する LF タグが与えられたプリンシパル (または名前付きリソース アプローチを通じてアクセスを許可されたプリンシパル) に制限されます。

与えられたリンクの指示に従って、LF-TAGS を Glue に割り当てます データカタログテーブル:

接着剤カタログ表 キー
customers_pii_hpr_public Classification 非敏感な
customers_pii_hpr 分類:HPR はい
credit_card_transaction_pci 分類:PCI はい
credit_card_transaction_pci_public 分類 非敏感な
lob_risk_high_confidential_public 分類 非敏感な
lob_risk_high_confidential 分類:PII はい

以下の手順に従って、AWS コンソールから LF タグを Glue テーブルに割り当てます。

  • Lake Formation コンソールのデータベースにアクセスするには、 データカタログ セクションと選択 データベース.
  • 現在地に最も近い ロブリスク データベースを選択してください テーブルの表示.
  • 選択 lob_risk_high_confidential テーブルを編集して、 LFタグ.
  • 割り当て 分類:HPR as 割り当てられたキー および値として 有り。 選択する Save.

  • 同様に、分類を割り当てます キー & にとっては非敏感なものとして、 lob_risk_high_confidential_public 列で番号の横にあるXをクリックします。

上記の手順に従って、残りのテーブルにテーブルを割り当てます。 lobmarket & hr データベース。

Redshift IAM ロールへの LF-Tag 式付与を使用してリソースにアクセス許可を付与する

グラント select, 説明する Lake Formation コンソールで Lake Formation Administrator を使用した LF-Tags および Redshift IAM ロールに対する Lake Formation 権限。付与するには、次の手順に従ってください。 ドキュメント.

次の表を使用して、対応する IAM ロールを LF タグに付与します。

IAMの役割 LFタグキー LFタグの値 許可
iam_redshift_pcipii 分類:PII はい 説明、選択
. 分類:PCI はい .
iam_redshift_hpr 分類:HPR はい 説明、選択
iam_redshift_public 分類 非敏感な 説明、選択

以下の手順に従って、LF タグと IAM ロールに権限を付与します。

  • 選択する データレイクの許可 in 権限 AWS Lake Formation コンソールのセクション。
  • 選択する 補助金。 選択する IAMユーザー と役割 プリンシパル.
  • LF タグまたはカタログ リソースで選択します キー as Classifications & as non-sensitive.

  • 次に、 テーブルのアクセス許可 as 選択して説明する。 選択してください 助成.

前の表に示すように、残りの LF タグとその IAM ロールについては、上記の手順に従ってください。

IdP ユーザー グループを Redshift ロールにマッピングする

Redshift では、ネイティブ IdP フェデレーションを使用して、IdP ユーザー グループを Redshift ロールにマッピングします。使用 クエリ エディター V2.

create role aad:rs_lobrisk_pci_role;
create role aad:rs_lobrisk_public_role;
create role aad:rs_hr_hpr_role;
create role aad:rs_hr_public_role;
create role aad:rs_lobmarket_pci_role;
create role aad:rs_lobmarket_public_role;

外部スキーマの作成

Redshift で、AWS IAM ロールと AWS Glue Catalog データベースを使用して外部スキーマを作成します。外部スキーマは、次を使用してデータ分類に従って作成されます。 iam_role.

create external schema external_lobrisk_pci
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_hr_hpr
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_hpr';

create external schema external_lobmarket_pci
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_pcipii';

create external schema external_lobrisk_public
from data catalog
database 'lobrisk'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_hr_public
from data catalog
database 'hr'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

create external schema external_lobmarket_public
from data catalog
database 'lobmarket'
iam_role 'arn:aws:iam::571750435036:role/iam_redshift_public';

テーブルのリストを確認する

各外部スキーマ内のテーブルのリストを確認します。各スキーマには、Lake Formation が許可したテーブルのみがリストされます。 IAM_ROLES 外部スキーマの作成に使用されます。以下は、左上にある Redshift query edit v2 出力のテーブルのリストです。

外部スキーマの使用を異なる Redshift ローカル ロールに付与する

Redshift では、次のように、外部スキーマの使用をさまざまな Redshift ローカル ロールに付与します。

grant usage on schema external_lobrisk_pci to role aad:rs_lobrisk_pci_role;
grant usage on schema external_lobrisk_public to role aad:rs_lobrisk_public_role;

grant usage on schema external_lobmarket_pci to role aad:rs_lobmarket_pci_role;
grant usage on schema external_lobmarket_public to role aad:rs_lobmarket_public_role;

grant usage on schema external_hr_hpr_pci to role aad:rs_hr_hpr_role;
grant usage on schema external_hr_public to role aad:rs_hr_public_role;

外部スキーマへのアクセスを検証する

Lob Risk チームのユーザーを使用して、外部スキーマへのアクセスを確認します。ユーザー lobrisk_pci_user Amazon Redshift ローカルロールに統合される rs_lobrisk_pci_role. 役割 rs_lobrisk_pci_role 外部スキーマにのみアクセスできます external_lobrisk_pci.

set session_authorization to creditrisk_pci_user;
select * from external_lobrisk_pci.lob_risk_high_confidential limit 10;

テーブルへのクエリ時 external_lobmarket_pci スキーマを確認すると、アクセス許可が拒否されたことがわかります。

set session_authorization to lobrisk_pci_user;
select * from external_lobmarket_hpr.lob_card_transaction_pci;

BMO の自動アクセス プロビジョニング

私たちは銀行と協力して、銀行がユーザーとユーザーがアクセスできるデータの中央リポジトリを作成できるようにするアクセス プロビジョニング フレームワークを開発しました。ポリシー ファイルは Amazon S3 に保存されます。ファイルが更新されると処理され、メッセージが配置されます。 アマゾンSQS。 AWS Lambdaの使用 データAPI Amazon Redshift ロールにアクセス制御を適用するために使用されます。同時に、 AWSラムダ は、AW​​S Lake Formation でタグベースのアクセス制御を自動化するために使用されます。

このモデルを採用することの利点は次のとおりです。

  1. 変更するポリシーを動的に適用できるようにする、スケーラブルな自動化プロセスを作成しました。
  2. 既存のエンタープライズ アクセス管理を使用して、ユーザー アクセスのオンボーディングと処理を合理化しました。
  3. 各事業部門が所有する機密データへのアクセスを制限し、企業レベルで顧客のデータとプライバシーを保護できるようにします。
  4. 必要なロールの数を大幅に削減することで、AWS IAM ロールの管理とメンテナンスを簡素化しました。

最近リリースされた Amazon Redshift と AWS ID センターの統合により、AWS サービス全体での ID 伝播が可能になり、これを簡素化および拡張するために活用できます。 実装.

まとめ

この投稿では、Amazon Redshift で機密性の高い顧客データに対する堅牢なアクセス制御を実装する方法を説明しました。これは、多くの個別の AWS IAM ロールを定義しようとするときに困難でした。この投稿で紹介するソリューションは、ビジネス分野ではなくデータ分類ごとに編成された AWS IAM ロールの最小限のセットを使用して、組織が統合アプローチでデータセキュリティとコンプライアンスのニーズにどのように対応できるかを示しています。

Amazon Redshift と外部 IdP のネイティブ統合を使用し、Redshift と AWS Lake Formation の両方で RBAC ポリシーを定義することにより、過剰な数の個別のロールを作成することなく、きめ細かいアクセス制御を適用できます。これにより、管理オーバーヘッドを最小限に抑えながら、ロールベースのアクセスの利点が得られます。

顧客データの保護とコンプライアンス規制への準拠を目指す他の金融サービス機関も、同様の統合された RBAC アプローチに従うことができます。ビジネス機能ではなくデータの機密性に合わせて慎重にポリシーを定義すると、AWS IAM ロールの急増を減らすことができます。このモデルは、Amazon Redshift およびより広範なクラウド データ プラットフォームの機密データのガバナンスのために、セキュリティ、コンプライアンス、管理性のバランスをとります。

つまり、データ分類に基づく集中型 RBAC モデルは、堅牢なデータ セキュリティとコンプライアンスを提供しながら、アクセス管理を合理化します。このアプローチは、機密性の高い顧客情報をクラウドで管理するあらゆる組織にメリットをもたらします。


著者について

エイミー・ツェン BMO のデータおよび分析 (DnA) 統合担当マネージング ディレクターです。彼女は AWS データヒーローの 7 人です。彼女は、AWS でのデータおよび分析クラウドの移行に XNUMX 年以上の経験があります。仕事以外では、エイミーは旅行とハイキングが大好きです。

ジャックリン BMO のデータ プラットフォームのエンジニアリング ディレクターです。彼はプラットフォーム エンジニアリングとソフトウェア エンジニアリングの分野で 20 年以上の経験があります。仕事以外では、ジャックはサッカーをしたり、サッカーの試合を観たり、旅行したりすることが大好きです。

レジス・チョウ BMO の DnA Integration ディレクターです。彼はクラウドで 5 年以上働いた経験があり、AWS のイノベーションを通じて問題を解決することに楽しんでいます。仕事以外では、レジスはアウトドア全般が大好きで、特にゴルフと芝生の手入れに情熱を注いでいます。

ニシュチャイJM アマゾンウェブサービスのアナリティクススペシャリストソリューションアーキテクトです。 彼はビッグデータアプリケーションの構築を専門としており、顧客がクラウド上でアプリケーションを最新化するのを支援しています。 彼は、データは新しい石油であると考えており、ほとんどの時間をデータから洞察を引き出すことに費やしています。

ハルシダ・パテル AWS による分析のプリンシパル ソリューション アーキテクトです。

ラグー・クッパラ は、データベース、データ ウェアハウジング、および分析分野での勤務経験のある分析スペシャリスト ソリューション アーキテクトです。 仕事以外では、さまざまな料理を試したり、家族や友人と時間を過ごすことを楽しんでいます。

スポット画像

最新のインテリジェンス

スポット画像