Google云端存储-权限不足

时间:2018-08-22 08:12:37

标签: node.js google-cloud-platform google-cloud-storage google-compute-engine

问题似乎与另一篇文章相似,但对我来说却有所不同。因为我检查了testIamPermission,返回的信息表明我已获得所需的所有权限,但仍然收到权限不足

这是我收到的:

{'storage.buckets.get' : true}
{'storage.buckets.getIamPolicy' : true}
{'storage.objects.create' : true}
{'storage.objects.delete' : true}
{'storage.objects.get' : true}
{'storage.objects.getIamPolicy' : true}
{'storage.objects.list' : true}
{'storage.objects.setIamPolicy' : true}
{'storage.objects.update' : true}

我用来测试的代码:

googleBucket.iam.testPermissions([testPermissions], function(err, permissions) {
  if(!err)
    console.log(permissions);
  })

我错过的权限:

'storage.buckets.create',
'storage.buckets.delete',
'storage.buckets.list',
'storage.buckets.setIamPolicy',
'storage.buckets.update',

我对创建对象拥有所有权限感到非常困惑,但仍然抛出权限不足。我使用的api只是在存储桶中上传文件。我错过了任何许可吗? (服务器位于Google Cloud Storage的同一项目中的Google Compute Engine)

2 个答案:

答案 0 :(得分:2)

哪个用户运行脚本会很有趣。

因为,似乎运行脚本的用户/服务仅具有viewer角色,而没有editor角色。如果您已为适当的服务帐户分配了适当的角色,请签入IAM。您可能还需要使用云外壳登录到该GCE实例,然后添加这些服务帐户凭据。在云外壳中,右上角有一个微小的“上传”按钮,可用于将凭据json文件上传到VM。 documentation还将逐步解释这一点。

答案 1 :(得分:0)

您的 Google Cloud Compute Engine 实例的服务帐户应该与用于访问 Google Cloud Storage Bucket 的帐户相同。

如果不匹配,请停止实例,从下拉框中选择正确的服务帐户来更改服务帐户(在下拉列表中将显示仅链接到当前项目的服务帐户)。

此外,请确保所选的服务帐户具有正确的Google Cloud Storage访问权限。

相关问题