Google Cloud vs AWS службы ролей
Я пришел из AWS, не уверен, как это сделать с gcp.
В AWS я могу создать экземпляр службы EC2, Lambda, ECS и т. Д. Я присоединяю политики к этой роли, чтобы предоставить ей необходимый доступ. Затем я присоединяю эту роль к экземпляру EC2, лямбде и т. Д. Статические ключи не используются, секреты не передаются.
Как мне сделать это с GCP? Как мне прикрепить роль (или, может быть, учетную запись службы gcp?) К экземпляру gce, облачной функции, развертыванию / обслуживанию gke и т. Д.?
У GCP есть "служебные учетные записи" и что-то, что он называет ролями, и что-то, называемое "областями действия", но мне не ясно, как их прикрепить и предоставить доступ к ресурсам безоговорочно (без передачи секретов / ключей).
2 ответа
Для таких служб, как Compute Engine, App Engine и т. Д. Google автоматически создает учетную запись службы по умолчанию. Когда вы создаете экземпляр или когда он выключен, вы можете изменить привилегии, назначенные учетной записи службы по умолчанию, или даже изменить используемую учетную запись службы.
Учетная запись службы по умолчанию имеет предопределенное имя [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
Эта ссылка предоставит больше информации.
Вы можете получить доступ к учетным данным, созданным учетной записью службы по умолчанию, из метаданных экземпляра. Вот пример в Python. В этом примере загружаются учетные данные учетной записи службы по умолчанию для доступа к Google Cloud Storage:
from google.auth import compute_engine
from google.cloud import storage
credentials = compute_engine.Credentials()
client = storage.Client(credentials=credentials, project=project)
Распространенной стратегией является использование учетных данных приложения по умолчанию (ADC) для автоматического обнаружения учетных данных:
from google.cloud import storage
client = storage.Client()
Для ВМ вам нужно будет сначала остановить его. Вы можете выполнить следующие шаги:
- Создайте учетную запись службы с необходимыми привилегиями, перейдя по https://console.cloud.google.com/iam-admin/serviceaccounts?project={project-id}
- Перейти к списку виртуальных машин.
- Остановить ВМ
- Нажмите не имя виртуальной машины. Нажмите изменить вверху.
- Прокрутите вниз до раздела учетной записи службы.
- Выберите учетную запись службы, которую вы хотите связать с виртуальной машиной.