こんにちは、CData Software Japan エンジニアの宮本です。
GCE のVMインスタンスでは、インスタンスごとにアクセススコープを設定できるのはご存知でしょうか。以下のようにインスタンスからGCP 上のサービスにアクセスできる範囲を設定することができるようになっています。
これまでCData からBigQuery などへの接続時には、ユーザーごとのOAuth認証、もしくはサービスアカウントを使用して、その中でアクセス制御を行っていましたが、新たにインスタンスごとに設定したアクセススコープを使用して接続できる「GCPInstance認証」というものが追加されました。
これによりアカウントごとのアクセス権ではなく、VM インスタンスごとに設定したアクセス制御を使ってCData 製品から接続できるようになりました。
では、この 「GCPInstance認証」でCData Sync からBigQuery に接続してみることを今回やってみます。
GCE のアクセススコープ設定
今回は作成済みのWindows VM を使用してアクセススコープを設定していきます。ちなみに、このアクセススコープはVMを作成したときか、VM 停止中に設定することができます。
いまの状態は全てのGCP サービスにアクセスできる状態になっていますので、
「各APIにアクセス権を設定」を選択します。デフォルトではBigQuery への接続が「なし」の状態になっていますので、BigQuery をクリックして「有効」にして保存します。
CData Sync からBigQuery への接続
BigQuery の接続設定画面を開きます。
Auth Schema のプルダウンに「GCPInstanceAccount」が表示されますので選択します。それ以外にはプロジェクトID、データセットも入力します。
アカウント情報を入力します。
CDataSyncからのアクセスを許可します。
Success! と表示されればこれで接続完了です。「Save Changes」ボタンで接続情報を保存します。
これで、VMインスタンスでのアクセススコープが反映される接続情報となりました。
ちなみに画面での認証をせず、そのサービスアカウントで認証を行う場合には、以下の方法で行います。
インスタンスをクリックして表示されているサービスアカウントを確認します。
対象のサービスアカウントの秘密鍵を作成します。
「鍵を作成」をクリックします。
キーのタイプはどちらでも使用できますが、推奨となっているJSONで作成します。
CDataSync のBigQueryの接続設定を開き、Advancedタブの下記項目にそれぞれダウンロードしたjsonファイルのパスやサービスアカウント名を入力します。
設定値についての説明はこちらを参照してください。
www.cdatablog.jp
VMでBigQuery への接続を許可しないした場合
では早速設定を変更してみましょう。まずはVM を停止させます。
停止させたら、VM編集画面にてBigQuery へのアクセスをなしに設定し保存します。
VMを起動し、CData Sync で先ほど作成したBigQuery の接続情報を開きます。
開いたら、右下の「Reset Connection」を押して接続情報を再作成します。
また同じようにアクセス許可を行います。
すると、想定通り403でアクセス権限エラーが発生しました。
おわりに
いかがでしたでしょうか。これでVM インスタンスごとにアクセススコープを設定したものをCData Sync で使えることが確認できました。今回はCData Sync を使用しましたが、ドライバーの場合でも同じように「GCPInstanceAccount」を利用できますので、OAuth、サービスアカウント以外でアクセス権限を設定した場合にご利用ください。