52

Amazon Elasticsearch サービスを作成し、EC2 インスタンスにインストールされている logstash を使用してデータを入力しました。Amazon ElasticService コンソール ページに、Kibana にアクセスするためのリンクがあります。

search-cluster_name-XXXXXXXXXXXXXXXXXXX.region_name.es.amazonaws.com/_plugin/kibana/

リンクをクリックすると、ブラウザが次のエラーをスローします。

{"Message":"User: anonymous is not authorized to perform: es:ESHttpGet on resource: arn:aws:es:region_name:account_id:domain/cluster_name/_plugin/kibana/"}

これには ES ドメインのアクセス ポリシーに関連するものがあると確信しています。指定されたリンクをクリックして Kibana にアクセスできるようにするには、アクセス ポリシーをどのように変更すればよいですか?

4

5 に答える 5

18

そのためにaws-es-kibanaというプロキシ ツールを使用しました。aws kibana に送信されたすべてのリクエストに署名します。

IAM 構成:

プログラムによるアクセスで新しい IAM ユーザー「elasticsearch_user」を作成しました (そして、そのアカウントに関連付けられた accessKeyId と secretAccessKey を取得しました)。

エラスティックサーチ構成:

新しく作成された IAM ユーザーのアクセスを有効にする Elasticsearch ポリシーを作成しました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::{YOUR_AWS_ACCOUNT_ID}:user/elasticsearch_user"
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:eu-central-1:{YOUR_AWS_ACCOUNT_ID}:domain/{YOUR_ELASTICSEARCH_DOMAIN}/*"
    }
  ]
}

ローカル ステーションから kibana に接続します。

ローカル ステーション (Windows) から Kibana に接続するには、コンソールに次のように入力するだけです。

SET AWS_ACCESS_KEY_ID=myAccessKeyId
SET AWS_SECRET_ACCESS_KEY=mySecretAccessKey

aws-es-kibana search-{PROTECTED_PART_OF_YOUR_ELASTICSEARCH_ENDPOINT}.eu-central-1.es.amazonaws.com

その後、次の場所でキバナへのアクセスをプロキシする必要があります: http://127.0.0.1:9200/_plugin/kibana

于 2017-06-06T19:45:43.757 に答える
0

IP ベースのポリシーを設定し、特定の IP (Kibana の) からドメインへのアクセスを許可する必要がある場合があります。

他のオプション (アクセス ポリシーを完全にオープンに変更することを除く) は、リクエストに署名することです。IIRC は、同様のメッセージで私の友人を助けました。

http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-signing-service-requests

同じページの「ローカル Kibana サーバーを Amazon Elasticsearch Service に接続する」も参照してください。

于 2015-11-17T16:09:43.030 に答える