如何解决使用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
[4] https://www.terraform.io/docs/providers/google/r/google_service_account_iam.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。