среда, 2 августа 2017 г.

ELK на базе AWS ElasticSearch. Access Policy

Потратил время что бы разобраться. Больше не хочу! Запишу сюда.
При создании ElasticSearch мы получаем кроме всего прочего (нажать пару кнопок и на тебе, готово) набор проблем.
1. Enadpoint светит наружу!
2. Кибана светит наружу!
3. Доступ по Access Policy.... 

У меня в приватных сетях сидят инстансы, которые шлют логи в Logstash, а логстэш их уже отправляет в ES. Клиент хочет (и вполне резонно) что бы кибана наружу не светилась.

Закрываем:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::xxxxxxx:role/ProductionLogstash-logstash-role"
        ]
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-west-2:xxxxxxxx:domain/elk/*"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "es:ESHttpGet",
        "es:ESHttpPut",
        "es:ESHttpPost",
        "es:ESHttpHead"
      ],
      "Resource": "arn:aws:es:us-west-2:xxxxxxx:domain/elk/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "NAT1_IP",
            "NAT2_IP"
            "127.0.0.1"
          ]
        }
      }
    }
  ]
}

Здесь адреса NAТ потому что из приватных сеток к Endpoint ES мы пойдем через NAT!
Роль, что выделена красным - роль на инстанс Logstash.

Прокси ставится так:
#curl -o- https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
#nvm install node v6.11.2
#npm install -g aws-es-kibana
#aws-es-kibana -b IP -p 9200 -r us-west-2 kibana.domain.local -s


Комментариев нет: