Estoy jugando con el uso de servicios web de Amazon en mi proyecto personal. Agarré su AWS SDK para .NET y lo estoy usando, pero estoy un poco confundido.Mantener una clave secreta en secreto con Amazon Web Services
acceso al servicio web (en este caso, SimpleDB, aunque no creo que eso es muy importante a la pregunta) está autorizado a través de un par de claves pública/privada.
El AWS SDK para .NET API se utiliza para crear un objeto de cliente requiere la clave privada:
AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);
Esta es una aplicación cliente, por lo que el código se ejecuta por completo en el cliente.
sugiriendo que el cliente necesitaría tener acceso a mi clave privada para tener acceso al SimpleDB. Pero amazon reiteradamente y enfáticamente declara que mi clave privada no debe dejar mi control.
Esto no tiene sentido para mí, así que me parece que me falta algo.
¿Es una aplicación del lado del cliente el modelo incorrecto para los servicios web de Amazon en general, para usar su AWS SDK para .NET, o me falta algo que hace que una aplicación cliente sea perfectamente razonable? ¿Hay una buena manera de evitar esto sin crear un servicio de proxy propio que autentique a los clientes y envíe sus solicitudes al SimpleDB?
Agradezco la respuesta. Trabajo principalmente en un mundo de escritorio, por lo que la posibilidad de autenticar y proporcionar el url firmado y los encabezados nunca se me ocurrió. –
Si sigue esta ruta, ¿puede seguir utilizando la API de .NET? –
La respuesta a mi propia pregunta es "No": tiene que modificar el código para llamar a distancia AWSSDKUtils.HMACSign. –