Terraform 0.11

aws_cloudtrail




terraform

aws_cloudtrail

CloudTrail संसाधन प्रदान करता है।

उदाहरण उपयोग

बुनियादी

क्षेत्र में सभी संगत प्रबंधन घटनाओं को पकड़ने के लिए CloudTrail को सक्षम करें। IAM जैसी सेवाओं से ईवेंट कैप्चर करने के लिए, include_global_service_events सक्षम होना चाहिए।

resource "aws_cloudtrail" "foobar" {
  name                          = "tf-trail-foobar"
  s3_bucket_name                = "${aws_s3_bucket.foo.id}"
  s3_key_prefix                 = "prefix"
  include_global_service_events = false
}

resource "aws_s3_bucket" "foo" {
  bucket        = "tf-test-trail"
  force_destroy = true

  policy = <<POLICY
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AWSCloudTrailAclCheck",
            "Effect": "Allow",
            "Principal": {
              "Service": "cloudtrail.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::tf-test-trail"
        },
        {
            "Sid": "AWSCloudTrailWrite",
            "Effect": "Allow",
            "Principal": {
              "Service": "cloudtrail.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::tf-test-trail/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
POLICY
}

डेटा इवेंट लॉगिंग

CloudTrail कुछ इवेंट्स जैसे S3 बकेट ऑब्जेक्ट्स और लैंबडा फंक्शन इनवोकेशन के लिए डेटा इवेंट लॉग कर सकता है। डेटा इवेंट कॉन्फ़िगरेशन के बारे में अतिरिक्त जानकारी CloudTrail API DataResource प्रलेखन में पाई जा सकती है।

सभी लंबोदर फंक्शन इनवॉइस लॉगिंग

resource "aws_cloudtrail" "example" {
  # ... other configuration ...

  event_selector {
    read_write_type = "All"
    include_management_events = true

    data_resource {
      type   = "AWS::Lambda::Function"
      values = ["arn:aws:lambda"]
    }
  }
}

लॉगिंग ऑल S3 बकेट ऑब्जेक्ट इवेंट

resource "aws_cloudtrail" "example" {
  # ... other configuration ...

  event_selector {
    read_write_type = "All"
    include_management_events = true

    data_resource {
      type   = "AWS::S3::Object"
      values = ["arn:aws:s3:::"]
    }
  }
}

व्यक्तिगत S3 बाल्टी घटनाओं लॉगिंग

data "aws_s3_bucket" "important-bucket" {
  bucket = "important-bucket"
}

resource "aws_cloudtrail" "example" {
  # ... other configuration ...

  event_selector {
    read_write_type = "All"
    include_management_events = true

    data_resource {
      type   = "AWS::S3::Object"
      # Make sure to append a trailing '/' to your ARN if you want
      # to monitor all objects in a bucket.
      values = ["${data.aws_s3_bucket.important-bucket.arn}/"]
    }
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) निशान का नाम निर्दिष्ट करता है।
  • s3_bucket_name - (आवश्यक) लॉग फ़ाइल प्रकाशित करने के लिए निर्दिष्ट S3 बाल्टी का नाम निर्दिष्ट करता है।
  • s3_key_prefix - (वैकल्पिक) S3 कुंजी उपसर्ग को निर्दिष्ट करता है जो उस लॉग के नाम के लिए होता है जिसे आपने लॉग फ़ाइल वितरण के लिए निर्दिष्ट किया है।
  • cloud_watch_logs_role_arn - (वैकल्पिक) उपयोगकर्ता के लॉग समूह पर लिखने के लिए मान लेने के लिए CloudWatch Logs समापन बिंदु के लिए भूमिका निर्दिष्ट करता है।
  • cloud_watch_logs_group_arn - (वैकल्पिक) अमेज़न संसाधन नाम (ARN) का उपयोग करके एक लॉग समूह नाम निर्दिष्ट करता है, जो उस लॉग समूह का प्रतिनिधित्व करता है जिसमें CloudTrail लॉग वितरित किए जाएंगे।
  • enable_logging - (वैकल्पिक) निशान के लिए लॉगिंग सक्षम करता है। true अवहेलना। इसे false सेट करने से लॉगिंग रुक जाएगी।
  • include_global_service_events - (वैकल्पिक) यह निर्दिष्ट करता है कि निशान आईएएम जैसे लॉग फ़ाइल के लिए वैश्विक सेवाओं से घटनाओं को प्रकाशित कर रहा है या नहीं। true अवहेलना।
  • is_multi_region_trail - (वैकल्पिक) निर्दिष्ट करता है कि वर्तमान क्षेत्र में या सभी क्षेत्रों में निशान बनाया गया है या नहीं। false अवहेलना करता false
  • sns_topic_name - (वैकल्पिक) लॉग फ़ाइल वितरण की अधिसूचना के लिए परिभाषित अमेज़ॅन SNS विषय का नाम निर्दिष्ट करता है।
  • enable_log_file_validation - (वैकल्पिक) निर्दिष्ट करता है कि लॉग फ़ाइल अखंडता सत्यापन सक्षम है या नहीं। false अवहेलना करता false
  • kms_key_id - (वैकल्पिक) KMS कुंजी ARN को निर्दिष्ट करता है जो CloudTrail द्वारा दिए गए लॉग को एन्क्रिप्ट करने के लिए उपयोग करता है।
  • event_selector - (वैकल्पिक) डेटा इवेंट लॉगिंग को सक्षम करने के लिए एक घटना चयनकर्ता निर्दिष्ट करता है। नीचे दिए गए दस्तावेज़। कृपया इन को कॉन्फ़िगर करते समय CloudTrail सीमा पर ध्यान दें।
  • tags - (वैकल्पिक) निशान को असाइन करने के लिए टैग की मैपिंग

घटना चयनकर्ता तर्क

Event_selector के लिए निम्नलिखित विशेषताएँ समर्थित हैं।

  • read_write_type (वैकल्पिक) - निर्दिष्ट करें कि यदि आप चाहते हैं कि आपका निशान केवल पढ़ने के लिए ईवेंट, लेखन-केवल ईवेंट, या सभी लॉग ऑन करें। डिफ़ॉल्ट रूप से, मान सभी है। आप केवल निम्न मान निर्दिष्ट कर सकते हैं: "ReadOnly", "WriteOnly", "All"। All लिए चूक।
  • include_management_events (वैकल्पिक) - निर्दिष्ट करें कि यदि आप चाहते हैं कि आपका कार्यक्रम चयनकर्ता आपके निशान के लिए प्रबंधन घटनाओं को शामिल करे।
  • data_resource (वैकल्पिक) - लॉगिंग डेटा ईवेंट निर्दिष्ट करता है। नीचे दिए गए दस्तावेज़।

डेटा संसाधन तर्क

Data_resource के लिए निम्नलिखित विशेषताएँ समर्थित हैं।

  • type (आवश्यक) - वह संसाधन प्रकार जिसमें आप डेटा इवेंट लॉग करना चाहते हैं। आप केवल follwing मान निर्दिष्ट कर सकते हैं: "AWS :: S3 :: ऑब्जेक्ट", "AWS :: Lambda :: फ़ंक्शन"
  • values (आवश्यक) - निर्दिष्ट S3 बाल्टी और वस्तु उपसर्गों के लिए ARN की एक सूची ।।

गुण का संदर्भ

उपरोक्त सभी तर्कों के अलावा, निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - निशान का नाम।
  • home_region - वह क्षेत्र जिसमें ट्रेल बनाया गया था।
  • arn - अमेज़न संसाधन का नाम निशान।

आयात

Cloudtrails को name का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import aws_cloudtrail.sample my-sample-trail