Question Gestion des informations d'identification de sécurité IAM pour plusieurs conteneurs de menu fixe


Dans un environnement EC2 simple, la gestion de l'accès aux autres ressources AWS est relativement simple avec les rôles et les informations d'identification IAM (récupérés automatiquement à partir des métadonnées d'instance). Encore plus facile avec CloudFormation, où vous pouvez créer des rôles à la volée lorsque vous attribuez un rôle d'application particulier à une instance.

Si je souhaitais migrer vers Docker et avoir une sorte de déploiement M-to-N, où j'ai des machines M et des applications N s'exécutant sur ce dernier, comment puis-je limiter l'accès aux ressources AWS par application? Les métadonnées d'instance sont accessibles à tous les utilisateurs de l'hôte. Par conséquent, chaque application peut afficher / modifier les données de toutes les autres applications dans le même environnement de déploiement.

Quelles sont les meilleures pratiques pour fournir des informations d'identification de sécurité aux conteneurs d'applications s'exécutant dans un tel environnement?


11
2018-04-09 04:39


origine




Réponses:


Il y a ce projet: https://github.com/dump247/docker-ec2-metadata

Il agit en tant que proxy pour le point de terminaison de méta-données d'instance, en renvoyant un rôle spécifique au conteneur. Je ne l'ai pas utilisé auparavant, mais cela semble résoudre le cas d'utilisation que vous décrivez.


5
2017-10-22 21:31





L'application du moindre privilège à l'aide de rôles et de groupes de sécurité (même si vous ne les avez pas mentionnés) dans AWS avec EC2 est l'une des meilleures pratiques pour fournir un environnement sécurisé à vos applications d'hébergement, en particulier lorsque vous utilisez CloudFormation. Toutefois, lorsque vous superposez un environnement Docker à locataires multiples, les choses commencent à se dégrader.

La meilleure solution actuellement pour continuer à tirer parti des rôles tout en appliquant le moindre privilège est de ne pas utiliser une approche multi-locataire. Utilisez fondamentalement un mappage univoque entre une instance et une application EC2, mais vous pouvez toujours utiliser des grappes / ASG. Docker reste un outil extrêmement utile et puissant que vous pouvez utiliser pour gérer et déployer vos applications, mais pour l’instant, les rôles s’appliquent à l’instance EC2 et non au conteneur. Cela signifie qu’il faut pour le moment utiliser des ordinateurs virtuels distincts pour chaque application.

Si le fait d'être multi-locataire est plus important que les rôles, la solution consiste à ne pas utiliser ces rôles et à ne pas distribuer les informations d'identification AWS à vos applications à l'aide d'une autre méthode.

Malheureusement, aucune de ces solutions n'est très souhaitable et je m'attends à ce que AWS s'attaque à ce problème spécifique à l'avenir, principalement en raison de la popularité croissante des conteneurs.


1
2017-07-28 01:12