Help us understand the problem. What is going on with this article?

kibanaに合ったAWS Elasticsearch Serviceのアクセスポリシーで迷います

More than 3 years have passed since last update.

この記事はdots girls Advent Calendar 2016の記事です。

AWS ESのアクセスポリシーで迷ってしまう

AWSは基本的にVPCに入らないServiceに対してポリシー(セキュリティ)を設定出来ますが、AWS Elasticsearch Serviceに関してはLambdaと連携してkibanaで表示するなどの場合、デフォルトで選択できるポリシーだと足りないことが多く、かといって例を検索するととりあえず全部許可していたりしているので、どの設定が一番いいのか絶賛模索中です。

AWSのデフォルトで選択し入力できるポリシー

セレクトボックスで選択できるポリシーです。ただし、アカウント、ユーザー、IPは一つしか入力欄しかありません。少しひねりたい場合はそこからJsonをいじる必要があります。

Allow or deny access to one or more AWS accounts or IAM users

AWSアカウントもしくは、IAMユーザーによるアクセス制御

Allow access to the domain from specific IP(s)

送信元IPアドレスによるアクセス制御

Allow open access to the domain

全部許可

Deny access to the domain

全部拒否

Copy access policy from another domain

以前作ったポリシーのコピー

ポリシーで選択できるActionリスト

LambdaからbulkAPIを使用してデータをアップロードする場合は、es:ESHttp*のみで権限は足りるようです。
kibanaから閲覧する場合、es:ESHttpGetだけでは無理でした。たぶんDomain系やTag系が関係してるのかと思います。ひとまず*で良いと思います。

  • es:ESHttpDelete
  • es:ESHttpGet
  • es:ESHttpHead
  • es:ESHttpPost
  • es:ESHttpPut
  • es:CreateElasticsearchDomain
  • es:DescribeElasticsearchDomain
  • es:DescribeElasticsearchDomains
  • es:DescribeElasticsearchDomainConfig
  • es:DeleteElasticsearchDomain
  • es:ListDomainNames
  • es:AddTags
  • es:ListTags
  • es:RemoveTags
  • es:UpdateElasticsearchDomainConfig

私の思う汎用的なAWS ES向けポリシー

現在の最新バージョンは2012-10-17です。
kibanaはIP制限などがいいと思いました。自身のグローバルIPは確認くんなどで確認して下さい。
IPやarnはList(["", ""])で複数渡すことも可能です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:リージョン:アカウントID:domain/ES名/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "自分のIP"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::アカウントID:role/Lambdaの実行ロール"
      },
      "Action": "es:ESHttp*",
      "Resource": "arn:aws:es:リージョン:アカウントID:domain/ES名/*"
    }
  ]
}

懸念点

  • kibanaは、IP制限掛けてしまうと使い勝手が悪いのではないか

目標

  • Actionの役割をちゃんと理解してものすごく細かく設定したい

参考

公式ドキュメント(日本語)

ここまで読んで下さりありがとうございました。詳しい人意見下さい。

dots.女子部について

インフラ、サーバー、フロント開発から運用ノウハウ、女性エンジニアのキャリアについてなどいろいろな観点から勉強したり、情報共有している女性エンジニアのための部活です。
興味がある方は是非SNSアカウントのフォローしてみて下さい!

Twitter
Facebook

明日はきょんさんよろしくお願いいたします\(^o^)/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした