Amazon segurança api serviços web

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 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 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, ea chave de acesso secreto é o mais longo dos dois. Quando você baixar a chave de acesso secreto, você deve armazená-lo em algum lugar muito seguro, pois é a chave (desculpe - trocadilho ruim) para implementar chamadas de serviço seguras.

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

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 ​​é conceitualmente simples, embora um tanto desafiador 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:

  1. 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 pretende lançar. (Você também vai anexar outras peças 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.)

  2. 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.



  3. 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 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.

  4. 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 o seu segredo chave de acesso, que ele usa para descriptografar a carga útil. Se a carga descriptografado 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 executar a chamada de serviço.

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 é baseado na informação de 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 você calcula para a carga útil. (UMA soma de verificação é um número que representa o conteúdo de uma mensagem.) AWS calcula um checksum para o payload- se seu checksum não concorda 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 se recusa a executar o serviço de chamada.

Video: Autenticação e segurança em APIs RESTful - Pablo Aguiar - DEVDAY 2013

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 secreto para o proxy. Quando o proxy executa chamadas de serviço da AWS em seu nome, que inclui a chave de acesso na chamada e use a chave de acesso secreto para executar a criptografia de carga útil.

Devido ao papel fundamental que essas chaves cumprir na AWS, você deve compartilhá-los 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.

Video: [AWS Webinars] Começando com aplicações serverless na 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 testes e, em seguida, alterando as chaves cria um monte de trabalho, porque você precisa atualizar 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.


Publicações relacionadas