
Выход из Google Cloudкажетсякак будто это должно быть легко. Если я запущу:
$ unset GOOGLE_APPLICATION_CREDENTIALS
$ gcloud auth revoke --all
Revoked credentials:
- [my account]
$ gcloud auth list
No credentialed accounts.
To login, run:
$ gcloud auth login `ACCOUNT`
Сначала этовыглядиткак будто я полностью вышел из gcloud
. Но посмотрите, что происходит, когда я открываю оболочку Python:
>>> from google.cloud import secretmanager_v1beta1 as secretmanager
>>> client = secretmanager.SecretManagerServiceClient()
/Users/my/path/.venv/lib/python3.7/site-packages/google/auth/_default.py:66: UserWarning: Your application has authenticated using end user credentials from Google Cloud SDK. We recommend that most server applications use service accounts instead. If your application continues to use end user credentials from Cloud SDK, you might receive a "quota exceeded" or "API not enabled" error. For more information about service accounts, see https://cloud.google.com/docs/authentication/
warnings.warn(_CLOUD_SDK_CREDENTIALS_WARNING)
>>> path = client.secret_version_path(project="my-project-name", secret="my-secret", secret_version="latest")
>>> secret = client.access_secret_version(path)
>>> secret.payload.data.decode()
"Oh, no! I should be secret!"
Как видите, даже несмотря на то, что я запустил, gcloud auth revoke --all
я все еще могу получить доступ к Google Cloud через Python SDK, используя учетные данные пользователя, которые где-то хранятся. Есть ли способполностьювыйти из Google Cloud на моем ноутбуке?
EDIT: для дальнейшего уточнения: на этом компьютере не сохранено ни одного JSON-файла учетной записи Google Cloud Service, и я отменил установку GOOGLE_APPLICATION_CREDENTIALS
переменной среды.
решение1
Не уверен, поможет ли это вам, но я столкнулся с похожей проблемой. После того, как я отозвал все учетные данные с помощью команды, gcloud auth revoke --all
я все еще мог выполнять скрипты в своей среде. В конце концов, я нашел файл учетных данных приложения по умолчанию, расположенный в~/.config/gcloud/application_default_credentials.json. Переименование или удаление этого файла помогло полностью отозвать учетные данные. И теперь клиентская библиотека не имеет доступа к среде:
File "audit_test.py", line 8, in main
client = resource_manager.Client()
File "fake_path/python3.7/site-packages/google/cloud/resource_manager/client.py", line 72, in __init__
super(Client, self).__init__(credentials=credentials, _http=_http)
File "fake_path/python3.7/site-packages/google/cloud/client.py", line 132, in __init__
credentials, _ = google.auth.default()
File "fake_path/python3.7/site-packages/google/auth/_default.py", line 321, in default
raise exceptions.DefaultCredentialsError(_HELP_MESSAGE)
google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started
решение2
Как прокомментировал вышеАджанЧарльз, gcloud auth application-default revoke
работает. Просто нажмите команду, и она удалит application-default
кредиты. Посмотрите разницуздесьУ меня была та же проблема, и только это помогло.
Редактировать:
Помните, что вам все равно нужно вызвать , gcloud auth revoke --all
поскольку gcloud auth application-default revoke
удаляются только учетные данные приложения по умолчанию.