Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Publier un SNS message Amazon depuis Amazon VPC
Cette section explique comment publier sur un SNS sujet Amazon tout en préservant la sécurité des messages sur un réseau privé. Vous publiez un message depuis une EC2 instance Amazon hébergée sur Amazon Virtual Private Cloud (AmazonVPC). Le message reste sur le AWS réseau sans passer par l'Internet public. En publiant des messages privés depuis unVPC, vous pouvez améliorer la sécurité du trafic entre vos applications et AmazonSNS. Cette sécurité est importante lorsque vous publiez des informations personnellement identifiables (PII) sur vos clients ou lorsque votre application est soumise aux réglementations du marché. Par exemple, il est utile de publier en privé si votre système de santé doit se conformer à la loi sur la portabilité et la responsabilité de l'assurance maladie (HIPAA), ou si votre système financier doit se conformer à la norme de sécurité des données du secteur des cartes de paiement (PCIDSS).
Les étapes générales à suivre sont les suivantes :
-
Utilisez un AWS CloudFormation modèle pour créer automatiquement un réseau privé temporaire dans votre Compte AWS.
-
Créez un VPC point de terminaison qui connecte le VPC à AmazonSNS.
-
Connectez-vous à une EC2 instance Amazon et publiez un message en privé sur un SNS sujet Amazon.
-
Vérifier que le message a été remis avec succès.
-
Supprimez les ressources que vous avez créées au cours de ce processus afin qu'elles ne restent pas dans votre Compte AWS.
Le schéma suivant décrit le réseau privé que vous créez dans votre AWS compte au fur et à mesure que vous effectuez ces étapes :
Ce réseau se compose d'un réseau VPC qui contient une EC2 instance Amazon. L'instance se connecte à Amazon SNS via un point de VPCterminaison d'interface. Ce type de point de terminaison se connecte à des services alimentés par AWS PrivateLink. Une fois cette connexion établie, vous pouvez vous connecter à l'EC2instance Amazon et publier des messages sur le SNS sujet Amazon, même si le réseau est déconnecté de l'Internet public. Le sujet répartit les messages qu'il reçoit vers deux AWS Lambda fonctions d'abonnement. Ces fonctions enregistrent les messages qu'elles reçoivent dans Amazon CloudWatch Logs.
Il vous faudra environ 20 minutes pour réaliser ces étapes.
Rubriques
Avant de commencer
Avant de commencer, vous avez besoin d'un compte Amazon Web Services (AWS). Lorsque vous vous inscrivez, votre compte est automatiquement ouvert pour tous les services AWS, y compris Amazon SNS et AmazonVPC. Si vous n'avez pas encore créé de compte, accédez à https://aws.amazon.com/
Étape 1 : créer une paire de EC2 clés Amazon
Une paire de clés est utilisée pour se connecter à une EC2 instance Amazon. Elle se compose d'une clé publique utilisée pour chiffrer vos informations de connexion et d'une clé privée utilisée pour les déchiffrer. Lorsque vous créez une paire de clés, vous téléchargez une copie de la clé privée. Vous utiliserez ensuite la paire de clés pour vous connecter à une EC2 instance Amazon. Pour vous connecter, vous spécifiez le nom de la paire de clés et vous fournissez la clé privée.
Pour créer la paire de clés
Connectez-vous à la EC2 console Amazon AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans le menu de navigation de gauche, recherchez la section Network & Security (Réseau et sécurité). Choisissez ensuite Paires de clés.
-
Choisissez Create Key Pair (Créer une paire de clés).
-
Dans la fenêtre Créer une paire de clés, pour le champ Nom de la paire de clés, tapez
VPCE-Tutorial-KeyPair
. Ensuite, choisissez Créer. -
Le fichier de clé privée est automatiquement téléchargé dans votre navigateur. Enregistrez-la dans un emplacement sûr. Amazon EC2 attribue au fichier une extension de
.pem
. -
(Facultatif) Si vous utilisez un SSH client sur un ordinateur Mac ou Linux pour vous connecter à votre instance, utilisez la
chmod
commande pour définir les autorisations de votre fichier de clé privée afin que vous soyez le seul à pouvoir le lire :-
Ouvrez un terminal et accédez au répertoire contenant la clé privée :
$
cd /
filepath_to_private_key
/ -
Définissez les autorisations à l'aide de la commande suivante :
$
chmod 400 VPCE-Tutorial-KeyPair.pem
-
Étape 2 : Création des AWS ressources
Pour configurer l'infrastructure, vous utilisez un AWS CloudFormation modèle. Un modèle est un fichier qui sert de modèle pour créer des AWS ressources, telles que des EC2 instances Amazon et des SNS rubriques Amazon. Le modèle de ce processus est fourni ci-dessous GitHub pour que vous puissiez le télécharger.
Vous fournissez le modèle et AWS CloudFormation vous AWS CloudFormation provisionnez les ressources dont vous avez besoin sous forme de pile dans votre Compte AWS. Une pile est un ensemble de ressources que vous gérez comme une seule unité. Lorsque vous avez terminé ces étapes, vous pouvez l'utiliser AWS CloudFormation pour supprimer toutes les ressources de la pile en une seule fois. Ces ressources ne restent pas dans votre mémoire Compte AWS, sauf si vous le souhaitez.
La pile pour ce processus inclut les ressources suivantes :
-
A VPC et les ressources réseau associées, notamment un sous-réseau, un groupe de sécurité, une passerelle Internet et une table de routage.
-
Une EC2 instance Amazon lancée dans le sous-réseau duVPC.
-
Un SNS sujet sur Amazon.
-
Deux AWS Lambda fonctions. Ces fonctions reçoivent des messages publiés sur le SNS sujet Amazon et enregistrent les événements dans CloudWatch des journaux.
-
Statistiques CloudWatch et journaux Amazon.
-
Un IAM rôle qui permet à l'EC2instance Amazon d'utiliser AmazonSNS, et un IAM rôle qui permet aux fonctions Lambda d'écrire dans des CloudWatch journaux.
Pour créer les AWS ressources
-
Téléchargez le fichier modèle
depuis le GitHub site Web. -
Connectez-vous à la console AWS CloudFormation
. -
Sélectionnez Créer une pile.
-
Sur la page Select Template (Sélectionner un modèle), choisissez Upload a template to Amazon S3 (Charger un modèle dans Amazon S3), sélectionnez le fichier, puis Next (Suivant).
-
Sur la page Specify Details (Spécifier les détails), spécifiez les noms de pile et de clé :
-
Pour le Nom de la pile, tapez
VPCE-Tutorial-Stack
. -
Pour KeyName, choisissez VPCE-Tutorial-. KeyPair
-
Pour SSHLocation, conservez la valeur par défaut de
0.0.0.0/0
. -
Choisissez Suivant.
-
-
Dans la page Options, conservez toutes les valeurs par défaut, puis choisissez Suivant.
-
Sur la page Review (Vérification), vérifiez les détails de la pile.
-
Sous Fonctionnalités, reconnaissez que cela AWS CloudFormation peut créer IAM des ressources avec des noms personnalisés.
-
Sélectionnez Create (Créer).
La AWS CloudFormation console ouvre la page Stacks. Le statut VPCE-Tutorial-Stack est CREATE_IN_ PROGRESS. Quelques minutes plus tard, une fois le processus de création terminé, le statut passe à CREATE_ COMPLETE.
Astuce
Choisissez le bouton Actualiser pour afficher l'état le plus récent de la pile.
Étape 3 : Vérifiez que votre EC2 instance Amazon n'a pas accès à Internet
L'EC2instance Amazon qui a été lancée VPC dans votre ordinateur à l'étape précédente n'a pas accès à Internet. Il interdit le trafic sortant et ne peut pas publier de messages sur Amazon. SNS Vous pouvez vérifier cela en vous connectant à l'instance. Essayez ensuite de vous connecter à un point de terminaison public et essayez d'envoyer un message à AmazonSNS.
À ce stade, la tentative de publication échoue. Lors d'une étape ultérieure, une fois que vous avez créé un VPC point de terminaison pour AmazonSNS, votre tentative de publication aboutit.
Pour vous connecter à votre EC2 instance Amazon
-
Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/
. -
Dans le menu de navigation de gauche, recherchez la section Instances. Choisissez ensuite Instances.
-
Dans la liste des instances, sélectionnez VPCE- Tutorial-EC2Instance.
-
Copiez le nom d'hôte fourni dans la colonne Public DNS (IPv4).
-
Ouvrez un terminal . Dans le répertoire contenant la paire de clés, connectez-vous à l'instance à l'aide de la commande suivante, où
instance-hostname
est le nom d'hôte que vous avez copié depuis la EC2 console Amazon :$
ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@
instance-hostname
Pour vérifier que l'instance n'a pas de connectivité Internet
-
Dans votre terminal, essayez de vous connecter à n'importe quel point de terminaison public, comme amazon.com :
$
ping amazon.com
Comme la tentative de connexion échoue, vous pouvez annuler à tout moment (Ctrl+C sur Windows ou Commande + C sur macOS).
Pour vérifier que l'instance n'est pas connectée à Amazon SNS
-
Connectez-vous à la SNSconsole Amazon
. -
Dans le menu de navigation de gauche, choisissez Rubriques.
-
Sur la page Rubriques, copiez le nom de la ressource Amazon (ARN) pour le sujet VPCE-Tutorial-Topic.
-
Dans votre terminal, essayez de publier un message dans la rubrique :
$
aws sns publish --region
aws-region
--topic-arnsns-topic-arn
--message "Hello"Comme la tentative de publication échoue, vous pouvez annuler à tout moment.
Étape 4 : créer un point de VPC terminaison Amazon pour Amazon SNS
Pour le connecter VPC à AmazonSNS, vous devez définir un point de VPC terminaison d'interface. Après avoir ajouté le point de terminaison, vous pouvez vous connecter à l'EC2instance Amazon dans votre instanceVPC, puis utiliser Amazon SNSAPI. Vous pouvez publier des messages dans la rubrique, et les messages sont publiés en mode privé. Ils restent dans le AWS réseau et ne naviguent pas sur l'Internet public.
Note
L'instance n'a toujours pas accès aux autres AWS services et points de terminaison sur Internet.
Pour créer le point de terminaison
-
Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/
. -
Dans le menu de navigation de gauche, choisissez Endpoints (Points de terminaison).
-
Choisissez Créer un point de terminaison.
-
Sur la page Créer un point de terminaison, pour Catégorie de services, conservez la valeur par défaut services AWS .
-
Dans Nom du service, choisissez le nom du service pour AmazonSNS.
Les noms de service varient en fonction de la région choisie. Par exemple, si vous avez choisi USA East (Virginie du Nord), le nom du service est com.amazonaws.
us-east-1
.sns. -
Pour VPC, choisissez VPC celui qui porte le nom VPCE-Tutorial- VPC.
-
Pour les sous-réseaux, choisissez le sous-réseau dont l'ID de sous-réseau contient VPCE-Tutorial-Subnet.
-
Pour Activer le DNS nom privé, sélectionnez Activer pour ce point de terminaison.
-
Pour Groupe de sécurité, choisissez Sélectionner un groupe de sécurité, puis choisissez VPCE-Tutoriel- SecurityGroup.
-
Choisissez Créer un point de terminaison. La VPC console Amazon confirme qu'un VPC point de terminaison a été créé.
-
Choisissez Close (Fermer).
La VPC console Amazon ouvre la page Endpoints. Le nouveau point de terminaison a l'état pending (en attente). Après quelques minutes, une fois le processus de création terminé, l'état devient available (disponible).
Étape 5 : publier un message dans votre SNS rubrique Amazon
Maintenant que vous avez VPC inclus un point de terminaison pour AmazonSNS, vous pouvez vous connecter à l'EC2instance Amazon et publier des messages sur le sujet.
Pour publier un message
-
Si votre terminal n'est plus connecté à votre EC2 instance Amazon, reconnectez-vous :
$
ssh -i VPCE-Tutorial-KeyPair.pem ec2-user@
instance-hostname
-
Exécutez la même commande que précédemment pour publier un message dans votre SNS rubrique Amazon. Cette fois, la tentative de publication aboutit et Amazon SNS renvoie un identifiant de message :
$
aws sns publish --region
aws-region
--topic-arnsns-topic-arn
--message "Hello"{ "MessageId": "5b111270-d169-5be6-9042-410dfc9e86de" }
Étape 6 : Vérifier la livraison de vos messages
Lorsque le SNS sujet Amazon reçoit un message, il le diffuse en l'envoyant aux deux fonctions Lambda d'abonnement. Lorsque ces fonctions reçoivent le message, elles enregistrent l'événement dans les CloudWatch journaux. Pour vérifier que la livraison de votre message a réussi, vérifiez que les fonctions ont été invoquées et que les CloudWatch journaux ont été mis à jour.
Pour vérifier que les fonctions Lambda ont été appelées
-
Ouvrez la AWS Lambda console à l'adresse https://console.aws.amazon.com/lambda/
. -
Sur la page Fonctions, choisissez VPCE-Tutorial-Lambda-1.
-
Choisissez Surveillance.
-
Vérifiez le graphique Nombre d'appels. Ce graphique montre le nombre de fois que la fonction Lambda a été exécutée.
Le nombre d'appels correspond au nombre de fois où vous avez publié un message dans la rubrique.
Pour vérifier que les CloudWatch journaux ont été mis à jour
-
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le menu de navigation de gauche, choisissez Journaux.
-
Vérifiez les journaux qui ont été écrits par les fonctions Lambda :
-
Choisissez le groupe de journaux/aws/lambda/VPCE-Tutorial-Lambda-1/.
-
Choisissez le flux de journaux.
-
Vérifiez que le journal inclut l'entrée
From SNS: Hello
. -
Choisissez Log Groups (Groupes de journaux) en haut de la console pour renvoyer la page Log Groups (Groupes de journaux). Répétez ensuite les étapes précédentes pour le groupe de logs the /aws/lambda/VPCE -Tutorial-Lambda-2/.
-
Félicitations ! En ajoutant un point de terminaison SNS pour Amazon à unVPC, vous avez pu publier un message sur un sujet depuis le réseau géré par leVPC. Le message a été publié en mode privé sans être exposé sur l'Internet public.
Étape 7 : nettoyer
À moins que vous souhaitiez conserver les ressources que vous avez créées, vous pouvez les supprimer maintenant. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles pour votre Compte AWS.
Tout d'abord, supprimez votre VPC point de terminaison à l'aide de la VPC console Amazon. Supprimez ensuite les autres ressources que vous avez créées en supprimant la pile dans la AWS CloudFormation console. Lorsque vous supprimez une pile, AWS CloudFormation les ressources de la pile sont supprimées de votre Compte AWS.
Pour supprimer votre point de VPC terminaison
-
Ouvrez la VPC console Amazon à l'adresse https://console.aws.amazon.com/vpc/
. -
Dans le menu de navigation de gauche, choisissez Endpoints (Points de terminaison).
-
Sélectionnez le point de terminaison que vous avez créé.
-
Choisissez Actions, puis Delete Endpoint (Supprimer le point de terminaison).
-
Dans la fenêtre Delete Endpoint (Supprimer le point de terminaison), sélectionnez Yes, Delete (Oui, supprimer).
L'état du point de terminaison passe à deleting (en cours de suppression). Une fois la suppression terminée, le point de terminaison est supprimé de la page.
Pour supprimer votre AWS CloudFormation pile
-
Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation.
-
Sélectionnez la pile VPCE-Tutorial-Stack.
-
Choisissez Actions, puis Supprimer pile.
-
Dans la fenêtre Delete Stack (Supprimer la pile), sélectionnez Yes, Delete (Oui, supprimer).
L'état de la pile passe à DELETE_IN_ PROGRESS. Une fois la suppression terminée, la pile est supprimée de la page.
Ressources connexes
Pour plus d'informations, veuillez consulter les ressources suivantes.