# ¿Cómo se protegen mis credenciales de Amazon S3?

Si quieres que almacenemos archivos en tu bucket de S3, te recomendamos guardar las credenciales en unTemplate de tu cuenta. Mantenemos esteTemplate cifrado en nuestra base de datos.

Las claves necesarias para descifrarlas se inyectan en la memoria del proceso mediante otro usuario del sistema. Esto significa que, si alguien lograra vulnerar al usuario con el que ejecutamos los procesos de nuestra API o sitio web, aun así no podría acceder a las claves. Si intentara modificar nuestro código para mostrar o enviar las credenciales, tendría que reiniciar el servicio (algo que ese usuario no tiene permitido) y acceder a los archivos de claves (algo que tampoco tiene permitido).

Si alguien obtiene acceso raíz a nuestros servidores, la situación es diferente. Por eso usamos firewalls, claves SSH protegidas y acceso sudo limitado; sin embargo, como te dirá cualquier experto, la seguridad al 100% es un mito y es mejor prepararse para lo peor.

Por eso recomendamos crear [políticas de IAM](/docs/robots/s3-store.md) que solo tengan permisos `Put` y`List` en tus buckets (para consultar una lista actualizada y precisa de los permisos necesarios, revisa la [documentación de S3 Store](/docs/robots/s3-store.md)) y permitir que Transloadit las use únicamente para escribir. Así, si alguna vez robaran tus credenciales y los delincuentes también lograran descifrarlas, solo podrían agregar más archivos a ese bucket específico hasta que lo detectáramos e interviniéramos.

Aunque, como mencionamos, la seguridad al 100% es un mito, nuestra filosofía de seguridad consiste en dificultar al máximo que alguien acceda a tus credenciales y a las claves necesarias para descifrarlas y, si logra obtenerlas, hacer que resulten lo menos útiles posible.
