はじめに
Google Sheets Drivers では、デフォルトでOAuth認証の利用ができます。アクセスがシンプルな為、手間が少なく便利なプロセスです。
ただ、Linuxを利用してコマンドからログインする方や、IDやパスワードを認証時に使用したくない方は違う方法の方がいいですよね。
本記事では、そんな方々に向けて、サイレントに認証を行うことができる「サービスアカウント認証」の方法についてご紹介いたします。
手順
1.Google Cloud のアカウント作成
※2023年10月3日時点でのサービスアカウントの作成方法になります。
GCPのUIは頻繁に変更するため、注意してください。
それでは、GCPのサービスアカウントを作成していきましょう!
1.1 まずは、GCPにアクセスします。
https://cloud.google.com/?hl=ja
1.2 GCPにログインして、「IAMと管理」→「サービスアカウント」のへ移動します。
1.3 「+サービスアカウントを作成」をクリックします。
1.4 サービスアカウントの詳細から、「サービスアカウント名」、「サービスアカウントID(メールアドレス)」を決めて、作成して続行します。
1.5 アカウントにロールを付与します。
1.6 最後に「完了」をクリックして、サービスアカウントを作成することができます。
2. 秘密鍵の作成
次に、サービスアカウントを用いた認証を行うためのキーを作成していきます。
2.1 サービスアカウントの「操作」から「鍵を管理」を選択します。
2.2 「鍵を追加▼」→「新しい鍵を作成」をクリックします。
2.3 秘密鍵の作成画面が出てきますので、JSONを選択します。GCPででは、JSON・P12の2種類の方法でサービスアカウント用キーが提供されていますが、現在はJSONキーが推奨されています。
2.4 作成をクリックすると、JSONファイルがダウンロードされます。秘密鍵作成後、下記のように表示されます。(以前は、パスワード指定する箇所があったようですが、2023/10/03時点ではなくなっていました)
3. Google Drive API を有効にする
Google Drive APIを有効にする必要があります。「有効にする」をクリックしてください。
Google Drive API – APIs & Services – Google Cloud console
有効が完了すると、Google Drive API のサービスの詳細画面に移ります。
以上で、GCPサービスアカウント側の準備は完了です。
4. CData Driverでサービスアカウント認証を行う
ここからは、Google Sheets ODBC Driverの認証を行っていきます。
※今回は、CData ODBC Driver を用いていますが、JDBC Driver やADO.NET Provider でやっても同様です。
4.1 ODBC データソースアドミニストレーター(64ビット)を開き、システムDSNで「CData GoogleSheets Sys」を選択して、構成をクリックします。
4.2 次に、必須項目を入力します。
・Auth Scheme:OAuth JWT
・OAuth JWT Cert Type:ダウンロードしたJSONファイルの秘密鍵のパス※
・OAuth JWT Cert Type:GOOGLEJSON
4.3 「接続テスト」を実行して、接続テストが成功したら「OK」を押します。
4.4 続けて、下記も閉じずに「OK」してください。
これで、サービスアカウントによる認証は完了です!
あとは、お好みのツール・データベースなどからアクセスすることができます。
CData Sync やCData API Server で使用する場合
このサービスアカウント認証はCData Sync やCData API Server などでも同様に行うことができます。
例えば、CData Sync を例にしてみます。
接続をつくる際に、下記のような必須項目が出てくるので、入力を行っていただいて、「保存およびテスト」を行います。
・Auth Scheme:OAuth JWT
・OAuth JWT Cert Type:ダウンロードしたJSONファイルの秘密鍵のパス※
・OAuth JWT Cert Type:GOOGLEJSON
接続が成功すれば、サービスアカウント認証をすることが可能になります。
おわりに
サービスアカウント認証ができると、Linuxを利用してコマンドからログインする方や、IDやパスワードを認証時に使用したくない方にとっては、セキュアにアクセスできるサービスアカウント認証という方法でデータソース側(今回はGoogleSheets)にアクセスすることができます。ぜひ試してみてください。
関連コンテンツ