terraform/ecc-aws-153-elasticsearch_domains_audit_logging_enabled/green/es.tf (73 lines of code) (raw):
resource "aws_cloudwatch_log_group" "this" {
name = "153_cloudwatch_log_group_green"
}
resource "aws_cloudwatch_log_resource_policy" "this" {
policy_name = "153_policy_green"
policy_document = <<CONFIG
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "es.amazonaws.com"
},
"Action": [
"logs:PutLogEvents",
"logs:PutLogEventsBatch",
"logs:CreateLogStream"
],
"Resource": [
"arn:aws:logs:${var.default-region}:${data.aws_caller_identity.this.account_id}:log-group:${aws_cloudwatch_log_group.this.name}:log-stream:*"
]
}
]
}
CONFIG
}
data "aws_caller_identity" "this" {}
resource "aws_elasticsearch_domain" "this" {
domain_name = "domain-153-green"
elasticsearch_version = "7.10"
cluster_config {
instance_type = "t3.small.elasticsearch"
}
ebs_options {
ebs_enabled = true
volume_size = 10
}
node_to_node_encryption {
enabled = true
}
encrypt_at_rest {
enabled = true
}
advanced_security_options {
enabled = true
internal_user_database_enabled = true
master_user_options {
master_user_name = "root"
master_user_password = random_password.this.result
}
}
domain_endpoint_options {
enforce_https = true
tls_security_policy = "Policy-Min-TLS-1-2-2019-07"
}
log_publishing_options {
cloudwatch_log_group_arn = aws_cloudwatch_log_group.this.arn
log_type = "AUDIT_LOGS"
}
}
resource "aws_kms_key" "this" {
description = "153_kms_key_green"
deletion_window_in_days = 10
}
resource "random_password" "this" {
length = 12
min_lower = 1
min_numeric = 1
min_special = 1
min_upper = 1
override_special = "!#$%*()-_=+[]{}:?"
}