【问题标题】:Use case for the principals(role arns) mentioned in aws elasticsearch domain IAM policy?aws elasticsearch域IAM策略中提到的委托人(角色arns)的用例?
【发布时间】:2021-04-11 05:48:48
【问题描述】:

在使用 terraform 浏览 AWS elasticsearch 的 IAM 策略时,我可以看到将委托人添加为角色 arns 的选项:

data "aws_iam_policy_document" "default" {
  count =  ( length(var.iam_role_arns) > 0) ? 1 : 0
  //for resources within 
  statement {
    effect = "Allow"
    actions = distinct(compact(var.iam_actions))

    resources = [
      join("", aws_elasticsearch_domain.default.*.arn),
      "${join("", aws_elasticsearch_domain.default.*.arn)}/*"
    ]

    principals {
      type        = "AWS"
      identifiers = distinct(compact(concat(var.iam_role_arns)))
    }
  }
}

在尝试从 kibana 仪表板访问 aws es 时,我必须指定条件 IP 才能访问 es 域。使用这些 var.iam_role_arns 的用例应该是什么?

谢谢

【问题讨论】:

    标签: elasticsearch terraform terraform-provider-aws aws-elasticsearch


    【解决方案1】:

    您将使用iam_role_arns 通过您的IAM 用户/角色 凭证使用签名的https 查询 访问您的ES。默认情况下,ES 和 AWS 提供创建此类查询的选项,但它们是第三方工具,例如流行的 Python 库 aws-requests-auth

    图书馆还有一个example specific to ES

    如果您想通过 lambda 函数或 EC2 实例与您的 ES 交互,这将非常有用。在这些情况下,您的 iam_role_arns 将分别指 lambda 执行和实例角色。在这种情况下,您可以使用aws-requests-auth 构造对您的 ES 域的签名查询。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 2021-11-12
      • 2016-01-17
      • 2020-03-29
      • 1970-01-01
      • 2016-05-15
      • 2019-01-25
      • 1970-01-01
      • 2018-09-29
      • 2018-06-08
      相关资源
      最近更新 更多