皆様、こんにちは!
アイレット株式会社 DX開発事業部の楊林と申します。
前回の投稿では、Google Cloud の IAM について紹介しました。
その中で、Google Cloud の「メンバー」にはいくつか種類があるとお伝えしましたが、今回はその中から サービスアカウント と Cloud Identity ドメインについて、もう少し踏み込んで説明してみたいと思います。
サービスアカウント
サービスアカウントは、個々のユーザーではなく、アプリケーションに紐づけて使うアカウントです。
これを使うことで、プロジェクト内でユーザーのパスワードを使わなくても、サービス同士が安全にやり取りできるようになります。
サービスアカウントはメールアドレスで識別され、アクセスにはパスワードではなく暗号鍵が使用されます。
また、サービスアカウント自体もひとつの「リソース」として扱われるため、個別の IAM ポリシーを付けることができます。そのロールは他のユーザーやグループにも割り当て可能です。
サービスアカウントの種類
サービスアカウントには 3 種類があります。
組み込みサービスアカウント
すべてのプロジェクトには、Compute Engine や App Engine 向けのデフォルトサービスアカウントが用意されています。
Google API サービスアカウント
こちらもすべてのプロジェクトに存在し、内部的に Google が API を実行する際に使用します。
プロジェクトの Editor ロール が自動的に付与されている点が特徴です。
ユーザー作成サービスアカウント
用途に応じて自由に作成できるサービスアカウントです。
柔軟に使える反面、ロール設定やキー管理などの運用はユーザー側で行う必要があります。
サービスアカウントの認可
認可(Authorization)とは、「認証された ID にどの権限を与えるか」を決めるプロセスです。
デフォルトサービスアカウントを使ってインスタンスを作成する際には、スコープをカスタマイズできます。
一方、ユーザー作成サービスアカウントにはスコープは設定されず、代わりに IAM ロールを使って権限を割り当てます。
サービスアカウントキー
サービスアカウントが外部のリソースにアクセスする場合は、パスワードではなく暗号鍵を使用します。その鍵がサービスアカウントキーです。
サービスアカウントキーには次の 2 種類があります。
Google管理の鍵
Compute Engine や App Engine など、Google Cloud 内でサービスアカウントを使う場合は、鍵の生成と管理をすべて Google が行います。
鍵の公開部分と秘密部分の両方がGoogleに保管され、定期的に自動ローテーションされます。
公開部分はそれぞれ最長2週間、署名に使用できます。
秘密部分にはユーザーは直接アクセスできません。
ユーザー管理の鍵
Google Cloud の外部からサービスアカウントを使いたい場合、またはローテーション期間を変更したい場合、ユーザー自身が鍵を手動で作成して管理できます。
この場合鍵の公開部分のみはGoogleに保管され、秘密鍵の保管とローテーションは完全にユーザーの責任になります。
サービスアカウントあたりはローテーションのために最大 10 個まで鍵を作成できます。鍵が紛失したら復元できません。
セキュリティの観点から、ユーザー管理の鍵は最後の手段として扱い、可能な限りトークン利用や権限借用を優先することが推奨されています。
Cloud Identity
Cloud Identity は、Google Cloud にログインするためのユーザーやグループを一元管理できる仕組みです。
組織は Google 管理コンソールを使ってユーザーやグループのライフサイクル管理を行い、必要に応じてポリシーを適用できます。
また、既存の Active Directory や LDAP と連携して、同じユーザー名・パスワードで Google Cloud にアクセスさせることもできます。
退職者のアカウント削除やグループ更新も Google 管理コンソールから行えるため、オンボーディング・オフボーディングの一元管理が可能です。
最後に
今回は、Google Cloud の サービスアカウント と Cloud Identity ドメイン について簡単に紹介しました。
次回は Google Cloud のコンピューティングサービスについて説明しますので、ぜひ続けて読んでみてください!
以前の投稿
【Google Cloud入門】クラウドサービスの特徴とGoogle Cloudの触り方
【Google Cloud入門】リソースマネージメント
【Google Cloud入門】アクセス管理の基本 - IAM