Demonstrates the configuration of an OpenSearch domain with and without fine-grained access control.

Terraform Template

resource "aws_opensearch_domain" "example" {

  advanced_security_options {
    anonymous_auth_enabled = true
    enabled = false
    internal_user_database_enabled = true

    master_user_options {
      master_user_name = "example"
      master_user_password = "Barbarbarbar1!"
    }
  }

  cluster_config {
    instance_type = "r5.large.search"
  }

  domain_endpoint_options {
    enforce_https = true
    tls_security_policy = "Policy-Min-TLS-1-2-2019-07"
  }
  domain_name = "ggkitty"

  ebs_options {
    ebs_enabled = true
    volume_size = 10
  }

  encrypt_at_rest {
    enabled = true
  }
  engine_version = "Elasticsearch_7.1"

  node_to_node_encryption {
    enabled = true
  }
}