Estoy usando las herramientas de Amazon para crear una aplicación web. Estoy muy feliz con ellos, pero tengo una preocupación de seguridad.Impacto de los identificadores de cuenta AWS
En este momento, estoy usando varias instancias EC2, S3, SimpleDB y SQS. Para autenticar solicitudes a los diferentes servicios, incluya su Access Identifiers (se requiere iniciar sesión).
Por ejemplo, para cargar un archivo en S3 desde una instancia EC2, la instancia EC2 tiene que tener su ID de clave de acceso y su clave secreta de acceso.
Eso significa básicamente que su nombre de usuario y contraseña deben estar en sus instancias.
Si una de mis instancias se viera comprometida, todos mis activos de Amazon se verían comprometidos. Las claves se pueden usar para cargar/reemplazar datos S3 y SimpleDB, iniciar y detener instancias EC2, etc.
¿Cómo puedo minimizar el daño de un único host comprometido?
Lo primero que pienso es obtener múltiples identificadores por cuenta para poder hacer un seguimiento de los cambios realizados y revocar rápidamente la cuenta "pirateada". Amazon no admite más de un conjunto de credenciales por cuenta.
Mi segundo pensamiento fue crear varias cuentas y usar ACL para controlar el acceso. Lamentablemente, no todos los servicios admiten el otorgamiento de acceso a sus datos a otras cuentas. Además, el ancho de banda es más barato cuanto más se usa, por lo que tener todo pasar por una cuenta es ideal.
¿Alguien ha tratado, o al menos pensado sobre este problema?
"Rolando su propio" servidor de autenticación de este tipo es probable que resulte en fallas de seguridad inesperadas e inadvertidas. AWS ahora (pero no cuando se le preguntó por primera vez) tiene instalaciones para administrar los riesgos de la pregunta. En particular, los roles de IAM (como se describe en la respuesta de @ cudds) son una buena opción para este problema. –