security - signin - aws simpledb vs dynamodb
Impacto de los identificadores de cuentas de AWS (4)
Lo que puede hacer es tener un solo ''servidor de autenticación'' súper bloqueado. La clave secreta solo existe en este único servidor, y todos los demás servidores necesitarán solicitar permiso. Puede asignar sus propias claves a los distintos servidores y también bloquearlas por dirección IP. De esta forma, si un servidor se ve comprometido, simplemente revoca su clave del "servidor de autenticación".
Esto es posible debido a la forma en que funciona la autenticación AWS. Supongamos que su servidor web necesita cargar un archivo en S3. En primer lugar, generará la solicitud de AWS y enviará esa solicitud junto con su clave de servidor personalizada al ''servidor de autenticación''. El servidor de autenticación autenticará la solicitud, haciendo las cosas criptogámicas y devolverá la cadena autenticada al servidor web. El servidor web puede usar esto para enviar la solicitud junto con el archivo para cargar en S3.
Estoy usando las herramientas de Amazon para construir una aplicación web. Estoy muy feliz con ellos, pero tengo una preocupación de seguridad.
En este momento, estoy usando varias instancias de EC2, S3, SimpleDB y SQS. Para autenticar las solicitudes a los diferentes servicios, debe incluir sus identificadores de acceso (es necesario iniciar sesión).
Por ejemplo, para cargar un archivo en S3 desde una instancia EC2, su instancia EC2 necesita tener su ID de clave de acceso y su clave de acceso secreta .
Eso básicamente significa 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 utilizar 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?
Mi primer pensamiento es obtener múltiples identificadores por cuenta para poder seguir 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 con, o al menos pensado sobre este problema?
AWS ofrece "Facturación consolidada" que aborda su inquietud en el segundo momento.
"La Facturación Consolidada le permite consolidar el pago de múltiples cuentas de Amazon Web Services (AWS) dentro de su compañía al designar una sola cuenta de pago. Puede ver una combinación de los costos de AWS incurridos por todas las cuentas, así como obtener un informe de costos detallado para cada una de las cuentas de AWS individuales asociadas con su cuenta de pago. La Facturación consolidada también puede reducir sus costos generales, ya que el uso acumulado en todas sus cuentas podría ayudarlo a alcanzar niveles de volumen de menor precio más rápidamente ".
AWS le permite crear múltiples usuarios con Identity and Access Management . Esto le permitirá implementar cualquiera de sus escenarios.
Sugeriría definir un usuario de IAM por instancia de EC2, esto le permite revocar el acceso a un usuario específico (o solo sus claves de acceso) si la instancia de EC2 correspondiente está en peligro y también usar permisos detallados para restringir qué API puede llamar el usuario y a qué recursos pueden acceder (por ejemplo, solo permiten al usuario subir a un segmento específico).
Además, las funciones de IAM de AWS le permiten asignar permisos a una instancia de EC2 en lugar de tener que colocar claves en la instancia. Vea la publicación del blog en http://aws.typepad.com/aws/2012/06/iam-roles-for-ec2-instances-simplified-secure-access-to-aws-service-apis-from-ec2.html La mayoría de los SDK utilizan las claves temporales creadas por los roles.