「世の中には難しいことが多い!」と感じることが多い私が、様々な用語を、初学者向けにわかりやすく全力で解説します。
解説する用語
Google Cloudのサービスアカウントについて解説をします。
サービスアカウントとは、Google Cloudの特有の概念になります。もっとも基本的でありながら、最初はイメージしにくい考え方だと思います。
Google Cloudを使用するうえで必須の知識となるため、ぜひ本記事を読んで理解してみてください。
サービスアカウントとは
サービスアカウントとは、アプリケーションやCompute Engineインスタンスなどが、他のリソースにアクセスするために必要となるアカウントのことです。ユーザーアカウントとは異なり、アプリケーションやリソースに割り当てるアカウントです。
サービスアカウントを使用することで、柔軟なアクセス制御を行うことが出来るため、Google Cloudのセキュリティを向上させることが出来ます。
サービスアカウントはIAMで管理するアカウントになります。本記事ではIAMについて理解していなくても分かるように説明をしていますが、Google CloudのIAMについて理解を深めたい場合は、以下の記事を読んでみてください。
詳細に説明するよ
サービスアカウントについて、具体例を用いて説明をします。
Google CloudにはCompute Engineという製品があります。Compute EngineはVMインスタンスという仮想マシンを作成できるサービスです。
Google CloudにはCloud Storageという製品もあります。Cloud Storageはファイルなどのデータを保存することが出来るストレージサービスです。
AさんとBさんでそれぞれ管理しているVMインスタンスがあるとします。
Aさんが管理しているVMインスタンスからCloud Storageにアクセスして、保存されているファイルを読み込みたいです。機密情報が保存されているため、Bさんが管理しているVMインスタンスからはCloud Storageにアクセスして欲しくありません。
ここでサービスアカウントが役に立ちます。AさんとBさんのそれぞれのVMインスタンス用にサービスアカウントを作成します。
Aさん用のサービスアカウントには、Cloud Storageにアクセスするための権限を付与します。Bさん用のサービスアカウントにはCloud Storageにアクセスするための権限を与えません。
AさんとBさんのそれぞれのVMインスタンスにサービスアカウントを割り当てることで、AさんはBさんからのアクセスを気にすることなく、VMインスタンスからCloud Storageにアクセスすることが出来ます。
上記の手順をまとめます。以下のようにサービスアカウントを使用することで、人だけでなく、Google Cloudなどのシステムの行動も制限することが出来るのです!
- サービスアカウントを作成し、権限を付与する
- サービスアカウントをGoogle Cloudなどのシステムに割り当てる
「人間」だけではなく、「システムに付与するアカウントである」というのが理解が難しいところだと思います。しかし、理解してしまえば、かんたんにセキュリティを向上させることが出来る画期的な仕組みだと思います。
サービスアカウントの種類
サービスアカウントには以下のような種類があります。
- ユーザー管理のサービスアカウント:ユーザーが作成し、管理する
- デフォルトのサービスアカウント:Googleが作成し、ユーザーが管理する
- Googleマネージドのサービスアカウント:Googleが作成し、ユーザーが管理する
ユーザー管理のサービスアカウント
ユーザー管理のサービスアカウントは、ユーザーが作成し、管理するサービスアカウントのことです。ユーザー自らサービスアカウントを作成し、自由に権限の追加・削除をすることが出来ます。
「詳細に説明するよ」のセクションで説明したものも、ユーザー管理のサービスアカウントです。
デフォルトのサービスアカウント
デフォルトのサービス アカウントは、Googleがデフォルトで作成してくれているサービスアカウントのことです。Google Cloudの特定の製品を使うために必要な権限が付与されています。しかし、アカウントの管理はユーザーが行います。
強い権限がついているため、ユーザー管理のサービスアカウントに変更するか、最小となるように権限を変更することが推奨されています。
Googleマネージドのサービスアカウント
Googleマネージドのサービスアカウントは、Googleがデフォルトで作成してくれており、管理もGoogleがしてくれるサービスアカウントのことです。
まとめ
- サービスアカウントとは、システムが他のシステムにアクセスするために必要なアカウントのこと
- 権限が付与されたサービスアカウントをシステムに付与することでアクセス制御を行える
- Googleが作成したり、管理するサービスアカウントもある
参考
本サイトでの注意事項
本サイトではなんとなく理解することを目的としているため正確性に欠ける表現があります。より正確な情報を詳しく知りたい場合は公式ドキュメントを参照ください。