Интерфейс политик доступа 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"
    }
  }
}
Другие вопросы по тегам