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 asegurar que las órdenes que recibe son de usted?

Video: ep 2: How to secure your AWS Gateway API with API key (tutorial with screencast and test)

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 asegurar que se ejecuta comandos sólo para usted?

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

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

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

Video: AWS Summit San Francisco 2015: Build and Manage Your APIs with Amazon API Gateway

Después de hacer esto, usted y Amazon tiene una copia de la clave de acceso y la clave secreta de acceso. Retener una copia de la clave secreta de acceso es crucial porque se usa 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 opera en su nombre) lo siguiente:

  1. Crear la carga útil 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 podrá conectar otros elementos de información para la carga útil, pero ya que varían de acuerdo a 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 utilizando la clave secreta de acceso.

    Así, asegura que nadie puede examinar la carga útil y descubrir lo que hay en ella.

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

    claves secretas de acceso son más largos y más al azar que el usuario típico de passwords de la clave secreta de acceso larga 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 está mal con la llamada de servicio (tal vez que fue llamado por un actor malévola) y no ejecuta la llamada de servicio.

Video: AWS Summit San Francisco 2015: Introducing Amazon API Gateway

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 llega a la conclusión de que no es una llamada de servicio legítimo y lo descarta.

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

    Este enfoque suma de comprobación 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 cambiándolo a realizar una acción inaceptable. Si alguien altere el mensaje, cuando AWS calcula una suma de comprobación, suma de comprobación que ya 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 de proxy para interactuar con AWS - AWS Management Console, una biblioteca para el lenguaje, o una herramienta de terceros - es necesario proporcionar su clave de acceso y la clave secreta de acceso al proxy. Cuando el proxy ejecuta las llamadas de servicio de AWS en su nombre, que incluye la clave de acceso en la llamada y el uso de la clave secreta de acceso para realizar el cifrado de carga útil.

Debido al papel fundamental que cumplen estas teclas en AWS, debe compartirlas solamente con las entidades de su confianza. Si desea probar una nueva herramienta de terceros y no se sabe mucho acerca de la empresa, configurar una cuenta de prueba de AWS para el juicio en vez de usar sus credenciales de la cuenta de producción de AWS.

Video: AWS re:Invent 2016: Add User Sign-In, User Management, and Security with Amazon Cognito (MBL310)

De esa manera, si 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 las claves secretas de acceso, pero utilizando sus claves de producción de pruebas y luego cambiar las claves crea un montón de trabajo, ya que es necesario actualizar cada lugar que hace referencia a las llaves 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.

Artículos Relacionados