1 votes

Autorisation d'accès à Heroku

Nous avons une application Rails Heroku qui a besoin d'accéder à un très grand cluster Elasticsearch. Nous avons envisagé d'utiliser des services Elasticsearch Heroku tels que Bonsai, mais leur prix augmente très rapidement. Nous avons donc décidé d'utiliser le service Elasticsearch d'AWS.

Le cluster Elasticsearch peut être sécurisé en le gardant complètement hors d'internet, en utilisant un proxy inverse ou en autorisant les sources de trafic.

En théorie, il est possible d'autoriser la région dans laquelle se trouve une application Heroku, en autorisant toute la région AWS sous-jacente. Même s'il s'agit toujours d'un grand bloc d'adresses IP, et qu'il est possible que des scanners de ports puissent fonctionner depuis AWS, c'est tout de même une amélioration.

Cependant, la liste des adresses IP à autoriser est assez longue (voir ci-dessous). Y a-t-il un moyen plus efficace de le faire ?

Confirmer la région AWS

curl -n -X GET https://api.heroku.com/regions/eu -H "Accept: 
application/vnd.heroku+json; version=3"

{
  "country":"Irlande",
  "created_at":"2013-09-19T01:29:12Z",
  "description":"Europe",
  "id":"ed30241c-ed8c-4bb6-9714-61953675d0b4",
  "locale":"Dublin",
  "name":"eu",
  "private_capable":false,
  "provider":{
    "name":"amazon-web-services",
    "region":"eu-west-1"
  },
  "updated_at":"2016-08-09T22:03:28Z"
}

Télécharger le fichier des régions AWS

https://ip-ranges.amazonaws.com/ip-ranges.json

Le lire

jq '.prefixes[] | select(.region=="eu-west-1")' < ip-ranges.json

De nombreuses entrées :

{
  "ip_prefix": "52.218.0.0/17",
  "region": "eu-west-1",
  "service": "S3"
}
{
  "ip_prefix": "54.231.128.0/19",
  "region": "eu-west-1",
  "service": "S3"
}
{
  "ip_prefix": "34.240.0.0/13",
  "region": "eu-west-1",
  "service": "EC2"
}
{
  "ip_prefix": "34.248.0.0/13",
  "region": "eu-west-1",
  "service": "EC2"

etc

2voto

J0ANMM Points 131

Pas sûr à 100% d'avoir compris votre question, mais elle semble similaire à cette question de l'Aide Heroku.

D'après leur réponse:

Les adresses IP utilisées par Heroku à un moment donné sont très dynamiques, ce qui signifie que les plages publiées peuvent couvrir d'autres adresses IP actuellement non utilisées par Heroku. Cela signifie qu'il n'est souvent pas souhaitable d'ouvrir votre pare-feu à l'ensemble de la région AWS pour des raisons de sécurité. Si vous souhaitez le faire malgré tout, vous pouvez trouver les plages IP publiées par AWS ici: http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html

Pour les applications dans le Common Runtime, une meilleure approche serait d'utiliser un add-on pour fournir une adresse IP sortante statique https://elements.heroku.com/addons/categories/network ou de s'appuyer sur une communication sécurisée via TLS.

Vous pourriez donc envisager d'utiliser un add-on qui fournit des IPs statiques.

D'après mon expérience, j'utilise QuotaGuard Static et je suis un client satisfait. C'est très facile à utiliser (comme beaucoup de choses sur Heroku).

Cependant, cela pourrait s'avérer être une solution coûteuse si vous avez besoin d'exécuter beaucoup de requêtes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X