Azure Purviewのマルチクラウドスキャンコネクタを使ってAmazon RDSのデータカタログを管理する

2021.11.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

先日、PurviewからAmazon S3へ接続し、マルチクラウドなデータカタログ管理を行ってみました。

Microsoft Ignite 2021のタイミングでAmazon RDSへの接続機能もプレビュー公開されており、接続方法なども全く異なるので本日はこちらを試してみたいと思います。

アーキテクチャ

S3バケットへ接続する際は、パブリックアクセスでIAMロールでの制御を行っていました。

下記引用元にて言及されていますが、Purviewの接続にあたりRDSに対してパブリックアクセスは現在サポートされていません。
構成の際はNLBを作成しPrivateLinkを使って、Microsoft側で管理されるAWSアカウントからの接続を許可する形となります。

対応しているデータベースエンジンはPostgreSQLとMicrosoft SQL Serverです。
また、データベースへの認証はパスワード認証のみとなっています。

引用元:Amazon RDS Multi-cloud scanning connector for Azure Purview - Azure Purview | Microsoft Docs

AWSリソースの構成

今回は、RDS for PostgreSQLで検証をしたいと思います。
サンプルデータベースは以下を参考に公式サンプルのdvdrentalを事前に構築済みとします。

その後NLBを作成し、RDSをIPアドレスでターゲット指定しエンドポイントサービスを作成します。

エンドポイントサービスの設定では、承諾が必要をOFFにし、arn:aws:iam::181328463391:rootを許可するプリンシパルとして追加します。

Azure側でのPurview接続設定

データマップでデータソースの登録を行います。
Amazon RDS PostgreSQLを選択します。

通常のPostgreSQLクライアントから接続するときと同様の接続情報を設定します。
ただし、PrivateLinkのエンドポイントサービスの接続情報がこのタイミングで必要になるので、先程構成したエンドポイントサービスから情報を取得します。

まだ設定が必要で、S3と異なりパスワード認証が必要になります。
Azure側でAWSの秘匿情報を扱うため、Azure Key Vaultコンテナーへパスワードを保存し、Purview側から利用します。

Purview側から利用するため、キーコンテナーのプリンシパルにはPurviewアカウントの指定が必要です。

あとはデータベースユーザー名とデータベース名、先程作成したキーコンテナーを指定すれば設定は完了です。

スキャン&データカタログ確認

では早速スキャンしてみたいと思います。
スキャンルールはAmazonPostgreSQL用のデフォルトルールを使用します。
また、スキャンルールやトリガーについては前回確認したS3で設定可能なものと内容に差異は無さそうだったので詳細は割愛します。

データカタログが確認出来ました。
また、前回はS3のCSVファイルだったので全てStringでしたが、今回はデータベースの定義にあわせてData typeが取得されています。
分類も機能していますね。

テーブルだけでなくビューも取得されることを発見しました。
ビューの場合は定義内容についても確認することが出来ます。
これは素晴らしい。

サンプルデータベースを使ったのでテーブル数がそれなりにあり、前回よりも検索機能のメリットを実感することが出来ました。
やはりフィールドの検索機能はかなり便利です。

まとめ

本日はAzure Purviewを使って、Amazon RDSへ接続を行いました。
構築手順としては、AWS側ではPrivateLinkの設定、Azure側ではAzure Key Vaultの設定が必要で、前回確認したS3よりもかなり手順が面倒でした。
データカタログではテーブルだけでなくビューまで管理することが出来るのはとても良いです。

また、Microsoft側のAWSアカウントからのアクセスを全面的に信頼する必要があるので、その点をどこまで許容出来るか?という点は導入にあたってよく議論が必要だなと思います。