Googleのサービスアカウントを作成する

Google Cloud Platform (GCP) にサービスアカウント、サービスアカウントキーなどという言葉が出てくるのだが、これは何かを個人的解釈で説明したいと思う。

したがって、正確かどうかはわからないところをご了承いただきたい。

別の誰かにAnalyticsを見せたい

その前に、例えばGoogle Analyticsを例にとって説明してみよう。

今現在Google Analyticsを使っているとする。当然のことながら、その所有者は自由に設定や閲覧ができるのだが、閲覧だけ他者に行わせたい。例えば、その分析を外部の者に任せたいとしたらどうするか?

Analyticsの画面の中のここだ。

ここで、所有者以外の人間のアカウントを追加してやれば、彼・彼女がデータを閲覧することができる。

サービスアカウントとは、まさにこのことだ。人間ではない仮想的なアカウントを作成し、閲覧させたいものについてそのメアドを登録してやる。すると、この仮想アカウントに閲覧権限が与えられるというわけだ。

サービスアカウントとは、専用のメアドを持つ仮想的な個人と思えばいい。

サービスアカウントの作成

では、この仮想的な個人を一体どこで作るかだが、Google Cloud Platform(GCP)の中だ。ここに何らかの「プロジェクト」を作成し、その中にサービスアカウントを作成する。

プロジェクトの意味とその作成については、Google Cloud Platform(GCP)にプロジェクトを作成するを参照されたい。

プロジェクトの中にサービスアカウントを作成する。

何も作成されていない。CREATE SERVICE ACCOUNTをクリック。

適当に名前をつける。

特に役割の選択はいらないようだ。そのまま続行。

おそらくキーが無いと話しにならないので作成する。

おそらくJSONタイプだと思う。

このとき、jsonファイルのダウンロードがされるので、これを確保しておく。次にこのように表示される。

確認するには、クライアントIDの表示をクリック。

ここに表示されるメアドが重要なので覚えておく。

認証情報の確認

サービスアカウント作成の途中で「キー」を作成したのだが、これは認証情報の方にも表示される。

IDが同じであることがわかるはずだ。

あとあと必要になる情報

あとあと必要になるのは、キーを作成した時にダウンロードしたjsonファイルとサービスアカウントのメアドだ。jsonファイルの方は二度と生成されないようなので、しっかり保管しておく必要があるようだ。

最初の話に戻ると、そもそもは自分のAnalyticsに誰かを招待して、閲覧だけ許可したいという話であった。そこでサービスアカウントという仮想的な「個人」を作った。

この「個人」にはメアドとキーがあり、想像できるようにこのメアドを「個人のメアド」として自分のAnalyticsに設定すればよい。

そして、このキーの方は閲覧操作を行うアプリなり何なりが、この「仮想的な個人」として認識されるためのパスワードと思えばよい。

図に描くと以下のようなことだ。

  • Analyticsの所有者である私は、当然自由な操作ができる。
  • Aさんのメアドを登録して閲覧だけ許可したので、閲覧だけできる。
  • サービスアカウントという仮想的な個人のメアドに閲覧だけ許可したので、閲覧だけできる。
  • ただし、実際にはサービスアカウントを通じて何らかのアプリが閲覧操作を行うが、その権限のあることを示すため、アプリがキーを使う。

ということである。

Google Analyticsにサービスアカウントのメアドを登録する

仮に、このサービスアカウントからGoogle Analyticsの閲覧をさせたいとすると、先のメアドをAnalyticsに登録しておく。

冒頭に示したAnalyticsの管理画面の「ユーザ管理者」に行き、メアドを入力する。