02-iso-org-policies/org-policies-sub-isolator-folders.tf (205 lines of code) (raw):

/** * Copyright 2024 The Isolator Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #/****************************************** # Security Folder # *****************************************/ # Compute Engine resource "google_org_policy_policy" "isolator_security_folder_restrict_vpc_peering" { name = "folders/${local.security_folder_id}/policies/compute.restrictVpcPeering" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", # https://autonomousthingz-life.medium.com/google-cloud-organisation-policies-get-the-restrict-vpc-peering-usage-organisation-policy-d87dce84a5e7 "under:folders/832634261155", "under:folders/1087601843002", "under:folders/391150242170", ] } } } } # Compute Engine # https://cloud.google.com/vpc/docs/private-service-connect-security#org-policies resource "google_org_policy_policy" "isolator_security_folder_restrict_psc_producer" { name = "folders/${local.security_folder_id}/policies/compute.restrictPrivateServiceConnectProducer" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", # https://cloud.google.com/vpc/docs/manage-security-private-service-connect-consumers "under:organizations/433637338589", ] } } } } # Compute Engine # https://cloud.google.com/vpc/docs/private-service-connect-security#org-policies resource "google_org_policy_policy" "isolator_security_folder_restrict_psc_consumer" { name = "folders/${local.security_folder_id}/policies/compute.restrictPrivateServiceConnectConsumer" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", ] } } } } # Compute Engine resource "google_org_policy_policy" "isolator_security_folder_gce_restrict_vpc_host_project" { name = "folders/${local.security_folder_id}/policies/compute.restrictSharedVpcHostProjects" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", ] } } } } # Compute Engine resource "google_org_policy_policy" "isolator_security_folder_gce_restrict_storage_use" { name = "folders/${local.security_folder_id}/policies/compute.storageResourceUseRestrictions" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", ] } } } } # Vertex AI Workbench resource "google_org_policy_policy" "isolator_security_folder_vertex_workbench_restrict_vpc_networks" { name = "folders/${local.security_folder_id}/policies/ainotebooks.restrictVpcNetworks" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", ] } } } } # Cloud Build resource "google_org_policy_policy" "isolator_security_folder_cloud_build_allowed_worker_pools" { name = "folders/${local.security_folder_id}/policies/cloudbuild.allowedWorkerPools" parent = "folders/${local.security_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.security_folder_id}", ] } } } } #/****************************************** # Data Folder # *****************************************/ # Compute Engine resource "google_org_policy_policy" "isolator_data_folder_restrict_vpc_peering" { name = "folders/${local.data_folder_id}/policies/compute.restrictVpcPeering" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", # https://autonomousthingz-life.medium.com/google-cloud-organisation-policies-get-the-restrict-vpc-peering-usage-organisation-policy-d87dce84a5e7 "under:folders/832634261155", "under:folders/1087601843002", "under:folders/391150242170", ] } } } } # Compute Engine # https://cloud.google.com/vpc/docs/private-service-connect-security#org-policies resource "google_org_policy_policy" "isolator_data_folder_restrict_psc_producer" { name = "folders/${local.data_folder_id}/policies/compute.restrictPrivateServiceConnectProducer" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", # https://cloud.google.com/vpc/docs/manage-security-private-service-connect-consumers "under:organizations/433637338589", ] } } } } # Compute Engine # https://cloud.google.com/vpc/docs/private-service-connect-security#org-policies resource "google_org_policy_policy" "isolator_data_folder_restrict_psc_consumer" { name = "folders/${local.data_folder_id}/policies/compute.restrictPrivateServiceConnectConsumer" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", ] } } } } # Compute Engine resource "google_org_policy_policy" "isolator_data_folder_gce_restrict_vpc_host_project" { name = "folders/${local.data_folder_id}/policies/compute.restrictSharedVpcHostProjects" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", ] } } } } # Compute Engine resource "google_org_policy_policy" "isolator_data_folder_gce_restrict_storage_use" { name = "folders/${local.data_folder_id}/policies/compute.storageResourceUseRestrictions" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", ] } } } } # Vertex AI Workbench resource "google_org_policy_policy" "isolator_data_folder_vertex_workbench_restrict_vpc_networks" { name = "folders/${local.data_folder_id}/policies/ainotebooks.restrictVpcNetworks" parent = "folders/${local.data_folder_id}" spec { inherit_from_parent = false rules { values { allowed_values = [ "under:folders/${local.data_folder_id}", ] } } } }