Mantendo uma chave secreta em segredo com o Amazon Web Services

Estou brincando de usar os serviços da web da amazon em meu projeto pessoal. Peguei o AWS SDK for .NET e estou usando isso, mas estou um pouco confuso.

O acesso ao serviço da Web (neste caso, o SimpleDB, embora eu não ache realmente relevante para a pergunta) é autorizado por meio de um par de chaves públicas / privadas.

A API do AWS SDK para .NET usada para criar um objeto de cliente requer a chave privada:

AWSClientFactory.CreateAmazonSimpleDBClient(publicKey, privateKey);

Este é um aplicativo cliente, portanto, o código estaria sendo executado inteiramente no cliente.

Sugerindo que o cliente precisaria ter acesso à minha chave privada para ter acesso ao SimpleDB. Mas a Amazon afirma repetidamente e enfaticamente que minha chave privada não deve deixar meu controle.

Isso não faz sentido para mim, então acho que devo estar perdendo alguma coisa.

Um aplicativo do lado do cliente é o modelo errado para os serviços da web da amazon em geral, para usar o AWS SDK for .NET, ou estou faltando algo que torne o aplicativo do cliente perfeitamente razoável? Existe uma boa maneira de contornar isso sem criar um serviço de proxy próprio que autentique os clientes e encaminhe suas solicitações ao SimpleDB?

questionAnswers(1)

yourAnswerToTheQuestion