Google 云存储授权问题

Google Cloud Storage auth problems

我在 Google Cloud 中的帐户身份验证时遇到问题。我有一个帐户 (test_account@gmail.com),我用它来对 Google 存储进行不同的测试。现在我知道了,我想用另一个帐户做不同的事情(new_account@gmail.com)。

我使用 gcloud config set account `new_account@gmail.com` 更改了活动帐户,并删除了使用 gcloud auth revoke test_account@gmail.com 的旧帐户。当我查看活动帐户时,我得到:

>gcloud auth list
     Credentialed Accounts
ACTIVE  ACCOUNT
*       new_account@gmail.com

我使用命令 gcloud auth login 登录,没有遇到任何问题。

这就是为什么我认为一切都是正确的。但是当我执行我想要的代码时,我收到一条错误消息,指出旧帐户 (test_account@gmail.com) 无法访问我正在使用的特定存储桶。这是正确的,因为我删除了旧帐户对存储桶的访问权限,但我不明白为什么在我进行了所有更改后我仍然使用该帐户进行操作。

这正是我遇到的错误:

"code": 403,\n    "message": "test_account@gmail.com does not have storage.objects.get access to the Google Cloud Storage object.",\n    "errors": [\n      {\n        "message": "test_account@gmail.com does not have storage.objects.get access to the Google Cloud Storage object."

有没有人遇到同样的错误?我不知道还能做什么。我还根据 google 云文档的建议检查了这一点:

>gsutil version -l

gsutil version: 5.6
boto version: 2.49.0
python version: 3.8.10 (tags/v3.8.10:3d8993a, May  3 2021, 11:48:03) [MSC v.1928 64 bit (AMD64)]
OS: Windows 10
multiprocessing available: False
using cloud sdk: True
pass cloud sdk credentials to gsutil: True
config path(s): C:\Users\user\AppData\Roaming\gcloud\legacy_credentials\new_account@gmail.com\.boto
gsutil path: C:\Users\user\AppData\Local\Google\Cloud SDK\google-cloud-sdk\bin\gsutil
compiled crcmod: True
installed via package manager: False
editable install: False

而且任何地方都没有旧帐户的迹象。希望有人可以帮助我确定错误出在哪里,或者为什么命令 gsutil 将旧帐户保存在某处以便我可以将其删除。

谢谢!

您是否在代码中指定了单独的凭据文件,或者您是否正在使用 Cloud SDK 提供的默认应用程序凭据?如果是后者,您的旧帐户可能仍在文件 ~/.config/gcloud/application_default_credentials.json.

中用作默认帐户

您可以使用以下命令更改此设置:

gcloud auth application-default login

https://cloud.google.com/sdk/gcloud/reference/auth/application-default/login