Terraform 0.11

google_kms_secret




terraform

google_kms_secret

यह डेटा स्रोत आपको अपनी संसाधन परिभाषाओं के भीतर Google क्लाउड केएमएस के साथ एन्क्रिप्टेड डेटा का उपयोग करने की अनुमति देता है।

अधिक जानकारी के लिए आधिकारिक दस्तावेज देखें।

उदाहरण उपयोग

सबसे पहले, संसाधन परिभाषाओं का उपयोग करके केएमएस कीरिंग और क्रिप्टोकरेंसी बनाएं:

resource "google_kms_key_ring" "my_key_ring" {
  project  = "my-project"
  name     = "my-key-ring"
  location = "us-central1"
}

resource "google_kms_crypto_key" "my_crypto_key" {
  name     = "my-crypto-key"
  key_ring = "${google_kms_key_ring.my_key_ring.id}"
}

अगला, कुछ संवेदनशील जानकारी को एन्क्रिप्ट करने के लिए क्लाउड एसडीके का उपयोग करें:

$ echo -n my-secret-password | gcloud kms encrypt \
> --project my-project \
> --location us-central1 \
> --keyring my-key-ring \
> --key my-crypto-key \
> --plaintext-file - \
> --ciphertext-file - \
> | base64
CiQAqD+xX4SXOSziF4a8JYvq4spfAuWhhYSNul33H85HnVtNQW4SOgDu2UZ46dQCRFl5MF6ekabviN8xq+F+2035ZJ85B+xTYXqNf4mZs0RJitnWWuXlYQh6axnnJYu3kDU=

अंत में, अपनी संसाधन परिभाषाओं में एन्क्रिप्टेड सिफरटेक्स्ट का संदर्भ लें:

data "google_kms_secret" "sql_user_password" {
  crypto_key = "${google_kms_crypto_key.my_crypto_key.id}"
  ciphertext = "CiQAqD+xX4SXOSziF4a8JYvq4spfAuWhhYSNul33H85HnVtNQW4SOgDu2UZ46dQCRFl5MF6ekabviN8xq+F+2035ZJ85B+xTYXqNf4mZs0RJitnWWuXlYQh6axnnJYu3kDU="
}

resource "google_sql_database_instance" "master" {
  name = "master-instance"

  settings {
    tier = "D0"
  }
}

resource "google_sql_user" "users" {
  name     = "me"
  instance = "${google_sql_database_instance.master.name}"
  host     = "me.com"
  password = "${data.google_kms_secret.sql_user_password.plaintext}"
}

इसके परिणामस्वरूप क्लाउड SQL उपयोगकर्ता पासवर्ड my-secret-password के साथ बनाया जाएगा।

तर्क संदर्भ

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

  • ciphertext (आवश्यक) - आधारभूत में एनकोडेड, सिफरटेक्स्ट को डिक्रिप्ट किया जाना है
  • crypto_key (आवश्यक) - crypto_key की आईडी जिसका उपयोग प्रदान किए गए सिफरटेक्स्ट को डिक्रिप्ट करने के लिए किया जाएगा। यह प्रारूप {projectId}/{location}/{keyRingName}/{cryptoKeyName}

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

निम्नलिखित विशेषता निर्यात की जाती है:

  • plaintext - इसमें दिए गए सिफरटेक्स्ट को डिक्रिप्ट करने का परिणाम है।