Назад | Перейти на главную страницу

Как получить файл 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's & Services раздел в GCP?

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

Просто хочу отметить, что невозможно перечислить все ресурсы из всех ваших проектов. В настоящее время только Консоль может делать это в разделе Ресурсы на Домашней странице. Однако вы можете перечислить услуги по отдельности, а затем присоединиться к ним. Вы можете сделать это с помощью 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.- An Ключ API - это еще одна возможность, но она будет зависеть от вызываемой конечной точки. Помните, что вам нужно делать отдельные запросы, вы можете попробовать добавить ключевой параметр в свои запросы REST, например:

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

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

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

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