セキュアなデータメッシュを実現するSaaS「Cyral」を試してみた

本記事ではデータセキュリティとガバナンスのSaaS、Cyralを試していきます。

データメッシュとは、今までデータウェアハウスやデータレイクに一元管理していたデータ基盤ではなく、個々の組織のニーズにあったDBやサービスをそれぞれが管理し、お互いに連携させるという分散型データ基盤の考え方です。原文ではドメイン駆動やマイクロサービス的な表現が見られるので、その辺りが起源となっているアプローチですね。

参照:一元型データモノリスの解決策としての分散型データメッシュ

Cyralについて

Cyralは、2018年にカルフォルニア州で創業されたスタートアップ、データクラウドの管理やセキュリティに関するSaaSを開発・提供しています。投資ラウンドは現在シリーズBまで進み、2021年5月には$26Mの資金調達に成功しています。

Cyral Closes $26 Million in New Financing as Customer Demand Soars - Cyral

Cyralが提供するSaaS「Cyral Platform」は、企業が構築するデータメッシュに対して、強固なセキュリティとガバナンスを導入するためのサービスです。Cyralを導入することで、SQLやパイプラインの一元的なモニタリングや、SSOと連動したデータベースへのアクセス権限のコントロールが可能になります。対応している他サービスとのインテグレーション数も豊富なため、データメッシュを構成する各サービスを繋げるセキュリティハブとして使えそうですね。

Cyralは14日間のフリートライアルが可能です。Quickstartも公開されているので、さっそくアカウントを作成して試してみました。

CyralとPostgresSQLを接続してみた

公式サイトよりFree Trialをクリックし、ユーザー情報を入力します。

登録したメールへ認証リンクが送信されてくるのでクリックします。以下のページに遷移し、プロビジョニングが開始します。

プロビジョニング完了後、送信されてメールのリンクをクリックするとパスワード設定画面が表示されます。

最初にチュートリアルの画面が何枚か表示されますが、全部スキップすると最終的にホーム画面に到着します。まずはデータベース接続を設定していきたいので、左メニューのData Reposをクリックします。

+をクリックして新規追加を行います。

今回は、パブリックアクセス可能なRDS PostgreSQLに対して接続設定を行なっていきます。ここでは、エンドポイントとポートのみ入力すればOKです。

ちなみにこのRDSには、事前にPostgreSQL サンプルのデータベースを用意する | DevelopersIOの手順に沿って、以下のdvdrentalサンプルデータを構築しています。

続いて、左メニューでSidecarsをクリックし、+をクリックしてSidecarのセットアップを行なっていきます。Sidecarとは、ユーザー所有のAWS環境に構築するEC2インスタンス+αのことで、Data repositoryとして設定したデータソースに出入りするトラフィックの監視を行います。

デプロイの方法としてはTerraform、CloudFormation、Helmの3種類あり、それぞれに手順が書いてあります。今回はCloudFormation使ってセットアップしていきます。

まずは画面下部にあるGENERATE TEMPLATEをクリックし、CloudFormationのテンプレートを作成します。

特にSidecarインスタンスに対してSSH接続する予定はありませんが、念のためAWS Key pair nameには、Sidecarのインスタンスに使用する既存のKey Pairを指定してください。その他は任意で構いません。GENERATEをクリックしてテンプレートをダウンロードします。このCloudFormationテンプレートでは、主にEC2やELB、Lambdaが含まれています。検証後の消し忘れにはご注意ください。

ログイン済みのAWSアカウントからCloudFormationの画面に行き、先ほどのテンプレートをアップロードしてください。以下のパラメータ設定の画面が表示されますが、主にVPC関連の設定だけ気をつけていれば、あとはデフォルトで大丈夫です。

CloudFormation Stackの構築が完了すると、CyralのSidecarsの画面に、新たなSidecarが追加されています。続いて、このSidecarとData repositoryの紐付けを行います。追加されたSidecarをクリックします。

Sidecarの詳細画面が表示されます。Data Repositoriesのタブのまま、右端の+をクリックします。

先ほどのharuta-demoのData Repositoryを選択し、TRACKをクリックすれば紐付け完了です。

その後、CloudFormationのOutputで出力されているELBのエンドポイントに向けて、何かしらのSQLクライアント(psqlコマンドや、DBeaver)から接続すると、Sidecarsの画面側にもSidecar Endpointが反映されるようになります。

接続関連のセットアップは以上です。

Cyralの機能を一通り触ってみた

左メニューのAlertsでは、実行されたクエリがタイプごとに分かれており、不審な挙動がないかパッと確認することが可能です。

ログの可視化にKibanaを使用おり、左メニューのLogsをクリックすると別タブでKibanaのコンソールが立ち上がります。

KibanaでDiscoverを確認すると、こちらにもログが送信されていることが確認できます。詳細分析に便利そう。

DashboardにもCyralのテンプレートが用意されていますが、こちらはsandbox-sidecarに対して構築されているDashboardでした。sandbox-sidecarに何回がリクエストを投げると表示されるようになりますね。

Cyralの画面に戻ります。左メニューのMetricsはGrafanaと連動しており、DBのパフォーマンスなどを測定することができます。

Cyralは各種サービスとのインテグレーションも豊富で、SlackやTeamsでアラートを実施したり、OktaやAzure ADと連携し、SSOでDB接続も可能です。

ユーザー権限周りはかなりシンプルな作りです。そもそもSSOの連携を想定しているような印象ですね。

画面右上のMANAGE ROLESADD NEW ROLEで、Roleの詳細設定も可能です。こちらでSSOのユーザー情報とRoleを紐づけることができます。

他にも細かな機能は存在してそうですが、本ブログでの紹介は以上とします!

所感

実際触ってみたCyralの印象としては、製品としてのクセはあまりなく、メジャーなSaaSやマネージドサービス、OSSをうまく組み合わせているなという感じです。"Secure Your Data Mesh"と謳っている通り、Data Meshの構成要素を繋げるハブ的な存在として機能しそうですね。Sidecarなどに関してはユーザー側にセットアップと管理を委ねている、というDIYな部分には注意が必要です。

本アドベントカレンダーでは、今話題のデータ関連SaaSを取り上げていきますので、引き続き乞うご期待ください!