在界面中,我可以转到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实现与第一个策略类似的功能?
谢谢
发布于 2020-10-22 20:27:14
您可以实现类似于此示例Service Policy by using attributes的功能。
我通过云对象存储的UI创建了一个策略,并指定该策略包含存储桶名称。然后我使用:
ibmcloud iam access-group-policy GROUP_NAME POLICY_ID --output JSON为了更好地理解这项政策。
在此基础上,我创建了这个样例terraform代码片段并对其进行了测试。它正在创建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"
}
}
}https://stackoverflow.com/questions/64122434
复制相似问题