问题描述
我们一直在使用Cloud Functions触发导出的每日自动完整数据库导出,从Google Cloud SQL到Google Cloud Storage(跨项目)。 (请参见此article)
从4天前开始,我们收到403错误,日志显示:“该服务帐户没有该存储桶所需的权限。”
我们尚未进行任何权限更改和运行:
gsutil acl get [BUCKET]
仍然显示出我们的Google Cloud SA具有我们所期望的“写作者”角色。
从我们的角度来看,似乎我们已经随机失去了此工作流程的权限。有人对如何调试它并使此工作流重新工作有任何建议吗?
编辑:这似乎是一个最近引入的错误,https://issuetracker.google.com/issues/166478544
解决方法
是的,您是正确的,看来这确实是一个似乎正在影响情况的错误。关于您链接的公共问题中的问题,它似乎确实与存储桶级别的权限有关。考虑到该错误会在存储桶级别影响您的事实,与在IAM中修改整个角色相比,在此级别使用许可更有意义。要在存储桶级别修改权限,可以按照here指示进行操作。
或者,只需执行以下步骤。
- 在Google Cloud Platform Web控制台中,导航到“存储浏览器”。
- 找到您要编辑权限的存储桶。
- 单击三个点,然后选择“编辑存储桶权限”。
- 在“权限”标签中,设置存储桶级权限。
- 单击“添加成员”,然后输入要用于访问存储桶的服务帐户。
- 在“角色”下,选择“存储对象管理员”或其他允许访问存储桶的角色。与
storage.buckets.get
关联的链接可用here。 - 完成后,点击
Add
。
无论如何,我建议您遵循变通方法并等待public issue中的更新,直到修复为止。但是,请记住,如official documentation所示,实际上建议使用存储桶级访问权限。