2013-04-04 2 views
3

Je construis une application web en utilisant Node/Express/Angular/Mongo et c'est la première fois que je fais affaire avec un serveur cloud. Rackspace a suggéré que je compartimente mes services. Dans un effort pour ne pas ressembler à un novice complet devant le client, je me tourne vers mes amis à StackOverflow :)Que signifie "services de compartimentation"?

Qu'est-ce que cela signifie exactement? Existe-t-il une pratique courante sur la façon d'organiser le code et les instances de Mongo et de Node pour «compartimenter»?

Ma lecture brève sur le sujet me porte à croire que cela signifie des mesures de protection ainsi l'utilisateur A ne peut pas nuire à la performance ou renifler informations sensibles de l'utilisateur B.

Répondre

2

Il est essentiellement assurer que votre information qui est en cours de traitement est seulement montré aux personnes qui "ont besoin de le voir" - définissant des propriétés dans les objets seulement quand elles DOIVENT être définies. Assurez-vous que tout est en cours et que vous n'envoyez pas plus de données que nécessaire à différents endroits comme la couche cache, les journaux, la session utilisateur, etc.

Un bon exemple où compartimentation aurait du sens est une page qui fait quelque chose comme SELECT * FROM user WHERE id=123 et stocke cela comme $_SESSION['USER'][123] pour une page où l'utilisateur veut simplement voir ses photos téléchargées ou quelque chose. Dans le cloud computing, le risque de fuite d'informations est plus élevé et d'autres mesures doivent être prises pour protéger les informations sensibles.

Wiki a fait un très bon exemple:

En matière de sécurité de l'information, que ce soit le secteur public ou privé, compartimentation est la limitation de l'accès à l'information aux personnes ou d'autres entités qui ont besoin de le savoir afin de effectuer certaines tâches. Le concept est né du traitement des informations classifiées dans des applications militaires et de renseignement. La base pour la compartimentation était l'idée que, si moins de gens connaissaient les détails d'une mission ou mission, le risque ou la probabilité que de telles informations soient compromises ou tombent entre les mains de l'opposition est diminué. Par conséquent, il existe différents niveaux de clairance au sein de organisations. Pourtant, même si quelqu'un a la plus grande autorisation, certaines informations "compartimentées", identifiées par des mots de code se rapportant à des types particuliers d'informations secrètes, peuvent encore être limitées à certains opérateurs, même avec une sécurité globale plus faible. Les informations ainsi marquées sont classées . Un exemple célèbre de ceci était l'Ultra secret, où les documents ont été marqués "Top Secret Ultra": "Top Secret" a marqué son niveau de sécurité, et le mot clé "Ultra" a restreint son lectorat à seulement ceux autorisés à lire "Ultra "documents. 1

compartimentation des services prend simplement ce concept dans les parties mobiles de votre application. Si trop de pièces bougent en un point, vous augmentez le risque en cas de défaillance de l'une de ces pièces. Votre type de serveur vous recommande probablement d'avoir un email sur un serveur, le db sur un autre serveur, le cache sur un autre serveur, etc. Ils gagnent plus d'argent, et votre application est plus sûre si l'un de ces serveurs tombe en panne.