安全無虞的 Cloud Run 服務
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
建立兩項服務,一項是公開前端,另一項是安全後端。使用 IAM 政策設定存取權。
程式碼範例
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],[],[],[],null,["# Secure Cloud Run services\n\nCreate two services; one a public front end, the other a secure backend. Uses IAM policies to configure access.\n\nCode sample\n-----------\n\n### Terraform\n\n\nTo learn how to apply or remove a Terraform configuration, see\n[Basic Terraform commands](/docs/terraform/basic-commands).\n\n\nFor more information, see the\n[Terraform provider reference documentation](https://registry.terraform.io/providers/hashicorp/google/latest/docs).\n\n resource \"google_cloud_run_v2_service\" \"renderer\" {\n name = \"renderer\"\n location = \"us-central1\"\n\n deletion_protection = false # set to \"true\" in production\n\n template {\n containers {\n # Replace with the URL of your Secure Services \u003e Renderer image.\n # gcr.io/\u003cPROJECT_ID\u003e/renderer\n image = \"us-docker.pkg.dev/cloudrun/container/hello\"\n }\n service_account = google_service_account.renderer.email\n }\n }\n\n resource \"google_cloud_run_v2_service\" \"editor\" {\n name = \"editor\"\n location = \"us-central1\"\n\n deletion_protection = false # set to \"true\" in production\n\n template {\n containers {\n # Replace with the URL of your Secure Services \u003e Editor image.\n # gcr.io/\u003cPROJECT_ID\u003e/editor\n image = \"us-docker.pkg.dev/cloudrun/container/hello\"\n env {\n name = \"EDITOR_UPSTREAM_RENDER_URL\"\n value = google_cloud_run_v2_service.renderer.uri\n }\n }\n service_account = google_service_account.editor.email\n\n }\n }\n\n resource \"google_service_account\" \"renderer\" {\n account_id = \"renderer-identity\"\n display_name = \"Service identity of the Renderer (Backend) service.\"\n }\n\n resource \"google_service_account\" \"editor\" {\n account_id = \"editor-identity\"\n display_name = \"Service identity of the Editor (Frontend) service.\"\n }\n\n resource \"google_cloud_run_service_iam_member\" \"editor_invokes_renderer\" {\n location = google_cloud_run_v2_service.renderer.location\n service = google_cloud_run_v2_service.renderer.name\n role = \"roles/run.invoker\"\n member = \"serviceAccount:${google_service_account.editor.email}\"\n }\n\n data \"google_iam_policy\" \"noauth\" {\n binding {\n role = \"roles/run.invoker\"\n members = [\n \"allUsers\",\n ]\n }\n }\n\n resource \"google_cloud_run_service_iam_policy\" \"noauth\" {\n location = google_cloud_run_v2_service.editor.location\n project = google_cloud_run_v2_service.editor.project\n service = google_cloud_run_v2_service.editor.name\n\n policy_data = data.google_iam_policy.noauth.policy_data\n }\n\n output \"backend_url\" {\n value = google_cloud_run_v2_service.renderer.uri\n }\n\n output \"frontend_url\" {\n value = google_cloud_run_v2_service.editor.uri\n }\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=cloudrun)."]]