Terraform 0.11 - IAM policy for Pubsub Subscription

पबस सब्सक्रिप्शन के लिए IAM पॉलिसी




terraform

पबस सब्सक्रिप्शन के लिए IAM पॉलिसी

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

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

google_pubsub_subscription_iam_policy

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

resource "google_pubsub_subscription_iam_policy" "editor" {
  subscription = "your-subscription-name"
  policy_data  = "${data.google_iam_policy.admin.policy_data}"
}

google_pubsub_subscription_iam_binding

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

google_pubsub_subscription_iam_member

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

तर्क संदर्भ

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

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

  • 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_subscription_iam_binding का उपयोग किया जा सकता है। ध्यान दें कि कस्टम भूमिकाएँ प्रारूप [projects|organizations]/{parent-name}/roles/{role-name} की होनी चाहिए।

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

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

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

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

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

आयात

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

$ terraform import google_pubsub_subscription_iam_policy.editor projects/{your-project-id}/subscriptions/{your-subscription-name}

$ terraform import google_pubsub_subscription_iam_binding.editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor"

$ terraform import google_pubsub_subscription_iam_member.editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor [email protected]"