CData Software Blog

クラウド連携のCData Software の技術ブログです。

GCEインスタンスのアクセススコープを使用してBigQuery へのアクセス制御を試してみる:CData Sync

こんにちは、CData Software Japan エンジニアの宮本です。

GCE のVMインスタンスでは、インスタンスごとにアクセススコープを設定できるのはご存知でしょうか。以下のようにインスタンスからGCP 上のサービスにアクセスできる範囲を設定することができるようになっています。
f:id:sennanvolar44:20201228064518p:plain

これまでCData からBigQuery などへの接続時には、ユーザーごとのOAuth認証、もしくはサービスアカウントを使用して、その中でアクセス制御を行っていましたが、新たにインスタンスごとに設定したアクセススコープを使用して接続できる「GCPInstance認証」というものが追加されました。
これによりアカウントごとのアクセス権ではなく、VM インスタンスごとに設定したアクセス制御を使ってCData 製品から接続できるようになりました。

では、この 「GCPInstance認証」でCData Sync からBigQuery に接続してみることを今回やってみます。

f:id:sennanvolar44:20201228145644p:plain

GCE のアクセススコープ設定

今回は作成済みのWindows VM を使用してアクセススコープを設定していきます。ちなみに、このアクセススコープはVMを作成したときか、VM 停止中に設定することができます。

いまの状態は全てのGCP サービスにアクセスできる状態になっていますので、
f:id:sennanvolar44:20201228065920p:plain

「各APIにアクセス権を設定」を選択します。デフォルトではBigQuery への接続が「なし」の状態になっていますので、BigQuery をクリックして「有効」にして保存します。
f:id:sennanvolar44:20201228070243p:plain

CData Sync からBigQuery への接続

BigQuery の接続設定画面を開きます。
Auth Schema のプルダウンに「GCPInstanceAccount」が表示されますので選択します。それ以外にはプロジェクトID、データセットも入力します。
f:id:sennanvolar44:20201228135018p:plain

アカウント情報を入力します。 f:id:sennanvolar44:20201228140919p:plain

CDataSyncからのアクセスを許可します。
f:id:sennanvolar44:20201228141058p:plain

Success! と表示されればこれで接続完了です。「Save Changes」ボタンで接続情報を保存します。
f:id:sennanvolar44:20201228141213p:plain

これで、VMインスタンスでのアクセススコープが反映される接続情報となりました。

ちなみに画面での認証をせず、そのサービスアカウントで認証を行う場合には、以下の方法で行います。

インスタンスをクリックして表示されているサービスアカウントを確認します。
f:id:sennanvolar44:20210218142120p:plain

対象のサービスアカウントの秘密鍵を作成します。
f:id:sennanvolar44:20210218142139p:plain

「鍵を作成」をクリックします。
f:id:sennanvolar44:20210218142159p:plain

キーのタイプはどちらでも使用できますが、推奨となっているJSONで作成します。
f:id:sennanvolar44:20210218142211p:plain

CDataSync のBigQueryの接続設定を開き、Advancedタブの下記項目にそれぞれダウンロードしたjsonファイルのパスやサービスアカウント名を入力します。
f:id:sennanvolar44:20210218142231p:plain

設定値についての説明はこちらを参照してください。
www.cdatablog.jp

VMでBigQuery への接続を許可しないした場合

では早速設定を変更してみましょう。まずはVM を停止させます。
停止させたら、VM編集画面にてBigQuery へのアクセスをなしに設定し保存します。
f:id:sennanvolar44:20201228142045p:plain

VMを起動し、CData Sync で先ほど作成したBigQuery の接続情報を開きます。
開いたら、右下の「Reset Connection」を押して接続情報を再作成します。
f:id:sennanvolar44:20201228143216p:plain

また同じようにアクセス許可を行います。
f:id:sennanvolar44:20201228143827p:plain

すると、想定通り403でアクセス権限エラーが発生しました。
f:id:sennanvolar44:20201228143914p:plain

おわりに

いかがでしたでしょうか。これでVM インスタンスごとにアクセススコープを設定したものをCData Sync で使えることが確認できました。今回はCData Sync を使用しましたが、ドライバーの場合でも同じように「GCPInstanceAccount」を利用できますので、OAuth、サービスアカウント以外でアクセス権限を設定した場合にご利用ください。