如何在Terraform中设置Google Data Catalog标签模板的公开可见性?
解决Terraform创建Google Data Catalog标签模板设为公开的问题
你遇到的问题是因为google_data_catalog_tag_template资源本身不支持is_publicly_readable参数,要实现标签模板公开可读,需要通过IAM权限绑定来完成——这和API中设置isPubliclyReadable=true的效果本质一致,都是给所有用户授予标签模板的查看权限。
修正后的代码
先移除原代码中无效的is_publicly_readable = true,再添加IAM绑定资源配置公开权限:
resource "google_data_catalog_tag_template" "data_category" { project = var.project_id region = var.location tag_template_id = "data_category" display_name = "Data Category" fields { field_id = "data_category1" display_name = "Data Category 1" description = "" is_required = true order = 3 type { enum_type { allowed_values { display_name = "Category A" } allowed_values { display_name = "Category B" } } } } } # 配置标签模板为公开可读 resource "google_data_catalog_tag_template_iam_binding" "public_access" { project = var.project_id region = var.location tag_template_id = google_data_catalog_tag_template.data_category.tag_template_id role = "roles/datacatalog.tagTemplateViewer" members = ["allUsers"] }
关键说明
google_data_catalog_tag_template_iam_binding负责管理标签模板的IAM权限,给allUsers(所有用户)绑定roles/datacatalog.tagTemplateViewer角色,即可实现公开可读的效果,完全等价于API中设置isPubliclyReadable=true。- 通过引用已创建的标签模板资源ID,避免硬编码带来的配置不一致问题。
内容的提问来源于stack exchange,提问作者Dina Kleper
相关产品推荐
相关产品推荐

