Terraform 0.11 - IAM policy for Google Cloud KMS key ring

Google क्लाउड KMS कुंजी रिंग के लिए IAM नीति




terraform

Google क्लाउड KMS कुंजी रिंग के लिए IAM नीति

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

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

google_kms_key_ring_iam_policy

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

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

resource "google_kms_key_ring_iam_policy" "key_ring" {
    key_ring_id = "your-key-ring-id"
    policy_data = "${data.google_iam_policy.admin.policy_data}"
}

google_kms_key_ring_iam_binding

resource "google_kms_key_ring_iam_binding" "key_ring" {
  key_ring_id = "your-key-ring-id"
  role        = "roles/editor"

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

google_kms_key_ring_iam_member

resource "google_kms_key_ring_iam_member" "key_ring" {
  key_ring_id = "your-key-ring-id"
  role        = "roles/editor"
  member      = "user:[email protected]"
}

तर्क संदर्भ

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

  • key_ring_id - (आवश्यक) कुंजी रिंग ID, फॉर्म में {project_id}/{location_name}/{key_ring_name} या {location_name}/{key_ring_name} । दूसरे रूप में, प्रदाता की परियोजना सेटिंग का उपयोग कमबैक के रूप में किया जाएगा।

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

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

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

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

  • etag - (कम्प्यूटेड) कुंजी अंगूठी की IAM नीति का etag।

आयात

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

$ terraform import google_kms_key_ring_iam_member.key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer [email protected]"

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

$ terraform import google_kms_key_ring_iam_binding.key_ring_iam "your-project-id/location-name/key-ring-name roles/viewer"

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

$ terraform import google_kms_key_ring_iam_policy.key_ring_iam your-project-id/location-name/key-ring-name