@@ -63,13 +63,6 @@ resource "google_service_account_iam_member" "token-creator" {
6363 member = " serviceAccount:${ google_service_account . cloud-compose . email } "
6464}
6565
66- # push metrics to GCP
67- resource "google_project_iam_member" "stackdriver" {
68- project = var. project_id
69- role = " roles/monitoring.metricWriter"
70- member = " serviceAccount:${ google_service_account . cloud-compose . email } "
71- }
72-
7366# push logs to GCP
7467resource "google_project_iam_member" "log" {
7568 project = var. project_id
@@ -171,10 +164,50 @@ data "google_project_iam_custom_role" "gce-suspend" {
171164 project = var. project_id
172165 role_id = " suspendVM"
173166}
167+
168+
169+ # =============================================================================
170+ # LIBOPS ADMIN SERVICES IDENTITY
171+ # =============================================================================
172+
173+ resource "google_service_account" "internal-services" {
174+ account_id = format (" internal-services-%s" , var. name )
175+ project = var. project_id
176+ }
177+
178+ resource "google_service_account_iam_member" "internal-services-keys" {
179+ service_account_id = google_service_account. internal-services . id
180+ role = " roles/iam.serviceAccountKeyAdmin"
181+ member = " serviceAccount:${ google_service_account . cloud-compose . email } "
182+ }
183+
184+ # push metrics to GCP
185+ resource "google_project_iam_member" "stackdriver" {
186+ project = var. project_id
187+ role = " roles/monitoring.metricWriter"
188+ member = " serviceAccount:${ google_service_account . internal-services . email } "
189+ }
190+
191+ # suspend the GCP instance
174192resource "google_project_iam_member" "gce-suspend" {
175193 project = var. project_id
176194 role = data. google_project_iam_custom_role . gce-suspend . name
177- member = " serviceAccount:${ google_service_account . cloud-compose . email } "
195+ member = " serviceAccount:${ google_service_account . internal-services . email } "
196+ }
197+
198+ # =============================================================================
199+ # DOCKER COMPOSE APP IDENTITY
200+ # =============================================================================
201+
202+ resource "google_service_account" "app" {
203+ account_id = var. name
204+ project = var. project_id
205+ }
206+
207+ resource "google_service_account_iam_member" "app-keys" {
208+ service_account_id = google_service_account. app . id
209+ role = " roles/iam.serviceAccountKeyAdmin"
210+ member = " serviceAccount:${ google_service_account . cloud-compose . email } "
178211}
179212
180213# =============================================================================
0 commit comments