微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用terraform将IAM策略分配给Google云中的现有Cloud Build Service帐户失败

如何解决使用terraform将IAM策略分配给Google云中的现有Cloud Build Service帐户失败

我正在尝试将IAM策略文档分配给现有的Cloud Build Service帐户,但是由于某些原因而失败。 以下是我的iam政策

data "google_iam_policy" "vulznotepolicy" {
binding {
  role = "roles/containeranalysis.notes.occurrences.viewer"

  members = [
  "serviceaccount:<project_number>@cloudbuild.gserviceaccount.com"
  ]
 }
}

以下是对服务帐户的策略分配

resource "google_service_account_iam_policy" "buildsa" {
service_account_id = "serviceaccount:<project_number>@cloudbuild.gserviceaccount.com"
policy_data        = data.google_iam_policy.vulznotepolicy.policy_data
}

服务帐户ID不接受我提供的格式。我只给出了,它仍然不接受。不确定是什么问题

解决方法

按照约翰的正确建议,我使用以下内容将角色添加到了服务帐户中

resource "google_project_iam_policy" "buildsa" {
project = var.project_id
policy_data        = data.google_iam_policy.vulznotepolicy.policy_data
}

这虽然有效,但可能导致以下严重问题。请谨慎操作

由于这是一项权威性操作,因此,如果对这些操作的管理不当,则会将您拒之门外。这来自terraform“我们不建议您在提供者项目中使用google_project_iam_policy以避免将自己锁定,并且通常只应与完全由Terraform管理的项目一起使用。如果您确实使用了此资源,建议您在导入策略之前应用更改。”

,

我可以看到您正在尝试使用Terraform授予Cloud Build Service帐户一些IAM权限。

我将从阅读有关Cloud Build上的IAM角色的文档开始[1],然后您可以检查Cloud Build服务帐户的行为[2],然后检查其配置[3]。

由于您使用的是Terraform,因此我也会在这里查看[4]。

这些可以帮助您理解注释中指出的原因。


[1] https://cloud.google.com/cloud-build/docs/iam-roles-permissions

[2] https://cloud.google.com/cloud-build/docs/cloud-build-service-account

[3] https://cloud.google.com/cloud-build/docs/securing-builds/configure-access-for-cloud-build-service-account#before_you_begin

[4] https://www.terraform.io/docs/providers/google/r/google_service_account_iam.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。