Încerc să configurez o grămadă de conturi de serviciu pentru un alt grup de subiecte și abonamente pubsub. Ceea ce încerc să obțin este ca fiecărui microserviciu să i se permită doar să scrie la un anumit subiect și/sau să se aboneze la un anumit abonament.
Momentan am:
resursă „google_service_account” „my_sa” {
account_id = "contul-meu-serviciu"
display_name = "Un cont de serviciu pentru..."
}
resursă „google_project_iam_member” „my_pubsub_iam” {
proiect = var.proiect
rol = „roles/pubsub.publisher”
membru = „serviceAccount:${google_service_account.my_sa.email}”
}
Care configurează my_sa ca pubsub.publisher și ar trebui să le permită să publice pe orice subiect.
Pentru abonați am:
# configurați cont ca mai sus, dar cu abonat
resursă „google_pubsub_subscription” „crm_sub” {
nume = "abonamentul meu"
topic = var.topic
}
Configurarea lucrurilor astfel ar permite fiecărui server să se aboneze la toate abonamentele dacă sunt abonați și să scrie la toate subiectele dacă sunt editori, nu?
Am văzut exemplul la https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_topic_iam și a încercat să înțeleagă asta și https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/iam_policy dar mă chinui puțin.
Ar trebui să adaug pur și simplu
date „google_iam_policy” „admin” {
legare {
rol = "roluri/editor"
membri = [
„serviceAccount:${google_service_account.my_pubsub_iam.email}”,
]
}
}
resursă „google_pubsub_topic_iam_policy” „politică” {
proiect = google_pubsub_topic.example.project
topic = google_pubsub_topic.example.name
policy_data = data.google_iam_policy.admin.policy_data
}
La fiecare serviciu?
Le-am împărțit și unele subiecte au mai mulți scriitori, așa că dacă soluția de mai sus este, cum să o gestionez? O nouă politică de editor pentru fiecare serviciu sau aceasta va suprascrie politica pentru subiect?