@@ -444,7 +444,7 @@ data "aws_iam_policy_document" "default" {
444444
445445 resources = [
446446 var . zone_awareness_enabled ? (var. public_enabled ? join (" " , aws_elasticsearch_domain. default-public . * . arn ) : join (" " , aws_elasticsearch_domain. default . * . arn )) : (var. public_enabled ? join (" " , aws_elasticsearch_domain. single-public . * . arn ) : join (" " , aws_elasticsearch_domain. single . * . arn )),
447- var . zone_awareness_enabled ? (var. public_enabled ? format ( " %s/* " , join (" " , aws_elasticsearch_domain. default-public . * . arn )) : format ( " %s/* " , join (" " , aws_elasticsearch_domain. default . * . arn ))) : (var. public_enabled ? format ( " %s/* " , join (" " , aws_elasticsearch_domain. single-public . * . arn )) : format ( " %s/* " , join (" " , aws_elasticsearch_domain. single . * . arn )))
447+ format ( " %s/* " , ( var. zone_awareness_enabled ? (var. public_enabled ? join (" " , aws_elasticsearch_domain. default-public . * . arn ) : join (" " , aws_elasticsearch_domain. default . * . arn )) : (var. public_enabled ? join (" " , aws_elasticsearch_domain. single-public . * . arn ) : join (" " , aws_elasticsearch_domain. single . * . arn ) )))
448448 ]
449449
450450 principals {
@@ -462,12 +462,31 @@ data "aws_iam_policy_document" "default" {
462462 }
463463}
464464
465+ data "aws_iam_policy_document" "vpc" {
466+ count = var. enabled ? 1 : 0
467+
468+ statement {
469+ actions = distinct (compact (var. iam_actions ))
470+ effect = " Allow"
471+
472+ resources = [
473+ var . zone_awareness_enabled ? (var. public_enabled ? join (" " , aws_elasticsearch_domain. default-public . * . arn ) : join (" " , aws_elasticsearch_domain. default . * . arn )) : (var. public_enabled ? join (" " , aws_elasticsearch_domain. single-public . * . arn ) : join (" " , aws_elasticsearch_domain. single . * . arn )),
474+ format (" %s/*" , (var. zone_awareness_enabled ? (var. public_enabled ? join (" " , aws_elasticsearch_domain. default-public . * . arn ) : join (" " , aws_elasticsearch_domain. default . * . arn )) : (var. public_enabled ? join (" " , aws_elasticsearch_domain. single-public . * . arn ) : join (" " , aws_elasticsearch_domain. single . * . arn ))))
475+ ]
476+
477+ principals {
478+ type = " AWS"
479+ identifiers = [" *" ]
480+ }
481+ }
482+ }
483+
465484# Module : Elasticsearch Policy
466485# Description : Terraform module to create Elasticsearch policy resource on AWS.
467486resource "aws_elasticsearch_domain_policy" "default" {
468487 count = var. enabled ? 1 : 0
469488 domain_name = var. domain_name != " " ? var. domain_name : module. labels . id
470- access_policies = join (" " , data. aws_iam_policy_document . default . * . json )
489+ access_policies = var . public_enabled ? join (" " , data. aws_iam_policy_document . default . * . json ) : join ( " " , data . aws_iam_policy_document . vpc . * . json )
471490}
472491
473492# Module : ROUTE53
0 commit comments