34
32

More than 5 years have passed since last update.

Google Cloud Platform(GCP)のCloud IAM

Last updated at Posted at 2017-12-10

IAMとは

Identity and Access Managementの略で、Google Cloud Platformのリソースに対して、誰(メンバー)がどのようなアクセス権(役割)を持つか定義し、アクセス制御を管理すること。IAMによって、よりきめ細やかなアクセス権を付与し、他のリソースへの望ましくないアクセスを防ぐことができる。また、セキュリティに関する最小権限の原則を導入できるため、リソースに対する必要なアクセス権のみ付与できる。

IDに関する概念

Cloud IAMでは、次のタイプのメンバーが存在する。

  • Googleアカウント
  • サービスアカウント
  • Googleグループ
  • G Suiteドメイン
  • Cloud Identityドメイン

無題.png

Googleアカウント

Google Cloud Platformを利用する開発者、管理者。Googleアカウントに関連付けられているメールアドレス(gmail.com のアドレス)がIDとなる。

サービスアカウント

Googleアカウントのような個々のエンドユーザー(Google Cloud Platformを利用する開発者、管理者)ではなく、アプリケーションやリソース(仮想マシン等)に属している特別なGoogleアカウント。アプリケーションはサービスアカウントを使用して、Googleアカウントユーザーの関与を必要とせずにGoogl のサービスAPI呼び出しやリソースアクセスができる。サービスアカウントは、アカウント固有のメールアドレスで識別される。
サービスアカウントにはいくつかの種類が存在する。

ユーザー管理サービスアカウント

Compute Engine APIがプロジェクトで有効になっている場合、デフォルトでCompute Engineサービスアカウントが作成される。アカウント名は以下の形式。

[PROJECT-NUMBER]-compute@developer.gserviceaccount.com

プロジェクトにGoogle App Engineアプリケーションが含まれている場合、デフォルトのApp Engineサービスアカウントがプロジェクトにデフォルトで作成される。アカウント名は以下の形式。

[PROJECT-ID]@appspot.gserviceaccount.com

プロジェクトごとに最大100 個のサービスアカウント(デフォルトのCompute EngineサービスアカウントとGoogle App Engineサービスアカウントを含む)を作成することができ、ユーザーが管理するサービスアカウントとなる。

Google管理サービスアカウント

ユーザー管理サービスアカウントに加えて、プロジェクトのIAMポリシーまたはCloud Platform Consoleにいくつかの追加サービスアカウントが表示されることがある。これらのサービ アカウントはGoogleが作成、所有、管理するため、Google管理サービスアカウントとなる。例として、以下のようなアカウントが存在する。

  • Google APIサービスアカウント

個々のエンドユーザ(開発者)の代わりに内部Googleプロセスを実行するように設計されており、Cloud Platform Console の [サービス アカウント] セクションには一覧表示されない。アカウント名は以下の形式。

[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Googleグループ

Googleアカウントやサービスアカウントの集合(グループ)。各Googleグループには固有の名前とメールアドレスが関連付けられている。Googleグループを使用することで、個々のGoogleアカウントまたはサービスアカウントに対して1つずつアクセス制御を付与または変更するのではなく、一度にグループ全体に対してアクセス制御を付与または変更できるので、管理が容易となる。

G Suiteドメイン

1つの組織内の全てのメンバーの仮想グループ。各メールアカウントはusername@yourdomain.comの形式となる。

Cloud Identityドメイン

1つの組織内の全てのメンバーの仮想グループ。G Suiteドメインと似ているが、Cloud Identityドメインユーザーは、G Suiteのアプリケーションと機能にアクセスすることはできない。詳細は「Cloud Identity について」を参照。

アクセス管理に関する概念

リソース

GCPの各種リソース(プロジェクト、GCEインスタンス、Cloud Storageバケット等のサービス)に対するアクセス権をユーザに付与することが可能。

権限と役割

GCPでは、権限によってリソースに対して許可されているオペレーションが決定する。ただし、権限をユーザーに直接割り当てることはできないため、代わりに役割をユーザーに付与することになる。役割とは所謂ロール(Role)のこと。役割を付与することで、そのユーザはその役割に含まれる全ての権限が付与される。
※権限と役割のイメージ
キャプチャ.PNG

詳細な役割は「役割について」を参照。

キャプチャ.PNG

ポリシー

誰がどの種類のアクセス権を持つかの定義の集合である「Cloud IAM ポリシー」を作成することで、ユーザーに役割を付与することができる。ポリシーはリソースに紐づけられ、そのリソースがアクセスされると常にアクセス制御が強制される。
キャプチャ.PNG

参考

34
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
32