AWS est un écosystème très sécurisé, mais ils ne peuvent garantir que ce que vous faites dans le cloud va être sécurisé. Cette responsabilité vous incombe, même si AWS essaiera de vous pousser dans la bonne direction.
Ce guide explique ce que vous devez faire à partir de la console AWS pour sécuriser votre réseau et votre compte. En plus de tout ce qui se trouve ici, vous devrez vous assurer que vos propres applications exécutées sur vos serveurs EC2 (ou autre) sont elles-mêmes sécurisées. Par exemple, activer HTTPS sur un serveur Web ou maintenir vos dépendances et programmes à jour.
Utilisez l'authentification à deux facteurs pour votre compte AWS
Votre compte AWS principal contrôle toutes vos ressources AWS; si quelqu'un y accédait, il aurait un contrôle total sur vos ressources et pourrait tout supprimer. Vous voudrez vous assurer que votre méthode de connexion n'est pas qu'un simple mot de passe qui pourrait être volé.
AWS offre quelques authentification multifacteur méthodes. Le plus simple à utiliser est le périphérique MFA virtuel, qui utilise des applications telles que Google Authenticator et Authy pour transformer votre téléphone en un porte-clés virtuel. AWS prend également en charge les clés matérielles de YubiKEy et Gemalto, mais celles-ci coûtent de l'argent. Vous pouvez également utiliser SMS, mais uniquement pour les utilisateurs administratifs que vous ajoutez, pas votre compte root.
Cliquez sur le nom de votre compte dans la barre de menu supérieure et sélectionnez "Mes informations d'identification de sécurité".
Sous "Authentification multifacteur", cliquez sur "Activer l'authentification multifacteur".
Sélectionnez «Virtual MFA Device» et ouvrez votre application d'authentification sur votre téléphone.
AWS vous montrera un code QR que vous devez scanner avec votre application d'authentification pour lier les deux. Ensuite, vous pouvez commencer à saisir les codes; AWS vous demandera deux codes consécutifs, vous devrez donc attendre 30 secondes entre eux. Cliquez sur "Attribuer l'authentification multifacteur" lorsque vous avez terminé.
Désormais, lorsque vous vous déconnecterez, un code vous sera demandé sur votre téléphone lorsque vous vous reconnecterez.
Si vous configurez un porte-clés physique, il vous suffit de le brancher pour le lier, puis de le brancher à chaque fois que vous souhaitez vous connecter.
Fermez vos pare-feu
Chaque fois que vous créez une nouvelle instance EC2, vous serez invité à choisir un groupe de sécurité ou à en créer un nouveau. Ce groupe de sécurité est un pare-feu et définit les ports qui seront ouverts. Par défaut, AWS ouvre le port 22 (pour SSH) pour toutes les adresses IP entrantes et autorise la sortie de tout le trafic.
Cela signifie que n'importe qui peut tenter de s'authentifier via SSH, ce qui n'est pas un gros problème (étant donné qu'AWS utilise des clés SSH par défaut), mais il est recommandé de limiter la plupart du trafic vers votre adresse IP, sauf si elle a une raison d'être ouverte sur le monde.
Cliquez sur "Groupes de sécurité" dans la barre latérale de la console de gestion EC2, sélectionnez le groupe utilisé par votre instance, sélectionnez "Entrant", puis cliquez sur "Modifier". Vous pouvez également accéder à ce groupe de sécurité à partir du panneau Instances en cliquant dessus sous la propriété «Groupes de sécurité».
De là, vous pouvez modifier les règles de ce groupe de sécurité. Sortant est généralement bien de laisser ouvert, mais entrant doit être laissé aussi fermé que possible. Cliquez sur la règle SSH et basculez la source de «Anywhere» à «My IP», ce qui devrait la fermer.
Vous n'avez pas à vous soucier de la modification et du verrouillage de votre adresse IP, car vous pouvez toujours la réinitialiser à partir de la console AWS.
Si plusieurs instances se parlent entre elles, comme un serveur de base de données qui se connecte à un serveur API, vous devez sécuriser la connexion entre elles en autorisant uniquement le trafic sécurisé entre les deux instances. Personne d'autre ne devrait pouvoir parler à la base de données à l'exception du serveur API, à l'exception de votre adresse IP à des fins de gestion.
Vous n'êtes pas obligé de spécifier manuellement les adresses IP individuelles, car AWS vous permettra d'autoriser le trafic vers tous les appareils affectés à un groupe de sécurité spécifique. Si vous avez plusieurs serveurs de base de données, vous pouvez leur attribuer à tous le groupe de sécurité «base de données» et autoriser votre serveur API à parler à n'importe quoi avec ce groupe de sécurité. Vous pouvez également tout autoriser dans un sous-réseau, ce qui vous oblige à utiliser VPC d'AWS.
Configurer les utilisateurs IAM
Les utilisateurs AWS Identity and Access Management (IAM) sont un moyen d'autoriser l'accès à votre compte sans accorder d'autorisations complètes. Si plusieurs personnes accèdent à vos ressources AWS, vous devez leur donner accès via un Utilisateur IAM. Vous ne devez jamais donner accès à votre compte root.
Les utilisateurs IAM ne sont cependant pas réservés aux autres; si vous disposez d'un code qui doit accéder à votre compte AWS, vous devez autoriser l'accès via un utilisateur IAM. Certains services AWS utiliseront les utilisateurs IAM pour agir sur les ressources de votre compte.
AWS recommande également d'utiliser un utilisateur IAM avec l'autorisation d'administrateur pour toutes vos tâches normales. De cette façon, vous pouvez verrouiller les informations d'identification de votre compte racine et ne les utiliser que lorsqu'elles sont absolument nécessaire, principalement pour la gestion des comptes.
Les utilisateurs IAM peuvent se voir attribuer des autorisations très spécifiques, vous pouvez donc être sûr que si l'un d'entre eux est compromis, cela n'affectera pas l'ensemble de votre infrastructure. Vous pouvez également attribuer ces autorisations à des groupes de rôles et attribuer des rôles aux utilisateurs.
Vous pouvez créer de nouveaux utilisateurs IAM via le Console de gestion IAM. Ils recevront un mot de passe généré aléatoirement, qu'ils seront obligés de changer lors de la première connexion. Vous devez appliquer un Politique de mot de passe IAM pour vous assurer que ces mots de passe sont sécurisés.
Effectuer des audits de sécurité réguliers
Vous devez régulièrement revoir votre sécurité pour vous assurer que vous n’avez rien manqué. AWS fournit un liste de contrôle très complète dans ce but précis.
Cette liste de contrôle vous permet de supprimer les anciennes ressources qui ne sont plus utilisées et de revoir vos politiques de sécurité pour différents services. Les principales sources d'insécurité sont les changements dans la façon dont vous utilisez AWS, par exemple si vous avez commencé à utiliser un nouveau service, cessé d'utiliser l'ancien ou si des gens sont partis. Dans chaque cas, vous devez revoir vos politiques d'accès.
Si vous n'utilisez pas AWS pour un compte organisationnel, il n'est probablement pas nécessaire de parcourir toute cette liste de contrôle, mais vous devez tout de même prendre l'habitude de consulter vos politiques de sécurité de temps en temps.