![](/img/trans.png)
[英]How can I add IAM role for other project service account in Google Cloud in different project using Terraform
[英]Assigning IAM Policy to an existing Cloud Build Service Account in Google cloud using terraform fails
我正在尝试将 IAM 策略文档分配给现有的 Cloud Build 服务帐户,但由于某种原因失败了。 以下是我的 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 不接受我提供的格式。 我只给出了 <project_number> 仍然不接受。 不确定是什么问题
正如约翰正确建议的那样,我使用以下方法将角色添加到服务帐户
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 服务帐户授予一些 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.