Tôi đang cố gắng thiết lập một loạt tài khoản dịch vụ cho một loạt chủ đề và đăng ký pubsub khác. Điều tôi đang cố gắng đạt được là mỗi dịch vụ vi mô chỉ được phép ghi vào một chủ đề cụ thể và/hoặc đăng ký một thuê bao cụ thể.
Tôi hiện đã có:
tài nguyên "google_service_account" "my_sa" {
account_id = "tài khoản dịch vụ của tôi"
display_name = "Tài khoản dịch vụ cho..."
}
tài nguyên "google_project_iam_member" "my_pubsub_iam" {
dự án = var.project
vai trò = "vai trò/pubsub.publisher"
thành viên = "serviceAccount:${google_service_account.my_sa.email}"
}
Cái nào thiết lập my_sa dưới dạng pubsub.publisher và sẽ cho phép họ xuất bản lên bất kỳ chủ đề nào.
Đối với những người đăng ký tôi có:
# thiết lập tài khoản như trên nhưng có thuê bao
tài nguyên "google_pubsub_subscription" "crm_sub" {
name = "đăng ký của tôi"
chủ đề = var.topic
}
Thiết lập những thứ như thế này sẽ cho phép mỗi máy chủ đăng ký tất cả các đăng ký nếu họ là người đăng ký và viết cho tất cả các chủ đề nếu họ là nhà xuất bản, phải không?
Tôi đã xem ví dụ tại https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_topic_iam và cố gắng hiểu điều đó và https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/iam_policy nhưng tôi đang gặp khó khăn một chút.
Tôi có nên chỉ cần thêm
dữ liệu "google_iam_policy" "admin" {
ràng buộc {
vai trò = "vai trò/biên tập viên"
thành viên = [
"serviceAccount:${google_service_account.my_pubsub_iam.email}",
]
}
}
tài nguyên "google_pubsub_topic_iam_policy" "chính sách" {
dự án = google_pubsub_topic.example.project
chủ đề = google_pubsub_topic.example.name
policy_data = data.google_iam_policy.admin.policy_data
}
Đến từng dịch vụ?
Tôi đã chia chúng ra và một số chủ đề có nhiều người viết, vì vậy nếu giải pháp trên là giải pháp, thì làm cách nào để xử lý vấn đề đó? Chính sách biên tập viên mới cho mỗi dịch vụ hay chính sách đó sẽ ghi đè lên chính sách cho chủ đề?