Terraform 0.11 - IAM policy for Pubsub Topic

पबस टॉपिक के लिए IAM नीति




terraform

पबस टॉपिक के लिए IAM नीति

तीन विभिन्न संसाधन आपको पबसॉब विषय के लिए अपनी IAM नीति का प्रबंधन करने में मदद करते हैं। इन संसाधनों में से प्रत्येक एक अलग उपयोग के मामले में कार्य करता है:

  • google_pubsub_topic_iam_policy : आधिकारिक। विषय के लिए IAM नीति सेट करता है और पहले से संलग्न किसी भी मौजूदा नीति को प्रतिस्थापित करता है।
  • google_pubsub_topic_iam_binding : किसी दी गई भूमिका के लिए आधिकारिक। सदस्यों की सूची में भूमिका प्रदान करने के लिए IAM नीति को अद्यतन करता है। विषय के लिए IAM नीति के भीतर अन्य भूमिकाएं संरक्षित हैं।
  • google_pubsub_topic_iam_member : गैर-आधिकारिक। नए सदस्य को भूमिका देने के लिए IAM नीति को अद्यतन करता है। विषय के लिए भूमिका के लिए अन्य सदस्य संरक्षित हैं।

google_pubsub_topic_iam_policy

data "google_iam_policy" "admin" {
  binding {
    role    = "roles/editor"
    members = [
      "user:[email protected]",
    ]
  }
}

resource "google_pubsub_topic_iam_policy" "editor" {
  topic       = "your-topic-name"
  policy_data = "${data.google_iam_policy.admin.policy_data}"
}

google_pubsub_topic_iam_binding

resource "google_pubsub_topic_iam_binding" "editor" {
  topic   = "your-topic-name"
  role    = "roles/editor"
  members = [
    "user:[email protected]",
  ]
}

google_pubsub_topic_iam_member

resource "google_pubsub_topic_iam_member" "editor" {
  topic  = "your-topic-name"
  role   = "roles/editor"
  member = "user:[email protected]"
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • topic - (आवश्यक) IAM नीति संलग्न करने के लिए विषय का नाम या आईडी।

  • project - (वैकल्पिक) वह परियोजना जिसमें संसाधन होता है। यदि यह प्रदान नहीं किया जाता है, तो प्रदाता परियोजना का उपयोग किया जाता है।

  • member/members - (आवश्यक) पहचान जिन्हें role में विशेषाधिकार प्रदान किया जाएगा। प्रत्येक प्रविष्टि में निम्न मान हो सकते हैं:

    • allUsers : एक विशेष पहचानकर्ता जो इंटरनेट पर मौजूद किसी भी व्यक्ति का प्रतिनिधित्व करता है; Google खाते के साथ या उसके बिना।
    • allAuthenticatedUsers : एक विशेष पहचानकर्ता जो किसी ऐसे व्यक्ति का प्रतिनिधित्व करता है जो Google खाते या सेवा खाते से प्रमाणित होता है।
    • उपयोगकर्ता: {emailid} : एक ईमेल पता जो एक विशिष्ट Google खाते का प्रतिनिधित्व करता है। उदाहरण के लिए, [email protected] या [email protected]
    • serviceAccount: {emailid} : एक ईमेल पता जो एक सेवा खाते का प्रतिनिधित्व करता है। उदाहरण के लिए, [email protected]
    • समूह: {emailid} : एक ईमेल पता जो एक Google समूह का प्रतिनिधित्व करता है। उदाहरण के लिए, [email protected]
    • डोमेन: {domain} : एक Google Apps डोमेन नाम जो उस डोमेन के सभी उपयोगकर्ताओं का प्रतिनिधित्व करता है। उदाहरण के लिए, google.com या example.com।
  • role - (आवश्यक) वह भूमिका जिसे लागू किया जाना चाहिए। प्रति भूमिका केवल एक ही google_pubsub_topic_iam_binding का उपयोग किया जा सकता है। ध्यान दें कि कस्टम भूमिकाएँ प्रारूप [projects|organizations]/{parent-name}/roles/{role-name} की होनी चाहिए।

  • policy_data - ( google_pubsub_topic_iam_policy द्वारा केवल आवश्यक) एक google_iam_policy डेटा स्रोत द्वारा उत्पन्न नीति डेटा।

संदर्भ संदर्भित करता है

ऊपर सूचीबद्ध तर्कों के अलावा, निम्नलिखित गणना की गई विशेषताएँ निर्यात की जाती हैं:

  • etag - (कम्प्यूटेड) विषय की IAM नीति का etag।

आयात

Pubsub विषय IAM संसाधनों को परियोजना, विषय नाम, भूमिका और सदस्य का उपयोग करके आयात किया जा सकता है।

$ terraform import google_pubsub_topic_iam_policy.editor projects/{your-project-id}/topics/{your-topic-name}

$ terraform import google_pubsub_topic_iam_binding.editor "projects/{your-project-id}/topics/{your-topic-name} roles/editor"

$ terraform import google_pubsub_topic_iam_member.editor "projects/{your-project-id}/topics/{your-topic-name} roles/editor [email protected]"