Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GCP预定义了每个项目和地形的IAM角色_Google Cloud Platform_Terraform_Google Iam_Terraform Provider Gcp - Fatal编程技术网

Google cloud platform GCP预定义了每个项目和地形的IAM角色

Google cloud platform GCP预定义了每个项目和地形的IAM角色,google-cloud-platform,terraform,google-iam,terraform-provider-gcp,Google Cloud Platform,Terraform,Google Iam,Terraform Provider Gcp,我希望对每个文件夹的GCP访问进行结构化,以便文件夹用户只能在文件夹中使用project viewer,并且在文件夹中创建的每个项目应只允许有权访问文件夹的团队在项目中使用特定的资源 我成功地创建了文件夹部分,项目将在terraform上创建,现在我有了一个拦截器如何使用预定义的角色执行每个项目iam权限。假设我有一个团队需要处理terraform创建的ProjectX,该团队将使用云SQL、计算引擎和网络管理。因此,理想情况下,我会在TF中创建,其中成员将是该组,角色将包含这些资源的预定义IA

我希望对每个文件夹的GCP访问进行结构化,以便文件夹用户只能在文件夹中使用project viewer,并且在文件夹中创建的每个项目应只允许有权访问文件夹的团队在项目中使用特定的资源

我成功地创建了文件夹部分,项目将在terraform上创建,现在我有了一个拦截器如何使用预定义的角色执行每个项目iam权限。假设我有一个团队需要处理terraform创建的ProjectX,该团队将使用云SQL、计算引擎和网络管理。因此,理想情况下,我会在TF中创建,其中成员将是该组,角色将包含这些资源的预定义IAM角色列表。但这是不可能做到的,我需要指导如何做到这一点

resource "google_project_iam_custom_role" "km-role" {
  role_id     = "KnowledgeManagementRole"
  title       = "Knowledge Management Custom Role"
  description = "Test role for KM"
  permissions = [
    "compute.*",
    "networkmanagement.*",
    "resourcemanager.projects.get",
    "resourcemanager.projects.list",
    "serviceusage.quotas.get",
    "serviceusage.services.get",
    "serviceusage.services.list",
  ]
}

不幸的是,没有对
*
的支持,因此在这种情况下,我必须编写30多个计算机权限。您也不能在自定义iam角色中使用预定义角色作为列表:/。

阅读GCP自定义角色,除了添加您希望角色拥有的所有权限之外,似乎没有其他方法创建自定义角色,这似乎是一种鼓励自定义角色粒度的方法,可以避免向自定义角色添加基本/预定义角色可能导致的安全事件

我发现Public Issue Tracker中有一个开放的功能请求,可以向自定义角色添加预定义角色:


如果您“启动”该请求,您将收到任何重要更新的通知,并跟踪其进度。

可以使用
google_project_iam_binding
进行用户组绑定,也许我不完全了解您的情况,您是否在创建自定义角色时遇到问题,或者有什么问题不允许您完成此步骤?问题是权限列表。例如,如果我想添加所有计算机权限,其中有40多个权限,我需要在aim_custom_角色中列出所有权限
google\u project\u iam\u binding
只支持代码中的一个权限。您不能在那里定义权限列表-这就是问题所在。我知道如何克服这一问题的唯一方法是使用
iam\u custom\u角色
,但您需要放置属于
计算机的所有可能权限。*
例如,因为表达式中不支持
*
。是的,也许我会查看服务帐户和模拟权限。不确定这是否是一个好方法…我不确定您计划如何实现服务帐户和模拟权限,但我认为您最终只需在流程中添加一个步骤,因为服务帐户也需要自定义角色。如果有用,请记住投票或接受答案。