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.setIamPolicy2
storage.buckets.update
cp オブジェクト storage.objects.list3(宛先バケット)
storage.objects.get(ソース オブジェクト)
storage.objects.create(宛先バケット)
storage.objects.delete1(宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
cp -n オブジェクト storage.objects.list3(宛先バケット)
storage.objects.get(ソース オブジェクトと宛先バケット)
storage.objects.create(宛先バケット)
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.setIamPolicy2
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
kms authorize プロジェクト resourceManager.projects.get
iam.serviceAccounts.create7
cloudkms.cryptoKey.setIamPolicy(Cloud KMS 鍵の認証)
kms encryption バケット storage.buckets.get
kms encryption -d バケット storage.buckets.get
storage.buckets.setIamPolicy2
storage.buckets.update
kms encryption -k バケット、プロジェクト9 storage.buckets.get
storage.buckets.setIamPolicy2
storage.buckets.update
resourceManager.projects.get9
cloudkms.cryptoKey.setIamPolicy9
kms serviceaccount プロジェクト resourceManager.projects.get
label get バケット storage.buckets.get
label set/ch バケット storage.buckets.setIamPolicy2
storage.buckets.update
lifecycle get バケット storage.buckets.get
lifecycle set/ch バケット storage.buckets.setIamPolicy2
storage.buckets.update
logging get バケット storage.buckets.get
logging set バケット storage.buckets.setIamPolicy2
storage.buckets.update
ls プロジェクト storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls バケット、オブジェクト storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6
ls -b バケット storage.buckets.get
storage.buckets.getIamPolicy6
mb バケット storage.buckets.create
mv オブジェクト storage.objects.list3(宛先バケット)
storage.objects.get(ソース オブジェクト)
storage.objects.create(宛先バケット)
storage.objects.delete(ソースバケット)
storage.objects.delete1(宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
mv -n オブジェクト storage.objects.list3(宛先バケット)
storage.objects.get(ソース オブジェクトと宛先バケット)
storage.objects.create(宛先バケット)
storage.objects.delete(ソースバケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
notification create バケット storage.buckets.update
pubsub.topics.get(Pub/Sub トピックを含むプロジェクト)
pubsub.topics.create8(Pub/Sub トピックを含むプロジェクト)
pubsub.topics.getIamPolicy(Pub/Sub トピックの受信通知)
pubsub.topics.setIamPolicy8(Pub/Sub トピックの受信通知)
notification create -s バケット 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 on バケット storage.buckets.get
storage.buckets.setIamPolicy2
storage.buckets.update
requesterpays set off バケット storage.buckets.get
storage.buckets.setIamPolicy2
storage.buckets.update
resourcemanager.projects.createBillingAssignment10
rewrite -k オブジェクト storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s オブジェクト storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm バケット storage.buckets.delete
storage.objects.delete
storage.objects.list
rm オブジェクト storage.objects.delete
rsync オブジェクト storage.objects.get(ソース オブジェクトと宛先バケット)
storage.objects.create(宛先バケット)
storage.objects.delete1(宛先バケット)
storage.objects.list(ソースバケットと宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
rsync -d オブジェクト storage.objects.get(ソース オブジェクトと宛先バケット)
storage.objects.create(宛先バケット)
storage.objects.delete(宛先バケット)
storage.objects.list(ソースバケットと宛先バケット)
storage.objects.getIamPolicy4(ソース オブジェクト)
storage.objects.setIamPolicy4(宛先バケット)
rsync -n オブジェクト storage.objects.list(ソースバケットと宛先バケット)
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.setIamPolicy2
storage.buckets.update
web get バケット storage.buckets.get
web set バケット storage.buckets.setIamPolicy2
storage.buckets.update

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

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

3 この権限は、コマンドの宛先にオブジェクトのパスが含まれている場合にのみ必要です。

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

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

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

7 この権限は、プロジェクトに既存の Cloud Storage サービス アカウントが関連付けられていない場合にのみ必要です。

8 この権限は、トピックがすでに存在し、それに関連するサービス アカウントにトピックへのアクセス権がある場合は必要ありません。

9 gsutil kms encryption -k を使用していて、リクエストされた Cloud KMS 鍵にアクセスする権限がプロジェクトのサービス アカウントにない場合は、gsutil で gsutil kms authorize を実行して、必要な権限をそのサービス アカウントに付与します。

10 この権限は、リクエストに請求先プロジェクトを含めない場合にのみ必要になります。詳細については、リクエスト元による支払いの使用条件とアクセス要件をご覧ください。

-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 ドキュメント