Skip to content

Commit c63aa4f

Browse files
authored
feat!: Update least privilege default service account (#1844)
Co-authored-by: Jirka Korejtko <[email protected]>
1 parent 5bb1cd7 commit c63aa4f

File tree

11 files changed

+22
-231
lines changed

11 files changed

+22
-231
lines changed

autogen/main/sa.tf.tmpl

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

docs/upgrading_to_v30.0.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ release.
44

55
### Default cluster service account permissions modified
66

7-
When `create_service_account` is `true`, the service account will now be created with the `Logs Writer`, `Monitoring Metric Writer`, `Monitoring Viewer` and `Stackdriver Resource Metadata Writer` roles instead of the deprecated `Kubernetes Engine Node Service Account` role.
7+
When `create_service_account` is `true`, the service account will now be created with `Kubernetes Engine Default Node Service Account` role instead of `Kubernetes Engine Node Service Account` roles which is deprecated now.
8+
This is the Google recommended least privileged role to be used for the service account attached to the GKE Nodes.

modules/beta-autopilot-private-cluster/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/beta-autopilot-public-cluster/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/beta-private-cluster-update-variant/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/beta-private-cluster/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/beta-public-cluster-update-variant/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/beta-public-cluster/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/private-cluster-update-variant/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

modules/private-cluster/sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

sa.tf

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,31 +45,10 @@ resource "google_service_account" "cluster_service_account" {
4545
display_name = "Terraform-managed service account for cluster ${var.name}"
4646
}
4747

48-
resource "google_project_iam_member" "cluster_service_account-log_writer" {
48+
resource "google_project_iam_member" "cluster_service_account-nodeService_account" {
4949
count = var.create_service_account ? 1 : 0
5050
project = google_service_account.cluster_service_account[0].project
51-
role = "roles/logging.logWriter"
52-
member = google_service_account.cluster_service_account[0].member
53-
}
54-
55-
resource "google_project_iam_member" "cluster_service_account-metric_writer" {
56-
count = var.create_service_account ? 1 : 0
57-
project = google_project_iam_member.cluster_service_account-log_writer[0].project
58-
role = "roles/monitoring.metricWriter"
59-
member = google_service_account.cluster_service_account[0].member
60-
}
61-
62-
resource "google_project_iam_member" "cluster_service_account-monitoring_viewer" {
63-
count = var.create_service_account ? 1 : 0
64-
project = google_project_iam_member.cluster_service_account-metric_writer[0].project
65-
role = "roles/monitoring.viewer"
66-
member = google_service_account.cluster_service_account[0].member
67-
}
68-
69-
resource "google_project_iam_member" "cluster_service_account-resourceMetadata-writer" {
70-
count = var.create_service_account ? 1 : 0
71-
project = google_project_iam_member.cluster_service_account-monitoring_viewer[0].project
72-
role = "roles/stackdriver.resourceMetadata.writer"
51+
role = "roles/container.defaultNodeServiceAccount"
7352
member = google_service_account.cluster_service_account[0].member
7453
}
7554

0 commit comments

Comments
 (0)