我正在尝试将计算引擎实例中的文件写入存储桶(两者都属于同一个项目)。
我使用服务帐户跟踪了此处提到的步骤Python Example。
但它出现以下错误:
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>
但是当我尝试使用相同的凭据,代码和存储桶从本地计算机写入存储桶时,它会写入文件。
我尝试过向服务帐户授予每个可能的权限,将帐户添加到存储桶中。
答案 0 :(得分:1)
最常见的原因是创建的GCE实例没有必要的云存储范围。
您可以在此处阅读有关范围的信息: https://cloud.google.com/compute/docs/authentication#settingupinstances
具体来说,在这种情况下,实例是使用https://www.googleapis.com/auth/devstorage.read_only
创建的,不允许创建存储桶。
您可以在此处查看可用范围的完整列表: https://cloud.google.com/storage/docs/authentication#oauth-scopes