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

GCPのIAM Roleどれ設定すればええねん問題

Permission Error 地獄

Error: Permission iam.serviceAccounts.signBlob is required ...

ふむふむ、Permissionがないっていってるんやな。適切なPermissionをつければ動くのだろう。

=> googling...

なるほど、よくわからん!!

なんか適当にそれっぽいの含んでそうな権限を付与したら動くようになった!

えいや!

Error: xxxxxxx@appspot.gserviceaccount.com does not have storage.objects.get access to ...

(´;ω;`)

またなんか出た。

=> googling...

なるほど、よくわからん!!

Error: xxxxx@appspot.gserviceaccount.com does not have storage.objects.create access to ...

...勘弁してください...

てなことよくありませんか?
私はよく起こります。

そのたびにわからないながらもググって、おなじようなエラーに直面した人の解決方法見て、

Storage Admin をIAMで付与すると動きました!

とかを鵜呑みにして、「これ本当に適切なのだろうか???」とか思いながらも、とりあえず動かすためには書かれていた権限を付与したり、最悪Project Ownerとか付与したりしてモヤモヤとしていました。
ドキュメント見ても、権限 storage.objects.create がどんなことができるかとかそういうことしか書いてなくて、
これだ!という確信がないままIAMでRoleを設定することになります。

苦節数年…やっと解法を得たので共有しておきます。

Permissionに対応するRoleが何か調べる方法

  • GCPのConsole > IAM & admin > Role と進みます。
    スクリーンショット_2019_12_19_8_05.jpg

  • 検索種別にPermissionを
    Roles_–_IAM___admin_–_ideodora-aqmap2-1_–_Google_Cloud_Platform.jpg

  • 必要とされるPermissionで検索
    スクリーンショット 2019-12-19 8.08.49.png

すると、なんということでしょう。該当するPermissionを含んだRole達がずらりとリストされます。
title部をクリックすると、このRoleに割当てられているPermissionが一覧で確認できます。
Storage_Object_Admin_–_IAM___admin_–_ideodora-aqmap2-1_–_Google_Cloud_Platform.jpg

後は、この中から妥当なRoleを決めて、IAMに設定すればOKです。

IAM_–_IAM___admin_–_ideodora-aqmap2-1_–_Google_Cloud_Platform.jpg

選択すべきRole

おそらくですが、なるべく権限範囲の狭いRoleを付与するのが適切だと思われます。
先の例だと、Storage Adminまでは実は必要なく、Storage Object Adminがあれば、
storage.objects.get storage.objects.create をカバーしているのでStorage Object Adminの方が適切かと。

iam.serviceAccounts.signBlob だと Service Account Token Creator かな?

とりあえず、何でも Project Owner からは卒業しましょう!(汗

creato
「言われたものを作るだけ」ではない共創型システムパートナーを掲げる名古屋の少数精鋭開発会社。
http://www.creato-c.jp/
Why not register and get more from Qiita?
  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
No 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
ユーザーは見つかりませんでした