Amazon Segurança API Web Services
Aqui está uma pergunta óbvia quando se lida com proxies de terceiros: Se essas ferramentas agir em seu nome, como é que a Amazon Web Services (AWS) sabe que a pessoa em nome de quem eles estão agindo é na verdade você? Em outras palavras, como pode AWS autenticar a sua identidade para garantir que os comandos que recebe são de você?
Na verdade, a mesma pergunta é válida mesmo se você interagir com a API AWS diretamente. Como pode AWS validar a sua identidade para garantir que ele executa os comandos apenas para você?
Uma maneira, é claro, é para você incluir seu nome de usuário ea senha da conta nas chamadas de API. Embora alguns provedores de nuvem tomar essa atitude, a Amazon não.
Em vez de confiar em um nome de usuário e senha, ele se baseia em dois outros identificadores para autenticar suas chamadas de serviço API: a chave de acesso ea chave de acesso secreto. Ele usa essas chaves em chamadas de serviço para implementar a segurança de uma maneira que é muito mais seguro do que usando apenas seu nome de usuário e senha.
Então, como isso funciona? Quando você se inscrever para uma conta com AWS, você tem a oportunidade de criar uma chave de acesso e ter uma chave de acesso secreto enviado a você. Cada um é uma cadeia longa de caracteres aleatórios, e a chave de acesso secreto é o mais longo dos dois. Quando você baixar a chave de acesso secreta, você deve armazená-lo em algum lugar muito seguro, pois é a chave (desculpe - trocadilho ruim) para implementar chamadas de serviço seguras.
Após fazer isso, você e Amazon tem uma cópia da chave de acesso ea chave de acesso secreto. Reter uma cópia da chave de acesso secreto é crucial porque ele é usado para criptografar as informações enviadas e para trás entre você e AWS, e se você não tem o segredo chave de acesso, você não pode executar todas as chamadas de serviço no AWS.
A forma como as duas chaves são usados é conceptualmente simples, embora um pouco difícil em detalhe.
Essencialmente, para cada chamada de serviço que você quer realizar, você (ou uma ferramenta de operar em seu nome) faça o seguinte:
Criar a carga chamada de serviço.
Estes são os dados que você precisa para enviar a AWS. Pode ser um objeto que você deseja armazenar na S3 ou o identificador de imagem de uma imagem que você deseja iniciar. (Você também vai anexar outros pedaços de informação para a carga útil, mas porque eles variam de acordo com as especificidades da chamada de serviço, eles não estão listadas aqui. Uma parte dos dados é o momento atual.)
Criptografar a carga usando a chave de acesso secreto.
Isso garante que ninguém pode examinar a carga útil e descobrir o que está nele.
assinar digitalmente a carga criptografada, adicionando a chave de acesso secreto para a carga criptografada e realizando um processo de assinatura digital usando a chave de acesso secreto.
teclas de acesso secretos são mais longos e mais aleatória do que o usuário típico passwords- a chave de acesso secreto longa faz a criptografia realizada com-lo mais seguro do que seria se fosse realizada com uma senha de usuário típico.
Enviar a carga total de criptografado, juntamente com sua chave de acesso, a AWS através de uma chamada de serviço.
Amazon usa a chave de acesso para procurar a chave secreta de acesso, que ele usa para descriptografar a carga útil. Se o descodificada carga representa texto legível que pode ser executado, AWS executa o serviço de chamada. Caso contrário, ele conclui que algo está errado com o serviço de chamada (talvez que ele foi chamado por um ator malévolo) e não executa o serviço de chamada.
Além da criptografia que acabamos de descrever, a AWS tem dois outros métodos que utiliza para garantir a legitimidade da chamada de serviço:
O primeiro baseia-se na informação da data incluído com a carga útil chamada de serviço, que ele usa para determinar se o tempo associado com a realização da chamada de serviço é appropriate- se a data na chamada de serviço é muito diferente do que deveria ser ( muito mais cedo ou mais tarde do que o tempo atual, em outras palavras), a AWS conclui que não é uma chamada de serviço legítimo e descarta.
A segunda medida de segurança adicional envolve uma soma de verificação é calculada para a carga útil. (UMA soma de verificação é um número que representa o conteúdo de uma mensagem.) AWS calcula uma soma de verificação para o payload- se a sua soma de verificação não está de acordo com o seu, que não permite a chamada de serviço e não executá-lo.
Esta abordagem soma de verificação garante que ninguém mexe com o conteúdo de uma mensagem e impede que um ator malévolo de interceptar uma chamada de serviço legítimo e alterá-lo para executar uma ação inaceitável. Se alguém mexe com a mensagem, quando AWS calcula uma soma de verificação, que soma já não corresponde o incluído na mensagem, e AWS recusa-se a executar a chamada de serviço.
Se, como a maioria dos usuários da AWS, você usa um método de proxy para interagir com AWS - o AWS Management Console, uma biblioteca de linguagem, ou uma ferramenta de terceiros - você precisa fornecer a chave de acesso e chave de acesso secreta para o proxy. Quando o proxy executa as chamadas de serviço da AWS em seu nome, que inclui a chave de acesso na chamada e usar a chave de acesso secreto para executar a criptografia de carga útil.
Devido ao papel fundamental que estas chaves cumprir na AWS, você deve compartilhá-los só com entidades que você confia. Se você quiser experimentar uma nova ferramenta de terceiros e você não sabe muito sobre a empresa, configurar uma conta de teste AWS para o julgamento em vez de usar a sua produção de credenciais da conta da AWS.
Dessa forma, se você decidir não ir para a frente com a ferramenta, você pode soltá-lo, encerrar a conta AWS teste, e seguir em frente, sem se preocupar com possíveis vulnerabilidades de segurança em suas principais contas de produção. Claro, você sempre pode criar novas chaves de acesso e chaves de acesso secretos, mas usando as teclas de produção para os testes e, em seguida, alterando as chaves cria um monte de trabalho, porque você precisa atualizar a cada lugar que faz referência a suas chaves existentes.
Se você é como muitos outros usuários da AWS, você vai usar uma série de ferramentas e bibliotecas, e indo de volta para eles para atualizar suas chaves é uma dor. Você é melhor fora de usar contas de não-produção para testar novas ferramentas.