gsutil コマンドの IAM 権限

以下の表に、特定のリソースで Cloud Storage の各 gsutil コマンドを実行する場合に必要な Identity and Access Management(IAM)権限を示します。ワイルドカード、-r フラグ、-m フラグを使用する際の注意事項については、表の下のセクションを参照してください。

コマンド サブコマンド 対象リソース 必要な IAM 権限
acl get バケット storage.buckets.get
storage.buckets.getIamPolicy
acl set または ch バケット storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get オブジェクト storage.objects.get
storage.objects.getIamPolicy
acl set または ch オブジェクト storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
cat オブジェクト storage.objects.get
compose オブジェクト storage.objects.get(ソース オブジェクト)
storage.objects.create(宛先バケット)
storage.objects.delete1(宛先バケット)
config なし
cors get バケット storage.buckets.get
cors set バケット storage.buckets.setIamPolicy10
storage.buckets.update
cp オブジェクト storage.objects.get(ソース オブジェクト)3
storage.objects.create(宛先バケット)
storage.objects.delete1、2(宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
defacl get バケット storage.buckets.get
storage.buckets.getIamPolicy
defacl set または ch バケット storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get バケット storage.buckets.get
defstorageclass set バケット storage.buckets.setIamPolicy10
storage.buckets.update
du オブジェクト storage.objects.get
hash オブジェクト storage.objects.get
help なし
iam get バケット storage.buckets.get
storage.buckets.getIamPolicy
iam set または ch バケット storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get オブジェクト storage.objects.get
storage.objects.getIamPolicy
iam set または ch オブジェクト storage.objects.get
storage.objects.getIamPolicy
storage.objects.setIamPolicy
storage.objects.update
label get バケット storage.buckets.get
label set/ch バケット storage.buckets.setIamPolicy10
storage.buckets.update
lifecycle get バケット storage.buckets.get
lifecycle set/ch バケット storage.buckets.setIamPolicy10
storage.buckets.update
logging get バケット storage.buckets.get
logging set バケット storage.buckets.setIamPolicy10
storage.buckets.update
ls プロジェクト storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls -b バケット storage.buckets.get
storage.buckets.getIamPolicy6
ls バケット storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6
ls オブジェクト storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6
mb バケット storage.buckets.create
mv オブジェクト storage.objects.get(ソース オブジェクト)3
storage.objects.create(宛先バケット)
storage.objects.delete(ソースバケット)
storage.objects.delete1、2(宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
notification create バケット storage.buckets.update
notification delete バケット storage.buckets.update
notification list バケット storage.buckets.get
notification watchbucket バケット storage.buckets.update
notification stopchannel バケット storage.buckets.update
perfdiag バケット storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb バケット storage.buckets.delete
requesterpays get バケット storage.buckets.get
requesterpays set バケット storage.buckets.setIamPolicy10
storage.buckets.update
rewrite オブジェクト storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update7
rm バケット storage.buckets.delete
storage.objects.delete
storage.objects.list
rm オブジェクト storage.objects.delete
rsync8 オブジェクト storage.objects.get(ソース オブジェクトと宛先バケット)
storage.objects.create(宛先バケット)
storage.objects.delete1、9(宛先バケット)
storage.objects.list(ソースバケットと宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
setmeta オブジェクト storage.objects.get
storage.objects.list
storage.objects.update
signurl なし。ただしリクエストに関連するサービス アカウントでは storage.objects.get が必要。
stat オブジェクト storage.objects.get
test なし
update なし
version なし
versioning get バケット storage.buckets.get
versioning set バケット storage.buckets.setIamPolicy10
storage.buckets.update
web get バケット storage.buckets.get
web set バケット storage.buckets.setIamPolicy10
storage.buckets.update

1 この権限は、挿入するオブジェクトと同じ名前のオブジェクトがバケット内に存在している場合にのみ必要です。

2 コマンドに -n フラグが使用されている場合、この権限は不要です。

3 コマンドに -n フラグが使用されている場合は、宛先バケットにもこの権限が必要です。

4 この権限は、コマンドに -a フラグまたは -p フラグが使用されている場合にのみ必要です。

5 この権限は、コマンドに -L フラグまたは -l フラグが使用されている場合にのみ必要です。

6 この権限は、詳細の中に IAM ポリシーを含める場合にのみ必要です。

7 この権限は、コマンドに -k フラグまたは -s フラグを使用する場合にのみ必要です。

8 rsync-n フラグを使用する場合に必要な権限は storage.objects.list のみです。

9 この権限は、コマンドに -d フラグが使用されている場合のみ必要です。

10この権限は、storage.buckets.getIamPolicy 権限を持っている場合にのみ必要です。

-u トップレベル フラグ

-u トップレベル フラグを使用して、リクエストの請求先プロジェクトを指定する場合は、指定するプロジェクトに対する serviceusage.services.use 権限が必要です。リクエスト元による支払いが有効になっているバケットにアクセスする場合は、-u フラグを使用します。

ワイルドカードと再帰フラグ

1 つのコマンドの中で URI ワイルドカードを使用して複数のオブジェクトを選択する場合は、オブジェクトを含むバケットに対する storage.objects.list 権限が必要です。同じように、1 つのコマンドの中で URI ワイルドカードを使用して複数のバケットを選択する場合は、それらのバケットを含むプロジェクトに対する storage.buckets.list 権限が必要です。

再帰フラグ(-r-R)を使用する場合は、使用している特定のコマンドに必要な権限に加えて、関連するバケットに対する storage.objects.list 権限が必要です。

-m トップレベル フラグ

通常、複数のオブジェクトまたはバケットに作用する gsutil コマンドを使用する場合、最初にエラーが発生した時点でコマンドは失敗します。ただし、-m トップレベル フラグを使用すると、gsutil は発生したすべてのエラーを記録し、オペレーションを続行します。

たとえば、一連のオブジェクトに対して acl set コマンドを実行しようとした際、必要な権限が与えられていたのは一部のオブジェクトだけだったとします。-m フラグを使用しない場合、gsutil は ACL を適用する権限のないオブジェクトに到達する時点までは、ACL を正常に適用します。権限のないオブジェクトの時点で、gsutil は失敗します。-m フラグを使用すると、gsutil は、権限を与えられていないオブジェクトに ACL を適用しようとした場合は発生するエラーを記録しますが、そうでない場合にはオペレーションを続行します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Storage ドキュメント