web-dev-qa-db-fra.com

Configurer le transfert d'URL basé sur DNS dans Amazon Route53

J'essaye d'installer la transmission dans Amazon Route53. Mon dernier service DNS (Nettica) m'a permis de router les demandes de "aws.example.com" vers "https://myaccount.signin.aws.Amazon.com/console/".

Cette fonctionnalité est-elle prise en charge par Route53?

Comment Nettica réalise-t-elle cela? Insère-t-il un ou des enregistrements spéciaux A, CNAME, PTR ou TXT?

123
Saurav

Je rencontrais exactement le même problème que celui décrit par Saurav, mais j’avais vraiment besoin de trouver une solution ne nécessitant rien d’autre que Route 53 et S3. J'ai créé un guide pratique pour mon blog détaillant ce que j'ai fait. 

Voici ce que je suis venu avec. 


Objectif

En utilisant uniquement les outils disponibles dans Amazon S3 et Amazon Route 53, créez une redirection d'URL qui transmet automatiquement http://url-redirect-example.vivekmchawla.com à la page de connexion de la AWS Console, alias "MyAccount". , situé à l’adresse https://myaccount.signin.aws.Amazon.com/console/ .

Ce guide vous apprendra à configurer la redirection d’URL vers n’importe quelle URL, pas seulement celles d’Amazon. Vous apprendrez à configurer le transfert vers des dossiers spécifiques (comme "/ console" dans mon exemple) et à modifier le protocole de redirection de HTTP à HTTPS (ou inversement).


Première étape: créer votre seau S3

Open the S3 Management Console and click "Create Bucket"

Ouvrez la console de gestion S3 et cliquez sur "Créer un godet". 


Deuxième étape: nommez votre seau S3

Name your S3 Bucket

  1. Choisissez un nom de seau. Cette étape est vraiment importante! Vous devez nommer EXACTEMENT le compartiment comme l'URL que vous souhaitez configurer pour le transfert. Pour ce guide, j'utiliserai le nom "url-redirect-example.vivekmchawla.com". 

  2. Sélectionnez la région qui vous convient le mieux. Si vous ne le savez pas, conservez la valeur par défaut. 

  3. Ne vous inquiétez pas pour la configuration de la journalisation. Cliquez simplement sur le bouton "Créer" lorsque vous êtes prêt. 


Étape 3: Activer l'hébergement de site Web statique et spécifier les règles de routage

Enable Static Website Hosting and Specify Routing Rules

  1. Dans la fenêtre des propriétés, ouvrez les paramètres pour "Hébergement de site Web statique".
  2. Sélectionnez l'option "Activer l'hébergement de sites Web".
  3. Entrez une valeur pour le "document d'index". Cet objet (document) ne sera jamais servi par S3 et vous ne devez jamais le télécharger. Utilisez simplement le nom de votre choix.
  4. Ouvrez les paramètres pour "Modifier les règles de redirection".
  5. Collez l'extrait de code XML suivant dans son intégralité.

    <RoutingRules>
      <RoutingRule>
        <Redirect>
          <Protocol>https</Protocol>
          <HostName>myaccount.signin.aws.Amazon.com</HostName>
          <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
          <HttpRedirectCode>301</HttpRedirectCode>
        </Redirect>
      </RoutingRule>
    </RoutingRules>
    

Si vous êtes curieux de savoir ce que fait le XML ci-dessus, visitez la documentation AWM pour "Syntaxe de spécification des règles de routage" . Une technique de bonus (non couverte ici) consiste à transférer des pages spécifiques sur l'hôte de destination, par exemple http://redirect-destination.com/console/special-page.html. Lisez à propos de l'élément <ReplaceKeyWith> si vous avez besoin de cette fonctionnalité.


Étape 4: notez le "point final" de votre compartiment de redirection

Make a note of your Redirect Bucket's Endpoint

Notez le "point final" d'hébergement de site Web statique créé automatiquement par Amazon pour ce compartiment. Vous en aurez besoin pour plus tard. Mettez en surbrillance l'intégralité de l'URL, puis copiez-la et collez-la dans le bloc-notes.

MISE EN GARDE! À ce stade, vous pouvez réellement cliquer sur ce lien pour vérifier si vos règles de redirection ont été correctement saisies, mais soyez prudent! Voici pourquoi...

Supposons que vous ayez entré une valeur incorrecte dans les balises <Hostname> de vos règles de redirection. Peut-être avez-vous accidentellement tapé myaccount.Amazon.com au lieu de myaccount.signin.aws.Amazon.com. Si vous cliquez sur le lien pour tester l'URL du point de terminaison, AWS se fera un plaisir de rediriger votre navigateur vers la mauvaise adresse!

Après avoir remarqué votre erreur, vous modifierez probablement le <Hostname> dans vos règles de redirection pour corriger l'erreur. Malheureusement, lorsque vous essayez de cliquer à nouveau sur le lien, vous serez probablement redirigé vers la mauvaise adresse! Même si vous avez corrigé l'entrée <Hostname>, votre navigateur met en cache l'entrée précédente (incorrecte!). Cela est dû au fait que nous utilisons une redirection HTTP 301 (permanente), que les navigateurs tels que Chrome et Firefox mettent en cache par défaut.

Si vous copiez et collez l'URL du noeud final dans un autre navigateur (ou effacez le cache de votre navigateur actuel), vous aurez une autre chance de voir si votre entrée <Hostname> mise à jour est finalement la bonne.

Par mesure de sécurité, si vous souhaitez tester votre URL de point de terminaison et vos règles de redirection, vous devez ouvrir une session de navigation privée, telle que "Mode navigation privée" dans Chrome. Copiez, collez et testez l'URL du noeud final en mode navigation privée. Tout ce qui est mis en cache disparaîtra une fois la session fermée.


Étape 5: Ouvrez la console de gestion Route53 et accédez aux jeux d’enregistrements de votre zone hébergée (nom de domaine).

Open the Route 53 Management Console to Add Record Sets to your Hosted Zone

  1. Sélectionnez la zone hébergée (nom de domaine) que vous avez utilisée lors de la création de votre compartiment. Depuis que j'ai nommé mon compartiment "url-redirect-example.vivekmchawla.com", je vais sélectionner la zone hébergée vivekmchawla.com.
  2. Cliquez sur le bouton "Go to Record Sets".

Étape 6: Cliquez sur le bouton "Créer un jeu d’enregistrements".

Click the Create Record Set button

En cliquant sur "Créer un jeu d’enregistrements", vous ouvrez la fenêtre Créer un jeu d’enregistrements à droite de la console de gestion Route53.


Étape 7: Créer un jeu d’enregistrements CNAME

Create a CNAME Record Set

  1. Dans le champ Nom, entrez la partie du nom d'hôte de l'URL que vous avez utilisée pour nommer votre compartiment S3. La "partie nom d'hôte" de l'URL est tout à gauche du nom de votre zone hébergée. J'ai nommé mon compartiment S3 "url-redirect-example.vivekmchawla.com" et ma zone hébergée est "vivekmchawla.com". La partie du nom d'hôte que je dois entrer est "url-redirect-example".

  2. Sélectionnez "CNAME - Nom canonique" pour le type de cet ensemble d'enregistrements.

  3. Pour la valeur, collez l'URL du noeud final du compartiment S3 créé à l'étape 3.Cliquez sur le bouton "Créer un jeu d'enregistrements". En supposant qu'il n'y ait pas d'erreur, vous pourrez maintenant voir un nouvel enregistrement CNAME dans la liste des jeux d'enregistrements de votre zone hébergée.

  4. Étape 8: Testez votre nouvelle redirection d'URL.


Ouvrez un nouvel onglet de navigateur et tapez l'URL que nous venons de configurer. Pour moi, c'est http://url-redirect-example.vivekmchawla.com . Si tout fonctionne correctement, vous devriez être envoyé directement à une page de connexion AWS.

Comme nous avons utilisé l'alias myaccount.signin.aws.Amazon.com comme URL de destination de notre redirection, Amazon sait exactement à quel compte nous essayons d'accéder et nous y emmène directement. Cela peut s'avérer très utile si vous souhaitez donner aux employés ou aux sous-traitants un lien de connexion AWS court, propre et personnalisé.

 

.

All done! Your URL forwarding should take you to the AWS sign-in page.Conclusions


Personnellement, j'adore les différents services AWS, mais si vous avez décidé de migrer la gestion DNS vers Amazon Route 53, le manque de transfert facile des URL peut être frustrant. J'espère que ce guide a facilité la configuration du transfert d'URL pour vos zones hébergées.

Si vous souhaitez en savoir plus, consultez les pages suivantes du site de documentation AWS.

.

Exemple: Configuration d'un site Web statique à l'aide d'un domaine personnalisé .

Cheers!

300
Vivek M. Chawla

Le support AWS a proposé une solution plus simple. C'est fondamentalement la même idée proposée par @Vivek M. Chawla, avec une implémentation plus simple. 

AWS S3:

  1. Créez un compartiment nommé avec votre domaine complet, tel que aws.example.com
  2. Dans les propriétés du compartiment, sélectionnez Redirect all requests to another Host name et entrez votre URL: https://myaccount.signin.aws.Amazon.com/console/

AWS Route53:

  1. Créez un type de jeu d'enregistrements A. Modifiez Alias ​​en Yes. Cliquez sur le champ Alias Target et sélectionnez le compartiment S3 que vous avez créé à l'étape précédente

Référence: Comment rediriger des domaines à l'aide d'Amazon Web Services

Documentation officielle AWS: Existe-t-il un moyen de rediriger un domaine vers un autre domaine à l'aide d'Amazon Route 53?

120

J'ai pu utiliser nginx pour gérer la redirection 301 vers la page de connexion à aws.

Allez dans votre dossier nginx conf (dans mon cas, il s'agit de /etc/nginx/sites-available dans lequel je crée un lien symbolique vers /etc/nginx/sites-enabled pour les fichiers de configuration activés).

Puis ajoutez un chemin de redirection 

server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.Amazon.com/console;
}

Si vous utilisez nginx, vous aurez probablement des blocs de serveur supplémentaires (virtualhosts dans la terminologie Apache) pour gérer votre apex de zone (example.com) ou quelle que soit la configuration choisie. Assurez-vous que l’un d’eux est configuré pour être votre serveur par défaut.

server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}

Dans Route 53, ajoutez un A record pour aws.example.com et définissez la valeur sur la même adresse IP que celle utilisée pour votre apex de zone.

11
Vincent Mac

Mettre à jour

Bien que ma réponse originale ci-dessous soit toujours valide et puisse être utile pour comprendre la cause du transfert d'adresse URL basé sur DNS non disponible via Amazon Route 53 prêt à l'emploi, je vous recommande vivement de consulter le totalement intelligent de Vivek M. Chawla solution indirecte via le support introduit Amazon S3 prenant en charge les redirections de sites Web et permettant d’obtenir un serveur autonome moins et donc une solution libre au sein d’AWS uniquement.

  • L'implémentation d'une solution automatisée pour générer de tels redirections reste un exercice pour le lecteur, mais veuillez rendre hommage à la réponse épique de Vivek en publiant votre solution;)

Réponse originale

Nettica doit exécuter une solution de redirection personnalisée pour cela, voici le problème:

Vous pouvez créer un alias CNAME tel que aws.example.com pour myaccount.signin.aws.Amazon.com. Cependant, DNS ne fournit aucun support officiel pour aliaser un sous-répertoire tel que console dans cet exemple.

  • C'est dommage qu'AWS ne semble pas le faire simplement par défaut lorsque l'on clique sur https://myaccount.signin.aws.Amazon.com/ (je viens d'essayer), car cela résoudrait tout de suite votre problème et donnerait beaucoup de sens en premier lieu; En outre, il devrait être assez facile à configurer de leur côté.

Pour cette raison, quelques fournisseurs de DNS ont apparemment mis en place une solution personnalisée pour autoriser les redirections vers des sous-répertoires; Je suppose qu’ils facilitent fondamentalement la création d’un alias CNAME pour un domaine qui leur est propre et qu’ils redirigent leur chemin vers la destination finale via une redirection immédiate HTTP 3xx .

Donc, pour obtenir le même résultat, il vous faudrait un service HTTP exécutant ces redirections, ce qui n’est pas la solution simple que l’on espère bien entendu. Peut-être/j'espère que quelqu'un pourra proposer une approche plus intelligente encore.

9
Steffen Opel

Si vous rencontrez toujours des problèmes avec l'approche simple, créez un compartiment vide, puis Redirect all requests to another Host name sous Hébergement Web statique dans des propriétés via la console. Assurez-vous que vous avez défini 2 enregistrements A dans route53, un pour final-destination.com et un pour redirect-to.final-destination.com. Les paramètres de chacun de ces éléments seront identiques, mais le nom sera différent de sorte qu'il corresponde aux noms que vous avez définis pour vos compartiments/URL.

0
DanV