solutions/guardrails/configs/iam/project-iam.yaml (95 lines of code) (raw):

# Copyright 2022 Google LLC # # 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. apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-project-id-service-usage # kpt-set: ${guardrails-project-id}-service-usage namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:project-id@config-controller-project.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: project-id # kpt-set: ${guardrails-project-id} role: roles/serviceusage.serviceUsageAdmin --- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-project-id-storage-admin-project # kpt-set: ${guardrails-project-id}-storage-admin namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:project-id@config-controller-project.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: project-id # kpt-set: ${guardrails-project-id} role: roles/storage.admin --- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-project-id-sa-logging-admin-project # kpt-set: ${guardrails-project-id}-sa-logging-admin namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:project-id@config-controller-project.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: project-id # kpt-set: ${guardrails-project-id} role: roles/logging.admin --- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-bigquery-admin # kpt-set: ${guardrails-project-id}-bq-admin namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:project-id@config-controller-project.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: project-id # kpt-set: ${guardrails-project-id} role: roles/bigquery.admin --- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-pubsub-admin # kpt-set: ${guardrails-project-id}-pubsub-admin namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:project-id@config-controller-project.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: project-id # kpt-set: ${guardrails-project-id} role: roles/pubsub.admin --- apiVersion: iam.cnrm.cloud.google.com/v1beta1 kind: IAMPolicyMember metadata: name: guardrails-serviceaccount-crate # kpt-set: ${guardrails-project-id}-serviceaccount-admin namespace: config-control # kpt-set: ${management-namespace} annotations: cnrm.cloud.google.com/blueprint: 'kpt-pkg-fn-live' config.kubernetes.io/depends-on: resourcemanager.cnrm.cloud.google.com/namespaces/config-control/Project/guardrails-project-id # kpt-set: resourcemanager.cnrm.cloud.google.com/namespaces/${management-namespace}/Project/${guardrails-project-id} spec: member: serviceAccount:service-0000000000@gcp-sa-yakima.iam.gserviceaccount.com # kpt-set: serviceAccount:service-${management-project-number}@gcp-sa-yakima.iam.gserviceaccount.com resourceRef: apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Project external: config-controller-project # kpt-set: ${management-project-id} role: roles/iam.serviceAccountAdmin