Как получить файл application_default_credentials.json в GCP?
Я занимаюсь разработкой приложения локально (python), я хочу перечислить детали всех проектов и их экземпляров.
Для этого я сгенерировал application_default_credentials.json
подать, выполнив gcloud auth application-default login
Команда, используя этот файл, я могу перечислить все мои проекты и их экземпляры. Но
- Есть ли альтернативный способ создать это
application_default_credentials.json
файл? Если ДА, можете ли вы показать мне один пример для того же? - Вместо этого файла Есть ли какие-либо ключи (например, secret_id/secret_token..), чтобы получить подробную информацию обо всех проектах и их ресурсах?
- Файл
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.
Я лично рекомендую использовать служебные учетные записи, если вы собираетесь запрашивать только использование ресурсов.
Надеюсь, что приведенная выше информация поможет!