COS访问策略接口与地形



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

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

我很难找到一种通过地形来做同样的事情的方法,因为每当我尝试使用合适的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实现类似于第一个策略的东西?

感谢

您可以通过使用属性实现类似于此示例的服务策略。

我通过云对象存储的UI创建了一个策略,并指定该策略包含存储桶名称。然后我用了:

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"
}
}
}

最新更新