View a markdown version of this page

Autenticação de solicitações: uploads baseados no navegador usando POST (AWS Signature Version 2) - Amazon Simple Storage Service

Autenticação de solicitações: uploads baseados no navegador usando POST (AWS Signature Version 2)

O Amazon S3 é compatível com solicitações HTTP POST para que os usuários possam fazer upload de conteúdo diretamente no Amazon S3. Usar HTTP POST para upload de conteúdo simplifica os uploads e reduz a latência do upload em que os usuários carregam dados para armazenar no Amazon S3. Esta seção descreve como autenticar solicitações HTTP POST. Para obter mais informações sobre solicitações HTTP POST, como criar um formulário, criar uma política de POST e um exemplo, consulte Uploads baseados no navegador usando POST (AWS Signature Version 4).

Para autenticar uma solicitação HTTP POST, faça o seguinte:

  1. O formulário deve incluir os seguintes campos para fornecer a assinatura e as informações relevantes que o Amazon S3 pode usar para recalcular a assinatura ao receber a solicitação:

    Nome do elemento Descrição
    policy

    Política de segurança com codificação Base64 que descreve o que é permitido na solicitação. Para o cálculo da assinatura, essa política é a string que você assina. O Amazon S3 deve obter essa política para poder recalcular a assinatura.

    x-amz-algorithm

    O algoritmo de assinatura usado. Para AWS Signature Version 4, o valor é AWS4-HMAC-SHA256.

    x-amz-credential

    Além do ID da chave de acesso, isso fornece as informações do escopo que você usou para calcular a chave para o cálculo da assinatura.

    É uma string da seguinte forma:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    Por exemplo:

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    Para o Amazon S3, a string aws-service é s3. Para conferir a lista de strings aws-region do Amazon S3, consulte Regiões e endpoints na Referência geral da AWS.

    x-amz-date

    É o valor de data no formato ISO8601. Por exemplo, 20130728T000000Z.

    É a mesma data que você usou para criar a chave de assinatura. Também deve ser o mesmo valor fornecido na política (x-amz-date) que você assinou.

    x-amz-signature

    (AWS Signature Version 4) O hash HMAC-SHA256 da política de segurança.

    Para obter mais informações sobre opções de assinatura, consulte Adicionar a assinatura à solicitação HTTP na Referência geral da AWS.

  2. A política de POST deve incluir os seguintes elementos:

    Nome do elemento Descrição
    x-amz-algorithm

    O algoritmo que você usou para calcular a assinatura. Para AWS Signature Version 4, o valor é AWS4-HMAC-SHA256.

    x-amz-credential

    Além do ID da chave de acesso, isso fornece as informações do escopo que você usou para calcular a chave para o cálculo da assinatura.

    É uma string da seguinte forma:

    <your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request

    Por exemplo,

    AKIAIOSFODNN7EXAMPLE/20130728/us-east-1/s3/aws4_request. .

    x-amz-date

    O valor de data especificado na string com formato ISO8601. Por exemplo, “20130728T000000Z”. A data deve ser a mesma usada na criação da chave de assinatura para o cálculo da assinatura.

  3. Para o cálculo da assinatura, a política de POST é a string a ser assinada.

Cálculo de uma assinatura

O diagrama a seguir ilustra o processo de cálculo da assinatura.

Processo de cálculo de assinatura da AWS com as etapas StringToSign, SigningKey e Signature.

Para calcular uma assinatura
  1. Crie uma política usando a codificação UTF-8.

  2. Converta a política com codificação UTF-8 em Base64. O resultado é a string a ser assinada.

  3. Crie a assinatura como um hash HMAC-SHA256 da string a ser assinada. Você fornecerá a chave de assinatura como chave para a função hash.

  4. Codifique a assinatura usando a codificação hexadecimal.

Para obter mais informações sobre a criação de formulários HTML, políticas de segurança e um exemplo, consulte estes subtópicos: