Amazon Web Services Security api

Aquí hay una pregunta obvia cuando se trata de servidores proxy de terceros: Si estas herramientas actúan en su nombre, ¿cómo lo hace Amazon Web Services (AWS) saben que la persona en cuyo nombre están actuando de hecho ¿tú? En otras palabras, ¿cómo puede AWS autenticar su identidad para asegurarse de que las órdenes que recibe son de usted?

De hecho, la misma pregunta es válida incluso si se interactúa con la API de AWS directamente. ¿Cómo puede AWS validar su identidad para asegurarse de que se ejecuta comandos sólo para usted?

Una forma, por supuesto, es para que usted incluya su nombre de usuario de cuenta y contraseña en las llamadas a la API. Aunque algunos proveedores de nube toman este enfoque, lo hace Amazon no.

En lugar de confiar en un nombre de usuario y contraseña, se basa en otros dos identificadores para autenticar sus llamadas de servicio API: la clave de acceso y la clave de acceso secreta. Utiliza las teclas de las llamadas de servicio para implementar la seguridad de una manera que es mucho más seguro que usando sólo su nombre de usuario y contraseña.

Entonces, ¿cómo funciona? Cuando usted se inscribe en una cuenta con AWS, usted tiene la oportunidad de crear una clave de acceso y tener una clave de acceso secreta enviada. Cada uno es una larga cadena de caracteres al azar, y la clave de acceso secreta es el más largo de los dos. Al descargar la clave de acceso secreta, debe guardarlo en algún lugar muy seguro, ya que es la clave (lo siento - mal juego de palabras) para la implementación de las llamadas de servicio seguras.

Después de hacer esto, usted y Amazon tiene una copia de la clave de acceso y la clave de acceso secreta. Retener una copia de la clave de acceso secreta es crucial porque se utiliza para cifrar la información enviada de ida y vuelta entre usted y AWS, y si usted no tiene la clave de acceso secreta, que no puede ejecutar ninguna llamada en AWS.

La forma en que se utilizan las dos teclas es conceptualmente simple, aunque algo difícil en detalle.

En esencia, por cada llamada de servicio que desea realizar, usted (o una herramienta que operan en su nombre) lo siguiente:


  1. Cree la carga útil de llamada de servicio.

    Se trata de los datos que necesita para enviar a AWS. Puede ser un objeto que desea almacenar en S3 o el identificador de imagen de una imagen que desea iniciar. (También se le adjunte otras piezas de información a la carga útil, pero ya que varían en función de las características específicas de la llamada de servicio, que no está en la lista aquí. Una pieza de datos es la hora actual.)

  2. Cifrar la carga útil usando la clave de acceso secreta.

    Si lo hace, se asegura de que nadie puede examinar la carga útil y descubrir lo que está en él.

  3. Firmar digitalmente la carga útil cifrada mediante la adición de la clave de acceso secreta a la carga útil cifrada y la realización de un proceso de firma digital utilizando la clave de acceso secreta.

    Claves de acceso secretas son más largos y más al azar que el usuario típico de passwords de la clave de acceso secreta prolongada hace que el cifrado realizado con él más seguro de lo que sería si se lleva a cabo con una contraseña de usuario típico.

  4. Enviar la carga útil total de cifrado, junto con su clave de acceso, a AWS a través de una llamada de servicio.

    Amazon utiliza la clave de acceso para buscar su clave de acceso secreta, que se utiliza para descifrar la carga útil. Si la carga útil descifrado representa texto legible que se puede ejecutar, AWS ejecuta la llamada de servicio. De lo contrario, se llega a la conclusión de que algo anda mal con la llamada de servicio (tal vez que fue llamado por un actor malévola) y no ejecuta la llamada de servicio.


Además de la encriptación se acaba de describir, AWS tiene otros dos métodos que utiliza para garantizar la legitimidad de la llamada de servicio:

  • La primera se basa en la información de fecha que se incluye con la carga útil llamada de servicio, que se utiliza para determinar si el tiempo asociado con la realización de la llamada de servicio es su caso- si la fecha de la llamada de servicio es muy diferente de lo que debería ser ( mucho más temprano o más tarde de la hora actual, en otras palabras), AWS concluye que no es una llamada de servicio legítimo y la descarta.

  • La segunda medida de seguridad adicional consiste en una suma de comprobación se calcula para la carga útil. (LA checksum es un número que representa el contenido de un mensaje.) AWS calcula una suma de comprobación para la payload- si su suma de comprobación no está de acuerdo con los suyos, que no permite la llamada de servicio y no lo ejecuta.

    Este enfoque de suma de control asegura que nadie interfiera con el contenido de un mensaje y evita que un actor de malévola de interceptar una llamada de servicio legítimo y cambiarlo para realizar una acción inaceptable. Si alguien altere el mensaje, cuando AWS calcula una suma de comprobación, que la suma de comprobación no coincide con el que se incluye en el mensaje, y AWS niega a ejecutar la llamada de servicio.

Si, como la mayoría de los usuarios de AWS, se utiliza un método proxy para interactuar con AWS - la consola de administración de AWS, una biblioteca idioma, o una herramienta de terceros - es necesario proporcionar su clave de acceso y clave de acceso secreta al proxy. Cuando el proxy ejecuta las llamadas de servicio de AWS en su nombre, que incluye la clave de acceso en la convocatoria y utilizar la tecla de acceso secreto para realizar el cifrado de carga útil.

Debido al papel fundamental que estas teclas cumplen en AWS, debe compartirlas solamente con personas de su confianza. Si quieres probar una nueva herramienta de terceros y usted no sabe mucho acerca de la empresa, crear una cuenta de prueba AWS para el juicio en lugar de utilizar sus credenciales de la cuenta de producción de AWS.

De esa manera, si usted decide no seguir adelante con la herramienta, se puede caer, cancelar la cuenta de AWS prueba, y seguir adelante, sin preocuparse por posibles vulnerabilidades de seguridad en sus principales cuentas de producción. Por supuesto, siempre se puede crear nuevas claves de acceso y claves de acceso secretas, pero utilizando sus claves de producción de pruebas y luego cambiar las teclas crea mucho trabajo, porque hay que actualizar cada lugar que hace referencia a las claves existentes.

Si usted es como muchos otros usuarios de AWS, va a utilizar una serie de herramientas y bibliotecas, y volver a ellos para actualizar sus claves es un dolor. Es mejor que el uso de cuentas de no producción para probar nuevas herramientas.