![](/img/trans.png)
[英]Spring batch reader changes to read file content from GCP cloud storage bucket
[英]Roles Required to write to Cloud Storage (GCP) from python (pandas)
我有一个问题要问你们中间的 GCP 鉴赏家。
我有一个问题,我可以通过 UI 和gsutil
上传到存储桶 - 但如果我尝试通过 python 执行此操作
df.to_csv('gs://BUCKET_NAME/test.csv')
我收到 403 权限不足错误。
我目前的猜测是python通过 API 执行此操作,并且需要一个额外的角色 - 让事情变得更加混乱桶。
我通过 pyenv 和 pandas '1.4.2' 使用 python 3.9.1
任何人都有同样的问题/知道我缺少什么角色?
gsutil
和gcloud
共享凭据。
这些凭据不与本地运行的其他代码共享。
快速修复但次优的解决方案是:
gcloud auth application-default login
并再次运行代码。
然后它将使用您配置为运行的gcloud
( gsutil
) 用户凭据,就像您使用服务帐户一样。
这些凭据存储(在 Linux 上)在${HOME}/.config/gcloud/application_default_credentials.json
中。
更好的解决方案是专门为您的应用创建一个服务帐户,并为其授予所需的最小 IAM 权限集(BigQuery、GCS 等)。
出于测试目的(.),您可以在本地下载服务帐户密钥。
然后,您可以通过(在 Linux 上)使用 Google 的应用程序默认凭据 (ADC)验证您的代码:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
python3 your_app.py
当您将利用 ADC 的代码部署到 Google Cloud 计算服务(Compute Engine、Cloud Run 等)时,它可以按原样部署,因为计算资源的凭据将自动从元数据服务获取。
您可以通过 Google 例如“Google IAM BigQuery”来查找列出角色的文档:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.