Как получить файл 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 экземпляра, я просто хотел собрать информацию обо всех проектах и ​​их экземплярах локально)

1 ответ

Просто хочу отметить, что невозможно перечислить все ресурсы из всех ваших проектов. В настоящее время только консоль может сделать это в разделе ресурсов на домашней странице. Однако вы можете перечислить услуги по отдельности, а затем присоединиться к ним. Вы можете сделать это, используя python и вызывая REST-запросы, а затем суммировать все свои результаты. Например, вы можете вызвать метод instances.list, чтобы вывести список instance, или disk.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. Я боюсь, что это невозможно для существующих учетных записей пользователей, таких как ваш адрес электронной почты. Вместо этого вы можете создать новый Client Id и сгенерировать его файл json.

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

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

Другие вопросы по тегам