Help us understand the problem. What is going on with this article?

GCEインスタンスの権限設定について

はじめに

GCEインスタンスからGCPサービスを操作するための権限設定方法について書きたいと思います。

権限設定の方法

GCEインスタンスからGCPサービスを操作するための権限設定は、サービスアカウントをGCEインスタンスに付与することで設定します。AWSで言うところのEC2にIAMロールを付与するようなイメージです。

サービスアカウントに、ロールを付与して、ロールに各GCPのAPIを実行できるパーミッションが付与される形になります。

image.png

GCPコンソールで、GCEを作成する画面にサービスアカウントの設定の下にAccess Scopeというものが表示されています。
image.png

Access Scopeは、デフォルトで作成されるGCE用のサービスアカウントで使用できるものです。
デフォルトで作成されているGCE用のサービスアカウント(Compute Engine default service account)は、レガシーなPrivilege RoleであるEditorロールが付与されており、強い権限を持っています。

注: roles/editor の役割には、ほとんどの GCP サービスでリソースを作成および削除する権限が含まれますが、一部のサービス(Cloud Source Repositories や Stackdriver など)ではそれらの権限が含まれません。
https://cloud.google.com/iam/docs/understanding-roles#role_types

そのため、Compute Engine default service accountの権限を制限するためにAccess Scopeが使用できます。カスタムサービスアカウントでは、Access Scopeの設定はできません。Privilege Roleとアクセススコープを使った権限設定は、レガシーな方法であり推奨されていません。

デフォルトで作成されているGCE用のサービスアカウント(Compute Engine default service account)は、Access Scopeが選択できる。
image.png

自身で作成したサービスアカウントは、Access Scopeが選択できない。
image.png

アクセススコープは、以下の3つから選択できます。
https://cloud.google.com/compute/docs/access/service-accounts?hl=ja#accesscopesiam

  • Allow default access
    • デフォルト値: Storage および Service Management に対する読み取り専用アクセス権、Stackdriver Logging および Monitoring に対する書き込みアクセス権、Service Control に対する読み取り / 書き込みアクセス権
  • Allow full access to all Cloud APIs
    • GCEインスタンスから、プロジェクト内のリソースに対してすべてのAPIが実行可能になります
  • Set access for each API
    • 任意のAPIに対して許可設定します
    • IAM Permissionほど細かい制御はできません

image.png

サービスアカウントの作り方

IAM & admin>Service accounts>Create service accounts
サービスアカウントに名前を記載する。(メールアドレスが作成される)
image.png

Roleを選択する
image.png

作成するサービスアカウントの所有権とアクセス権限を付与したいユーザグループを指定する※オプション
https://cloud.google.com/iam/docs/granting-roles-to-service-accounts?&_ga=2.216597334.-1303976701.1565066087#granting_access_to_a_user_for_a_service_account
image.png

その他

注意点は、サービスアカウント、アクセススコープの変更は、インスタンスを停止しないとできない。

投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away