如何在 GCP Cloud Storage 中授予服务帐户 storage.buckets.create 权限?

der*_*783 1 c# google-cloud-storage google-cloud-platform

我正在使用下面的代码创建一个存储桶,但发生了一个异常,表明服务帐户缺少权限storage.buckets.create

我使服务帐户成为Storage Object Admin角色的成员,但这还不够,因为错误仍然发生。

var client = StorageClient.Create();            
var bucket = client.CreateBucket(projectId, bucketName);
Run Code Online (Sandbox Code Playgroud)

der*_*783 5

如果查看为 分配的权限Storage Object Admin,您会看到它缺少权限storage.bucket.create

'IAM & Admin' > 'Roles' > 'Storage Object Admin'
Run Code Online (Sandbox Code Playgroud)

如果您查看为 分配的权限Storage Admin,您将看到它具有该权限storage.bucket.create(除了您的服务帐户可能需要或不需要的其他权限)。

'IAM & Admin' > 'Roles' > 'Storage Admin'
Run Code Online (Sandbox Code Playgroud)

您可以创建一个具有最少必要权限集的自定义角色,并将该角色应用于您的服务帐户,或者您可以使该服务帐户成为“存储管理员”角色的成员。由于较小的权限占用,我认为前者更可取。