Python GSResponseError:GSResponseError:403写入存储桶时禁止

Python GSResponseError:GSResponseError:403写入存储桶时禁止,python,google-app-engine,google-cloud-storage,google-compute-engine,google-cloud-platform,Python,Google App Engine,Google Cloud Storage,Google Compute Engine,Google Cloud Platform,我正在尝试将一个文件从一个计算引擎实例写入一个bucket(两者都属于同一个项目) 我使用服务帐户遵循了这里提到的步骤 但它给出了以下错误: GSResponseError: GSResponseError: 403 Forbidden [Fri Apr 01 07:12:11 2016] [error] <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code>&l

我正在尝试将一个文件从一个计算引擎实例写入一个bucket(两者都属于同一个项目)

我使用服务帐户遵循了这里提到的步骤

但它给出了以下错误:

GSResponseError: GSResponseError: 403 Forbidden
[Fri Apr 01 07:12:11 2016] [error] <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message><Details>Provided scope(s) are not authorized</Details></Error>
但是,当我尝试使用相同的凭据、代码和bucket从本地机器写入bucket时,它会写入文件


我已尝试向服务帐户授予所有可能的权限,将帐户添加到bucket中。

最常见的原因是创建的GCE实例没有必要的云存储范围

您可以在此处阅读有关作用域的内容:

具体来说,在本例中,实例是使用
https://www.googleapis.com/auth/devstorage.read_only
,不允许创建存储桶

您可以在此处看到可用作用域的完整列表:

创建虚拟机时是否将存储范围设置为devstorage.full_control?@jterrace我不记得这样做过,可以稍后再做吗?运行时不能更改范围。它只能在VM创建时设置。@jterrace成功了,必须创建一个新VM,并授予所有权限。很高兴听到它成功了。我添加了一个答案,以便将来的用户可以看到它。