You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Elasticsearch访问策略权限优先级疑问及配置解析

AWS Elasticsearch访问策略权限优先级解析

问题核心

你配置的策略里,6个IP通过第一条Allow语句已经获得了es:*的全权限(包含es:ESHttpDelete删除操作),第二条Allow仅对120.450.780.235重复授权删除操作,但整个策略没有任何Deny语句,所以其余5个IP的删除权限不会被限制——这就是你预期和实际不符的根本原因。

权限判断核心规则(遵循IAM核心逻辑,适配ES访问策略)

  • 默认拒绝:所有未被显式Allow的操作,默认都会被拒绝。
  • 显式拒绝优先:如果存在Effect: Deny的语句,且匹配请求的主体、操作、资源、条件,那么无论有多少Allow语句,该请求都会被拒绝(Deny优先级高于Allow)。
  • 多Allow语句叠加:如果多条Allow语句都匹配请求,权限会叠加,不会互相覆盖。

你的策略问题分析

看你提供的策略代码:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:region:id:domain/domainname/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "120.450.780.230",
            "120.450.780.231",
            "120.450.780.232",
            "120.450.780.233",
            "120.450.780.234",
            "120.450.780.235"
          ]
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:ESHttpDelete",
      "Resource": "arn:region:id:domain/domainname*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "120.450.780.235"
          ]
        }
      }
    }
  ]
}
  1. 第一条语句已经允许6个IP执行所有ES操作,包括删除;
  2. 第二条语句只是给235这个IP再单独开一次删除权限,属于重复授权,对其他IP没有任何限制作用;
  3. 要实现“仅允许235执行删除,其余5个IP不能删”,必须添加显式Deny语句,拒绝这5个IP的es:ESHttpDelete操作。

修正后的策略示例

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:region:id:domain/domainname/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "120.450.780.230",
            "120.450.780.231",
            "120.450.780.232",
            "120.450.780.233",
            "120.450.780.234",
            "120.450.780.235"
          ]
        }
      }
    },
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:ESHttpDelete",
      "Resource": "arn:region:id:domain/domainname*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "120.450.780.230",
            "120.450.780.231",
            "120.450.780.232",
            "120.450.780.233",
            "120.450.780.234"
          ]
        }
      }
    }
  ]
}

这个修正后的策略中:

  • 先通过Allow给6个IP全权限;
  • 再通过Deny拒绝其中5个IP的删除操作,Deny会覆盖之前的Allow,完全符合你的预期需求。

内容的提问来源于stack exchange,提问作者Jennifer Crosby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:40:31