COS访问策略界面与Terraform

问题描述

在界面中,我可以转到COS Bucket访问策略并轻松分配策略,该策略看起来或多或少类似于:

Cloud Object Storage service
serviceInstance string equals foo-bar,resource string equals foo-bar-pcaps,resourceType string equals bucket

我正在努力寻找一种通过terraform进行相同操作的方法,因为每当我尝试使用正确的TF代码(如:

resource "ibm_iam_service_policy" "policy_pcaps" {
  iam_service_id = ibm_iam_service_id.serviceID_pcaps.id
  roles        = ["Writer"]
  resources {
    service = "cloud-object-storage"
    resource = ibm_cos_bucket.pcaps.id
  }
}

我最后要结束

Cloud Object Storage service
resource string equals crn:v1:bluemix:public:cloud-object-storage:global:a/27beaaea79a<redacted>34dd871b:8b124bc6-147c-47ba-bd47-<redacted>:bucket:foo-bar-pcaps:meta:rl:us-east

问题在于,此处要求的Writer策略无法与该策略详细信息一起正常工作。

如何使用Terraform实现类似于第一个策略的东西?

谢谢

解决方法

您可以实现与示例Service Policy by using attributes类似的方式。

我通过UI为Cloud Object Storage创建了一个策略,并指定了该策略以包含存储桶名称。然后我用了:

ibmcloud iam access-group-policy GROUP_NAME POLICY_ID --output JSON

以更好地了解该政策。

由此,我创建了此示例地形片段并对其进行了测试。它正在创建IAM访问组+策略:

resource "ibm_iam_access_group" "accgrp_cos" {
  name = "test_cos"
}

resource "ibm_iam_access_group_policy" "policy" {
  access_group_id = ibm_iam_access_group.accgrp_cos.id
  roles        = ["Writer"]

  resources {
    service =   "cloud-object-storage"

    attributes = {

    resourceType = "bucket"
    resource = "tf-test-cos"
    }
  }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...