Terraform 0.11 - IAM policy for Spanner databases

स्पैनर डेटाबेस के लिए IAM नीति




terraform

स्पैनर डेटाबेस के लिए IAM नीति

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

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

google_spanner_database_iam_policy

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

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

resource "google_spanner_database_iam_policy" "database" {
  instance    = "your-instance-name"
  database    = "your-database-name"
  policy_data = "${data.google_iam_policy.admin.policy_data}"
}

google_spanner_database_iam_binding

resource "google_spanner_database_iam_binding" "database" {
  instance   = "your-instance-name"
  database   = "your-database-name"
  role       = "roles/compute.networkUser"

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

google_spanner_database_iam_member

resource "google_spanner_database_iam_member" "database" {
  instance   = "your-instance-name"
  database   = "your-database-name"
  role       = "roles/compute.networkUser"
  member     = "user:[email protected]"
}

तर्क संदर्भ

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

  • database - (आवश्यक) स्पैनर डेटाबेस का नाम।

  • instance - (आवश्यक) डेटाबेस के अंतर्गत स्पैनर उदाहरण का नाम है।

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

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

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

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

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

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

आयात

सभी आयात सिंटैक्स के लिए, "प्रश्न में संसाधन" निम्नलिखित में से कोई भी रूप ले सकता है:

  • {{परियोजना}} / {{उदाहरण}} / {{डेटाबेस}}
  • {{उदाहरण}} / {{डेटाबेस}} (परियोजना प्रदाता परियोजना से लिया गया है)

IAM सदस्य आयात स्थान-सीमांकित पहचानकर्ताओं का उपयोग करते हैं; प्रश्न, भूमिका और खाता, जैसे संसाधन

$ terraform import google_spanner_database_iam_member.database "project-name/instance-name/database-name roles/viewer [email protected]"

IAM बाइंडिंग आयात अंतरिक्ष-सीमांकित पहचानकर्ताओं का उपयोग करता है; प्रश्न और भूमिका में संसाधन, उदा

$ terraform import google_spanner_database_iam_binding.database "project-name/instance-name/database-name roles/viewer"

IAM नीति आयात प्रश्न में संसाधन के पहचानकर्ता का उपयोग करते हैं, जैसे

$ terraform import google_spanner_database_iam_policy.database project-name/instance-name/database-name