【问题标题】:AWS Elasticsearch IAM question to access Kibana via Browser通过浏览器访问 Kibana 的 AWS Elasticsearch IAM 问题
【发布时间】:2021-08-23 19:30:21
【问题描述】:

我已将我的 elasticsearch yml 文件(通过无服务器部署)设置如下:

Resources:
CRMSearch:
  Type: "AWS::Elasticsearch::Domain"
  Properties:
    ElasticsearchVersion: "7.10"
    DomainName: "crm-searchdb-${self:custom.stage}"
    ElasticsearchClusterConfig:
      DedicatedMasterEnabled: false
      InstanceCount: "1"
      ZoneAwarenessEnabled: false
      InstanceType: "t3.medium.elasticsearch"
    EBSOptions:
      EBSEnabled: true
      Iops: 0
      VolumeSize: 10
      VolumeType: "gp2"
    AccessPolicies:
      Version: "2012-10-17"
      Statement:
        - Effect: "Allow"
          Principal:
            AWS: [
              "arn:aws:iam::#{AWS::AccountId}:role/crm-databases-dev-us-east-1-lambdaRole", 
              '#{AWS::AccountId}',
              'arn:aws:iam::#{AWS::AccountId}:user/nicholas',
              'arn:aws:iam::#{AWS::AccountId}:user/daniel'
              ]
          Action: "es:*"
          Resource: "arn:aws:es:us-east-1:#{AWS::AccountId}:domain/crm-searchdb-${self:custom.stage}"
        - Effect: "Allow"
          Principal:
            AWS: [
              "*"
              ]
          Action: "es:*"
          Resource: "arn:aws:es:us-east-1:#{AWS::AccountId}:domain/crm-searchdb-${self:custom.stage}"
    AdvancedOptions: 
      rest.action.multi.allow_explicit_index: 'true'
    AdvancedSecurityOptions:
        Enabled: true
        InternalUserDatabaseEnabled: true
        MasterUserOptions: 
          MasterUserName: admin
          MasterUserPassword: fD343sfdf!3rf
    EncryptionAtRestOptions: 
      Enabled: true
    NodeToNodeEncryptionOptions:
      Enabled: true
    DomainEndpointOptions:
      EnforceHTTPS: true

我只是想通过浏览器访问 Kibana。几个月前,我在以前的公司设置了开放权限 Kibana,但无论我做什么,似乎都无法通过浏览器访问 Kibana。我总是收到{"Message":"User: anonymous is not authorized to perform: es:ESHttpGet"} 错误。如何设置权限(最好通过 yml)来完成此操作?

【问题讨论】:

    标签: amazon-web-services elasticsearch kibana amazon-iam amazon-elasticsearch


    【解决方案1】:

    用户:anonymous 无权执行:es:ESHttpGet

    导致此消息的细分如下:

    1. 您的浏览器获取 Kibana 资产/脚本
    2. 在您的浏览器上运行的 Kibana 客户端代码向您的 ElasticsearchService 域发出 GET 请求。
    3. 您的浏览器不是允许的主体,并且被拒绝访问。消息中的匿名用户是您的浏览器

    这在 AWS ElasticsearchService documentation中有解释:

    由于 Kibana 是一个 JavaScript 应用程序,请求来自用户的 IP 地址。


    就您的下一步而言,以下问题的答案涵盖了您拥有的两个选项:

    How to access Kibana from Amazon elasticsearch service?

    1. (Yaml 解决方案,出于多种原因,总体上不建议这样做)在您的访问策略中添加额外的声明,以允许来自您设备的 IP 地址的操作
    2. (非 Yaml 解决方案)设置一个代理来处理来自您的浏览器的请求,并在使用受信任主体的凭据对其进行签名后将其传递。这可以是在其他 AWS 基础设施上运行的代理,也可以是在本地计算机上运行的代理。同样,链接问题的答案更详细。

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2021-06-01
      • 2019-08-03
      • 1970-01-01
      • 2011-09-14
      • 2019-11-23
      • 2019-10-18
      • 1970-01-01
      相关资源
      最近更新 更多