Terraform 0.11

azurerm_key_vault_certificate




terraform

azurerm_key_vault_certificate

एक कुंजी तिजोरी प्रमाणपत्र का प्रबंधन करता है।

उदाहरण उपयोग (PFX आयात करना)

data "azurerm_client_config" "current" {}

resource "azurerm_resource_group" "test" {
  name     = "key-vault-certificate-example"
  location = "West Europe"
}

resource "azurerm_key_vault" "test" {
  name                = "keyvaultcertexample"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  tenant_id           = "${data.azurerm_client_config.current.tenant_id}"

  sku {
    name = "standard"
  }

  access_policy {
    tenant_id = "${data.azurerm_client_config.current.tenant_id}"
    object_id = "${data.azurerm_client_config.current.service_principal_object_id}"

    certificate_permissions = [
      "create","delete","deleteissuers",
      "get","getissuers","import","list",
      "listissuers","managecontacts","manageissuers",
      "setissuers","update",
    ]

    key_permissions = [
      "backup","create","decrypt","delete","encrypt","get",
      "import","list","purge","recover","restore","sign",
      "unwrapKey","update","verify","wrapKey",
    ]

    secret_permissions = [
      "backup","delete","get","list","purge","recover","restore","set",
    ]
  }

  tags {
    environment = "Production"
  }
}


resource "azurerm_key_vault_certificate" "test" {
  name      = "imported-cert"
  vault_uri = "${azurerm_key_vault.test.vault_uri}"

  certificate {
    contents = "${base64encode(file("certificate-to-import.pfx"))}"
    password = ""
  }

  certificate_policy {
    issuer_parameters {
      name = "Self"
    }

    key_properties {
      exportable = true
      key_size   = 2048
      key_type   = "RSA"
      reuse_key  = false
    }

    secret_properties {
      content_type = "application/x-pkcs12"
    }
  }
}

उदाहरण उपयोग (एक नया प्रमाणपत्र बनाना)

data "azurerm_client_config" "current" {}

resource "azurerm_resource_group" "test" {
  name     = "key-vault-certificate-example"
  location = "West Europe"
}

resource "azurerm_key_vault" "test" {
  name                = "keyvaultcertexample"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"
  tenant_id           = "${data.azurerm_client_config.current.tenant_id}"

  sku {
    name = "standard"
  }

  access_policy {
    tenant_id = "${data.azurerm_client_config.current.tenant_id}"
    object_id = "${data.azurerm_client_config.current.service_principal_object_id}"

    certificate_permissions = [
      "all",
    ]

    key_permissions = [
      "all",
    ]

    secret_permissions = [
      "all",
    ]
  }

  tags {
    environment = "Production"
  }
}

resource "azurerm_key_vault_certificate" "test" {
  name      = "generated-cert"
  vault_uri = "${azurerm_key_vault.test.vault_uri}"

  certificate_policy {
    issuer_parameters {
      name = "Self"
    }

    key_properties {
      exportable = true
      key_size   = 2048
      key_type   = "RSA"
      reuse_key  = true
    }

    lifetime_action {
      action {
        action_type = "AutoRenew"
      }

      trigger {
        days_before_expiry = 30
      }
    }

    secret_properties {
      content_type = "application/x-pkcs12"
    }

    x509_certificate_properties {
      key_usage = [
        "cRLSign",
        "dataEncipherment",
        "digitalSignature",
        "keyAgreement",
        "keyCertSign",
        "keyEncipherment",
      ]

      subject            = "CN=hello-world"
      validity_in_months = 12
    }
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) कुंजी तिजोरी प्रमाणपत्र का नाम निर्दिष्ट करता है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • vault_uri - (आवश्यक) azurerm_key_vault संसाधन पर उपलब्ध कुंजी तिजोरी उदाहरण का उपयोग करने के लिए उपयोग किए गए URI को निर्दिष्ट करता है।

  • certificate - (वैकल्पिक) एक certificate ब्लॉक जैसा कि नीचे परिभाषित किया गया है, जिसका उपयोग मौजूदा प्रमाणपत्र आयात करने के लिए किया जाता है।

  • certificate_policy - (आवश्यक) एक certificate_policy ब्लॉक जैसा कि नीचे परिभाषित किया गया है।

  • tags - (वैकल्पिक) संसाधन को असाइन करने के लिए टैग की मैपिंग।

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

  • contents - (आवश्यक) बेस 64-एन्कोडेड प्रमाणपत्र सामग्री। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • password - (वैकल्पिक) प्रमाणपत्र के साथ जुड़ा पासवर्ड। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • issuer_parameters - (आवश्यक) नीचे के रूप में एक issuer_parameters ब्लॉक।
  • key_properties - (आवश्यक) नीचे परिभाषित के रूप में एक key_properties ब्लॉक।
  • lifetime_action - (वैकल्पिक) नीचे के रूप में परिभाषित एक lifetime_action खंड।
  • secret_properties - (आवश्यक) एक secret_properties ब्लॉक जैसा कि नीचे परिभाषित किया गया है।
  • x509_certificate_properties - (वैकल्पिक) एक x509_certificate_properties ब्लॉक जैसा कि नीचे परिभाषित किया गया है।

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

  • name - (आवश्यक) प्रमाणपत्र जारीकर्ता का नाम। संभावित मूल्यों में Self , या एज़्योर द्वारा समर्थित प्राधिकारी जारी करने वाले प्रमाण पत्र का नाम शामिल है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • exportable - (आवश्यक) क्या यह प्रमाणपत्र निर्यात योग्य है? इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • key_size - (आवश्यक) प्रमाणपत्र में प्रयुक्त कुंजी का आकार। संभावित मूल्यों में 2048 और 4096 । इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • key_type - (आवश्यक) RSA जैसे कुंजी का प्रकार निर्दिष्ट करता है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • reuse_key - (आवश्यक) कुंजी पुन: प्रयोज्य है? इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • action - (आवश्यक) एक action ब्लॉक जैसा कि नीचे परिभाषित किया गया है।
  • trigger - (आवश्यक) नीचे बताए अनुसार trigger ब्लॉक।

action निम्नलिखित का समर्थन करती है:

  • action_type - (आवश्यक) जीवनकाल ट्रिगर होने पर किया जाने वाला क्रिया का प्रकार। संभावित मानों में AutoRenew और EmailContacts । इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • days_before_expiry - (वैकल्पिक) प्रमाणपत्र समाप्त होने से पहले के दिनों की संख्या days_before_expiry चाहिए। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है। Life_percentage के साथ विरोध।
  • lifetime_percentage - (वैकल्पिक) प्रमाण पत्र के दौरान जिस प्रतिशत पर जीवनकाल इस ट्रिगर से जुड़ी कार्रवाई को चलाना चाहिए। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है। दिनों के साथ संघर्ष।

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

  • content_type - (आवश्यक) प्रमाणपत्र की सामग्री-प्रकार, जैसे कि PFX के लिए application/x-pkcs12 या PEM के लिए application/x-pem-file । इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

  • key_usage - (आवश्यक) इस कुंजी से जुड़े उपयोगों की एक सूची। संभावित मानों में cRLSign , dataEncipherment , decipherOnly , digitalSignature , encipherOnly , keyAgreement , keyCertSign , keyEncipherment और nonRepudiation और केस-संवेदी हैं। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • subject - (आवश्यक) प्रमाणपत्र का विषय। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।
  • validity_in_months - (आवश्यक) प्रमाण पत्र वैधता अवधि महीनों में। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

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

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

  • id - कुंजी तिजोरी प्रमाणपत्र आईडी।
  • secret_id - संबंधित कुंजी तिजोरी गुप्त की आईडी।
  • version - कुंजी तिजोरी प्रमाणपत्र का वर्तमान संस्करण।
  • Certificate_data - कच्चे कुंजी तिजोरी प्रमाणपत्र

आयात

कुंजी तिजोरी प्रमाणपत्र resource id का उपयोग करके आयात किया जा सकता है, उदाहरण के लिए

terraform import azurerm_key_vault_certificate.test https://example-keyvault.vault.azure.net/certificates/example/fdf067c93bbb4b22bff4d8b7a9a56217