Я хочу иметь возможность предоставить сервисной учетной записи в Google Cloud доступ к нескольким секретам на основе соглашения об именах или, что еще лучше, на основе метки.
Пока что это начинает выглядеть только как GCP предоставляет возможность предоставлять доступ на основе уровней организации, папки, проекта или секрета, и, кроме того, вы не сможете более детально понять, как настраивается IAM. См. Здесь
Я подумал, что, возможно, условия IAM GCP дадут мне больше гибкости, но мне и с этим не повезло. Используя приведенную ниже терраформу - мой SA по-прежнему может получить доступ ко всем секретам на уровне проекта.
resource "google_project_iam_member" "access_secrets" {
project = var.project_id
role = "roles/secretmanager.secretAccessor"
member = "serviceAccount:${google_service_account.service-a.email}"
provider = google-beta
condition {
title = "all-service-a-secrets"
description = "All Service A secrets"
expression = "resource.name.startsWith('projects/my-project/secrets/service-a-secrets')"
}
}
Исходя из того, что в основном использовался AWS, я чувствую, что разрешения были немного более гибкими. Кажется, что, возможно, ответ состоит в том, чтобы использовать проекты более свободно, но я не смог найти много мнений о лучших способах использования проектов GCP.