Terraform 0.11

aws_iam_server_certificate




terraform

aws_iam_server_certificate

सर्वर प्रमाणपत्र अपलोड करने के लिए एक IAM सर्वर प्रमाणपत्र संसाधन प्रदान करता है। IAM पर अपलोड किए गए सेटर आसानी से अन्य AWS सेवाओं जैसे:

  • AWS इलास्टिक बीनस्टॉक
  • लोचदार लोड संतुलन
  • CloudFront
  • AWS ऑप्सवर्क्स

IAM में सर्वर प्रमाणपत्र के बारे में जानकारी के लिए, AWS प्रलेखन में सर्वर प्रमाणपत्र का प्रबंधन देखें।

उदाहरण उपयोग

फ़ाइल पर समारोहों का उपयोग करना:

resource "aws_iam_server_certificate" "test_cert" {
  name             = "some_test_cert"
  certificate_body = "${file("self-ca-cert.pem")}"
  private_key      = "${file("test-key.pem")}"
}

प्रमाण के साथ उदाहरण में लाइन:

resource "aws_iam_server_certificate" "test_cert_alt" {
  name = "alt_test_cert"

  certificate_body = <<EOF
-----BEGIN CERTIFICATE-----
[......] # cert contents
-----END CERTIFICATE-----
EOF

  private_key = <<EOF
-----BEGIN RSA PRIVATE KEY-----
[......] # cert contents
-----END RSA PRIVATE KEY-----
EOF
}

AWS ELB संसाधन के साथ संयोजन में उपयोग करें:

IAM सर्वर प्रमाणपत्र के कुछ गुणों को अद्यतन नहीं किया जा सकता है, जबकि वे उपयोग में हैं। टेराफ़ॉर्म के लिए इस स्थिति में एक प्रमाण पत्र को प्रभावी ढंग से प्रबंधित करने के लिए, यह अनुशंसा की जाती है कि आप name_prefix विशेषता का उपयोग करें और create_before_destroy जीवनचक्र ब्लॉक को सक्षम करें। यह Terraform को पुराने संस्करण को नष्ट करने का प्रयास करने से पहले एक नया, अपडेट किया गया aws_iam_server_certificate संसाधन बनाने और निर्भर संसाधनों में बदलने की अनुमति देगा।

resource "aws_iam_server_certificate" "test_cert" {
  name_prefix      = "example-cert"
  certificate_body = "${file("self-ca-cert.pem")}"
  private_key      = "${file("test-key.pem")}"

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_elb" "ourapp" {
  name                      = "terraform-asg-deployment-example"
  availability_zones        = ["us-west-2a"]
  cross_zone_load_balancing = true

  listener {
    instance_port      = 8000
    instance_protocol  = "http"
    lb_port            = 443
    lb_protocol        = "https"
    ssl_certificate_id = "${aws_iam_server_certificate.test_cert.arn}"
  }
}

तर्क संदर्भ

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

  • name - (वैकल्पिक) सर्वर सर्टिफिकेट का नाम। इस मान में पथ शामिल न करें। यदि छोड़ दिया जाता है, तो Terraform एक यादृच्छिक, अद्वितीय नाम निर्दिष्ट करेगा।
  • name_prefix - (वैकल्पिक) निर्दिष्ट उपसर्ग के साथ एक अद्वितीय नाम बनाता है। name साथ संघर्ष।
  • certificate_body - (आवश्यक) PEM- एन्कोडेड प्रारूप में सार्वजनिक कुंजी प्रमाणपत्र की सामग्री।
  • certificate_chain - (वैकल्पिक) प्रमाणपत्र श्रृंखला की सामग्री। यह आमतौर पर श्रृंखला के PEM- एन्कोडेड सार्वजनिक कुंजी प्रमाणपत्रों का एक संयोजन है।
  • private_key - (आवश्यक) private_key एन्कोडेड प्रारूप में निजी कुंजी की सामग्री।
  • path - (वैकल्पिक) सर्वर प्रमाणपत्र के लिए IAM पथ। यदि यह शामिल नहीं है, तो यह स्लैश (/) में चूक करता है। यदि यह प्रमाणपत्र AWS CloudFront के साथ उपयोग करने के लिए है, तो पथ प्रारूप /cloudfront/your_path_here में होना चाहिए। IAM पथ पर अधिक जानकारी के लिए IAM पहचानकर्ता देखें।

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

  • id - यूनीक सर्वर सर्टिफिकेट नाम
  • name - सर्वर सर्टिफिकेट का नाम
  • arn - अमेज़ॅन संसाधन नाम (ARN) सर्वर प्रमाणपत्र को निर्दिष्ट करता है।

आयात

IAM सर्वर प्रमाणपत्र को name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import aws_iam_server_certificate.certificate example.com-certificate-until-2018