ここでは、Cloud Console を使用して Cloud Storage のバケットとオブジェクトに対する各種の操作を実行する際に必要となる Identity and Access Management(IAM)権限について説明します。IAM 権限をバンドルしてロールを作成し、ユーザーとグループにロールを割り当てます。
Cloud Console の使用に必要な一般的な権限
Cloud Console を使用するには、次のような特定の権限が広く必要です。
バケットを使用するすべての操作には、プロジェクト レベルで
resourcemanager.projects.get
権限とstorage.buckets.list
権限が必要です。これらの権限により、バケットの作成、表示、更新を行う Console ブラウザのバケットページにアクセスできます。
通常、オブジェクトに関連するすべての操作には、プロジェクト レベルまたはバケットレベルで
storage.objects.list
権限が必要です。特定のオブジェクトの詳細ページにのみアクセスし、バケット内のオブジェクトのリスト全体にアクセスする必要がない場合、この権限は不要です。
リクエストに請求先プロジェクトが含まれるすべての操作には、指定されたプロジェクトに対する
serviceusage.services.use
権限が必要です。この権限により、指定したプロジェクトに課金する権限が与えられます。たとえば、リクエスト元による支払いを有効にしてバケットにアクセスするときに、請求プロジェクトを含めることができます。
特定の操作に必要な権限
操作 | 必要な IAM 権限(上記の権限以外) |
---|---|
バケットを作成する | storage.buckets.create |
バケットを一覧表示またはフィルタリングする | 追加の権限なし |
バケットの [概要] タブにアクセスする | storage.buckets.get |
バケットのウェブサイト構成を表示または編集する(有効な場合) | storage.buckets.get storage.buckets.update |
バケットラベル、デフォルトのストレージ クラス、またはデフォルトのイベントベースの保留を変更する | storage.buckets.get storage.buckets.update |
リクエスト元による支払い機能を有効にする | storage.buckets.get storage.buckets.update |
リクエスト元による支払い機能を無効にする | storage.buckets.get storage.buckets.update resourcemanager.projects.createBillingAssignment 3 |
オブジェクトのライフサイクル ポリシーを設定または更新する | storage.buckets.get storage.buckets.update |
オブジェクトのライフサイクル ポリシーを表示する | storage.buckets.get |
バケットのデフォルトの Cloud Key Management Service 鍵を設定または削除する | storage.buckets.get storage.buckets.update |
バケットのデフォルトの Cloud Key Management Service 鍵を表示する | storage.buckets.get |
バケットの保持ポリシーを設定、削除、またはロックする | storage.buckets.get storage.buckets.update |
バケットの保持ポリシーを表示する | storage.buckets.get |
バケットの均一なバケットレベルのアクセスを設定または削除する | storage.buckets.get storage.buckets.update |
バケットの均一なバケットレベルのアクセスのステータスを表示する | storage.buckets.get |
バケットの権限を変更する | storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
空のバケットを削除する | storage.buckets.delete storage.objects.list |
空でないバケットを削除する | storage.buckets.delete storage.objects.delete storage.objects.list |
オブジェクトをアップロードする | storage.objects.create |
オブジェクトの詳細ページを表示する 5 | storage.objects.get |
オブジェクトをダウンロードする 5 | storage.objects.get |
バケット内のオブジェクトを一覧表示する | 追加の権限なし |
オブジェクトが一般公開されているかどうかを調べる 5 | storage.buckets.getIamPolicy storage.objects.getIamPolicy 4 |
オブジェクトの名前を変更する | storage.objects.create storage.objects.delete storage.objects.get storage.objects.getIamPolicy 4storage.objects.setIamPolicy 4 |
オブジェクトをコピーする | storage.objects.create storage.objects.delete 1storage.objects.get storage.objects.getIamPolicy 2、4storage.objects.setIamPolicy 2、4 |
オブジェクトを移動する | storage.objects.create storage.objects.delete 1storage.objects.delete storage.objects.get storage.objects.getIamPolicy 2、4storage.objects.setIamPolicy 2、4 |
オブジェクトのアクセス権限を表示する 5、6 | storage.objects.get storage.objects.getIamPolicy |
オブジェクトのアクセス権限を編集する 5、6 | storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
オブジェクトのメタデータを編集する | storage.objects.get storage.objects.update |
オブジェクトの保留を追加または削除する | storage.objects.get storage.objects.update |
オブジェクトを削除する 5 | storage.objects.delete |
プロジェクトの HMAC キーを表示する | resourcemanager.projects.get storage.hmacKeys.list |
サービス アカウントの HMAC キーを作成する | resourcemanager.projects.get storage.hmacKeys.list storage.hmacKeys.create |
サービス アカウントの HMAC キーを無効または再度有効にする | resourcemanager.projects.get storage.hmacKeys.list storage.hmacKeys.update |
サービス アカウントの HMAC キーを削除する | resourcemanager.projects.get storage.hmacKeys.list storage.hmacKeys.delete |
1 この権限は、コピーまたは移動するオブジェクトと同じ名前のオブジェクトがバケット内に存在する場合にのみ必要になります。
2 この権限は、元のオブジェクトに現在適用されている権限を保持する場合にのみ必要になります。
3 この権限は、リクエストに請求先プロジェクトを含めない場合にのみ必要になります。詳細については、リクエスト元による支払いの使用条件とアクセス要件をご覧ください。
4 この権限は、均一なバケットレベルのアクセスが有効になっているバケットには適用されません。
5 このアクションでは、関連するオブジェクトの詳細ページで実行する場合は storage.objects.list
は不要です。
6 このアクションは、均一なバケットレベルのアクセスが有効になっているバケットには適用されません。
次のステップ
Cloud Storage のロールと権限の一覧について、Cloud Storage に適用される IAM ロールを確認する。
プロジェクト レベルとバケットレベルで IAM ロールを割り当てる。