前提・実現したいこと
pythonのクライアントライブラリからCloud Storageのバケットを取得したい。
バケットが存在しない場合には google.cloud.exceptions.NotFound が投げられる。
発生している問題・エラーメッセージ
google.api_core.exceptions.Forbidden: 403 GET https://www.googleapis.com/storage/v1/b/[bucket-name]?projection=noAcl: [service-account-id]@[project-id] does not have storage.buckets.get access to [bucket-name].
該当のソースコード
python
1storage_client = storage.Client() 2 3try: 4 bucket = storage_client.get_bucket(BUCKET_NAME) 5except NotFound: 6 # バケットが無い場合 7 bucket = storage_client.create_bucket(BUCKET_NAME)
試したこと
サービスアカウントキーによる認証を利用しているので、そのサービスアカウントの役割を増やしました。
最初の状態は「オーナー」のみでした。
これで十分なのではないかと思っていましたが解決しなかったのでさらに
- ストレージオブジェクト閲覧者
- ストレージのオブジェクト作成者
- ストレージのオブジェクト管理者
- ストレージ管理者
を追加しましたが変化がありませんでした。
補足情報(FW/ツールのバージョンなど)
Python 3.6.4
google-cloud-storage 1.7.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。