Как получить файл application_default_credentials.json в GCP?

Я разрабатываю приложение локально (python), я хочу перечислить детали всех проектов и их экземпляров.

Для этого я создал файл application_default_credentials.json , выполнив команду gcloud auth application-default login . С помощью этого файла я могу перечислить все свои проекты и их экземпляры. Но

  1. Есть ли другой способ сгенерировать этот файл application_default_credentials.json ? Если ДА, не могли бы вы показать мне один пример того же?
  2. Вместо этого файла Есть ли какие-нибудь ключи (например, secret_id / secret_token ..) для получения сведений обо всех проектах и ​​их ресурсах?
  3. Файл application_default_credentials.json имеет client_id, client_secret и refresh_token. Можно ли сгенерировать эти ключи в разделе API и службы в GCP?

(У меня 3 проекта, и каждый проект имеет 3 экземпляра, Я просто хотел собрать подробную информацию обо всех проектах и ​​их экземплярах локально)

0
задан 27 July 2018 в 00:53
1 ответ

Просто хочу отметить, что невозможно перечислить все ресурсы из всех ваших проектов. В настоящее время только Консоль может делать это в разделе Ресурсы на Домашней странице. Однако вы можете перечислить услуги по отдельности, а затем присоединиться к ним. Вы можете сделать это с помощью python и вызвать запросов REST , а затем суммировать все свои результаты. Например, вы можете вызвать метод instance.list для вывода списка экземпляров или disks.list для вывода списка ваших дисков. Просто имейте в виду, что эти запросы сгруппированы по зонам.

Ответы на ваши вопросы:

1.- Для учетных записей пользователей вы можете проверить OAuth 2.0 Playground. Для служебных учетных записей это можно сделать с помощью консоли, gcloud и REST. Полные примеры см. по этой ссылке . С помощью REST вы можете использовать запрос POST:

POST https://iam.googleapis.com/v1/projects/PROJECT-ID/serviceAccounts/SA-NAME@PROJECT-ID.iam.gserviceaccount.com/keys

2.- API-ключ - еще одна возможность, но она будет зависеть от вызываемой конечной точки. Помните, что вам нужно делать индивидуальные запросы, вы можете попробовать добавить ключевой параметр в ваши запросы REST, например:

GET https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances?key=AAfdf43FE3..fdDgg

3. - Боюсь, это невозможно для существующих учетных записей пользователей, таких как ваш адрес электронной почты. Вместо этого вы можете создать новый идентификатор клиента и сгенерировать его файл json.

Я лично рекомендую использовать учетные записи служб, если вы собираетесь запрашивать только использование ресурсов.

Надеюсь, что приведенная выше информация поможет!

0
ответ дан 5 December 2019 в 05:34

Теги

Похожие вопросы