セキュアなデータメッシュを実現する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 ROLES
→ ADD NEW ROLE
で、Roleの詳細設定も可能です。こちらでSSOのユーザー情報とRoleを紐づけることができます。
他にも細かな機能は存在してそうですが、本ブログでの紹介は以上とします!
所感
実際触ってみたCyralの印象としては、製品としてのクセはあまりなく、メジャーなSaaSやマネージドサービス、OSSをうまく組み合わせているなという感じです。"Secure Your Data Mesh"と謳っている通り、Data Meshの構成要素を繋げるハブ的な存在として機能しそうですね。Sidecarなどに関してはユーザー側にセットアップと管理を委ねている、というDIYな部分には注意が必要です。
本アドベントカレンダーでは、今話題のデータ関連SaaSを取り上げていきますので、引き続き乞うご期待ください!