はじめに
- ここでは、Cloud Storageにおいて、特定のバケットのみ閲覧させる方法についてまとめる。
バケットレべルでの設定
- GCS Web UI で、制限したいバケット名の一番右にあるメニューをクリックし、[バケットの権限を編集] を選択。
- [メンバーを追加] をクリックし、登録したいアカウントを入力し、役割に以下の2つを付与 。
- ストレージのオブジェクト作成者
- ストレージのオブジェクト閲覧者
※上記の2つ役割で、特定バケット内でのオブジェクト作成のみが可能になる。
※オブジェクトの削除なども行いたい場合には、登録した2つの代わりにストレージのオブジェクト管理者のみを役割として付与する。
IAM レベルでの設定
- Cloud IAM上で左のメニュー内の[役割]をクリック。
- [役割を作成]をクリックし[権限を追加]で、storage.buckets.listを選択し、[追加]をクリック。
(storage.buckets.listの権限はストレージ管理者の中にある) - IAM に戻り、上の方に表示されている[追加]をクリックし、登録したいアカウントを[新しいメンバー]に入力。
- 以下の役割を付与。
- プロジェクトの参照者
- 2で作成したカスタム役割 (Customの項目内に、名付けた名前で表示される)
※上記の2つ役割で、特定バケットのみアクセス、オブジェクトの作成等が可能になる。
※ ストレージのオブジェクト作成者やストレージ のオブジェクト閲覧者の役割を付与してしまうと、設定した権限がバケットすべてに継承され、他のバケットもアクセス可能になるので気をつけること。
ポイント
- 今回の設定に関するポイントは以下の通り。
- IAMレベルではリソース(GCS)に対する権限を設定。
- リソース(GCS)へのアクセスできるか?
- バケット一覧を表示できるか?
- バケットレベルではバケット個別に対する操作権限を設定。
- オブジェクトを閲覧できるか?
- オブジェクトを作成できるか?
- オブジェクトを削除をできるか?
- IAMレベルではリソース(GCS)に対する権限を設定。
- IAMレベルで全体を設定し、バケットレベルで個別に設定するということを意識する。