Интерфейс политик доступа COS и terraform
В интерфейсе я могу перейти к COS Bucket Access Policies и легко назначить политику, которая будет выглядеть примерно так:
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?
благодаря
1 ответ
Вы можете добиться этого аналогично этому примеру Политики обслуживания, используя атрибуты.
Я создал политику через пользовательский интерфейс для облачного объектного хранилища и указал, что политика должна содержать имя сегмента. Тогда я использовал:
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"
}
}
}