Terraform 0.11 - IAM policy for projects

परियोजनाओं के लिए IAM नीति




terraform

परियोजनाओं के लिए IAM नीति

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

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

google_project_iam_policy

resource "google_project_iam_policy" "project" {
  project     = "your-project-id"
  policy_data = "${data.google_iam_policy.admin.policy_data}"
}

data "google_iam_policy" "admin" {
  binding {
    role = "roles/editor"

    members = [
      "user:[email protected]",
    ]
  }
}

google_project_iam_binding

resource "google_project_iam_binding" "project" {
  project = "your-project-id"
  role    = "roles/editor"

  members = [
    "user:[email protected]",
  ]
}

google_project_iam_member

resource "google_project_iam_member" "project" {
  project = "your-project-id"
  role    = "roles/editor"
  member  = "user:[email protected]"
}

तर्क संदर्भ

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

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

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

  • policy_data - ( google_project_iam_policy द्वारा केवल आवश्यक) google_iam_policy डेटा स्रोत जो IAM नीति का प्रतिनिधित्व करता है जिसे परियोजना पर लागू किया जाएगा। इस नीति को परियोजना में लागू किसी भी मौजूदा नीति के साथ मिला दिया जाएगा।

    इसे बदलने से पॉलिसी अपडेट हो जाती है।

    इसे हटाने से नीति को हटा दिया जाता है, लेकिन मूल परियोजना नीति को बरकरार रखा जाता है। यदि मूल प्रोजेक्ट नीति और डेटा स्रोत नीति के बीच ओवरलैपिंग binding प्रविष्टियाँ हैं, तो उन्हें हटा दिया जाएगा।

  • project - (वैकल्पिक) परियोजना आईडी। यदि निर्दिष्ट नहीं है, तो प्रदाता के साथ कॉन्फ़िगर की गई परियोजना की आईडी का उपयोग करता है।

  • authoritative - (DEPRECATED) (केवल google_project_iam_policy लिए वैकल्पिक), यह इंगित करता है कि यदि इस नीति को प्रोजेक्ट पर किसी भी मौजूदा IAM नीति को अधिलेखित करना चाहिए। जब सही पर सेट किया जाता है, तो आपकी कॉन्फ़िग फ़ाइल में मौजूद कोई भी पॉलिसी नहीं निकाली जाएगी । यह आपको अपनी परियोजना से तब तक के लिए लॉक कर सकता है जब तक कि एक संगठन प्रशासक आपके द्वारा फिर से एक्सेस नहीं करता है, इसलिए कृपया सावधानी बरतें। यदि यह तर्क true और आप संसाधन को हटाना चाहते हैं, तो आपको disable_project तर्क को true सेट करना होगा, यह स्वीकार करते हुए कि परियोजना किसी के लिए भी अप्राप्य होगी, लेकिन संगठन Admins, क्योंकि इसमें IAM नीति नहीं होगी। इसका उपयोग करने के बजाय, आपको google_project_iam_binding और google_project_iam_member उपयोग करना चाहिए।

  • disable_project - (DEPRECated) (वैकल्पिक, केवल google_project_iam_policy ) एक बूलियन मान जो true सेट होना चाहिए यदि आप एक google_project_iam_policy को हटाना चाहते हैं जो आधिकारिक है।

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

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

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

  • restore_policy - (DEPRECated) (केवल, google_project_iam_policy लिए गणना की गई), गैर-आधिकारिक नीति संसाधन हटाए जाने पर IAM नीति को पुनर्स्थापित किया जाएगा।

आयात

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

$ terraform import google_project_iam_policy.my_project your-project-id

$ terraform import google_project_iam_binding.my_project "your-project-id roles/viewer"

$ terraform import google_project_iam_member.my_project "your-project-id roles/viewer [email protected]"