modules/secure-cloud-run-security/metadata.yaml (141 lines of code) (raw):

# Copyright 2024 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: blueprints.cloud.google.com/v1alpha1 kind: BlueprintMetadata metadata: name: terraform-google-cloud-run-secure-cloud-run-security annotations: config.kubernetes.io/local-config: "true" spec: info: title: Secure Cloud Run Security source: repo: https://github.com/GoogleCloudPlatform/terraform-google-cloud-run.git sourceType: git dir: /modules/secure-cloud-run-security version: 0.17.2 actuationTool: flavor: Terraform version: ">= 0.13" description: {} content: examples: - name: cloud_run_vpc_connector location: examples/cloud_run_vpc_connector - name: secure_cloud_run location: examples/secure_cloud_run - name: secure_cloud_run_standalone location: examples/secure_cloud_run_standalone - name: simple_cloud_run location: examples/simple_cloud_run - name: simple_cloud_run_with_cmek location: examples/simple_cloud_run_with_cmek - name: simple_job_exec location: examples/simple_job_exec - name: v2 location: examples/v2 - name: v2_with_gmp location: examples/v2_with_gmp interfaces: variables: - name: decrypters description: List of comma-separated owners for each key declared in set_decrypters_for. varType: list(string) defaultValue: [] - name: encrypters description: List of comma-separated owners for each key declared in set_encrypters_for. varType: list(string) defaultValue: [] - name: folder_id description: The folder ID to apply the policy to. varType: string defaultValue: "" - name: groups description: " Groups which will have roles assigned.\n The Serverless Administrators email group which the following roles will be added: Cloud Run Admin, Compute Network Viewer and Compute Network User.\n The Serverless Security Administrators email group which the following roles will be added: Cloud Run Viewer, Cloud KMS Viewer and Artifact Registry Reader.\n The Cloud Run Developer email group which the following roles will be added: Cloud Run Developer, Artifact Registry Writer and Cloud KMS CryptoKey Encrypter.\n The Cloud Run User email group which the following roles will be added: Cloud Run Invoker.\n" varType: |- object({ group_serverless_administrator = optional(string, null) group_serverless_security_administrator = optional(string, null) group_cloud_run_developer = optional(string, null) group_cloud_run_user = optional(string, null) }) defaultValue: {} - name: key_name description: Key name. varType: string required: true - name: key_protection_level description: "The protection level to use when creating a version based on this template. Possible values: [\"SOFTWARE\", \"HSM\"]" varType: string defaultValue: HSM - name: key_rotation_period description: Period of key rotation in seconds. varType: string defaultValue: 2592000s - name: keyring_name description: Keyring name. varType: string required: true - name: kms_project_id description: The project where KMS will be created. varType: string required: true - name: location description: The location where resources are going to be deployed. varType: string required: true - name: organization_id description: The organization ID to apply the policy to. varType: string defaultValue: "" - name: owners description: List of comma-separated owners for each key declared in set_owners_for. varType: list(string) defaultValue: [] - name: policy_for description: "Policy Root: set one of the following values to determine where the policy is applied. Possible values: [\"project\", \"folder\", \"organization\"]." varType: string defaultValue: project - name: prevent_destroy description: Set the prevent_destroy lifecycle attribute on keys.. varType: bool defaultValue: true - name: serverless_project_id description: The project where Cloud Run is going to be deployed. varType: string required: true outputs: - name: key_self_link description: Key self link. - name: keyring_resource description: Keyring resource. - name: keyring_self_link description: Self link of the keyring. requirements: roles: - level: Project roles: - roles/run.admin - roles/iam.serviceAccountAdmin - roles/artifactregistry.admin - roles/iam.serviceAccountUser - roles/serviceusage.serviceUsageViewer - roles/cloudkms.admin - level: Project roles: - roles/resourcemanager.folderAdmin - roles/resourcemanager.projectCreator - roles/resourcemanager.projectDeleter - level: Project roles: - roles/accesscontextmanager.policyAdmin - roles/orgpolicy.policyAdmin services: - cloudresourcemanager.googleapis.com - storage-api.googleapis.com - serviceusage.googleapis.com - run.googleapis.com - cloudkms.googleapis.com - iam.googleapis.com - accesscontextmanager.googleapis.com - cloudbilling.googleapis.com - monitoring.googleapis.com - compute.googleapis.com