0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonでGCSオブジェクトを制御する権限

Posted at

#はじめに
PythonでGCSバケット内のオブジェクトを操作したい場合の権限について、単純にIAMで指定するGCSオブジェクトオーナー権限だけではPermissionエラーでしたのでメモしておきます。

#エラー内容
対象のサービスアカウントに"Storage オブジェクト管理者"や"Storage オブジェクト作成者"、"Storage オブジェクト閲覧者"の権限を付けてPythonを実行しても以下のエラーが出ます。

google.api_core.exceptions.Forbidden: 403 GET https://storage.googleapis.com/storage/v1/b/[バケット名]?projection=noAcl&prettyPrint=false: [サービスアカウント] does not have storage.buckets.get access to the Google Cloud Storage bucket.

pythonコードについては、こちらがよく書かれていますのでご参考下さい。
pythonによるGCSへのバケット・ファイルの操作(転送・取得・削除・読み込み等)まとめ
サービスアカウントのjson keyをダウンロードしてご利用ください。

#対策方法
"Storage レガシー オブジェクト オーナー"が必要です。
"Storage レガシー オブジェクト オーナー"に対象のサービスアカウントを追加してください。
こちらはIAM画面では設定できず、GCSバケット詳細のロールで設定が可能です。
bucket_role.png

#さいごに
よく調べてないのですが、公式ドキュメントあるのでしょうか。
まぁ、動いたから良しとします。
(コンソール画面で操作してしまいました。これからTerraformに落とします:stuck_out_tongue_closed_eyes:)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?