Métodos de autenticação
Importante
A menos que você esteja usando AWS SDKs ou a CLI, é necessário escrever código para calcular assinaturas que forneçam informações de autenticação em suas solicitações. O cálculo da assinatura no AWS Signature Versão 4 pode ser uma tarefa complexa, então é recomendável usar os AWS SDKs ou a CLI sempre que possível.
É possível expressar informações de autenticação usando um dos métodos a seguir.
Cabeçalho HTTP de autorização
O cabeçalho HTTP Authorization
é o método mais usado para autenticar uma solicitação. Todas as operações da API REST (exceto para carregamentos baseados em navegador que usam solicitações POST
) requerem esse cabeçalho. Para obter mais informações sobre o valor do cabeçalho de autorização, como calcular a assinatura e opções relacionadas, consulte a página Authenticating Requests: Using the Authorization Header (AWS Signature Version 4) na Referência de APIs do Amazon S3.
Veja a seguir um exemplo de um valor de cabeçalho Authorization
. As quebras de linha foram adicionadas a este exemplo somente para facilitar a leitura. Em seu código, o cabeçalho deve ser uma string contínua. Não use vírgula entre o algoritmo e a credencial, mas os outros elementos devem ser separados por vírgulas.
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, SignedHeaders=host;range;x-amz-date, Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
A tabela a seguir descreve os vários componentes do valor do cabeçalho de autorização do exemplo anterior:
Componente | Descrição |
---|---|
Autorização |
O algoritmo que foi usado para calcular a assinatura. É necessário informar esse valor ao usar o AWS Signature Version 4 para autenticação. A string especifica o AWS Signature Version 4 ( |
Credential |
Seu ID de chave de acesso e as informações do escopo, como a data, a região e o serviço que foram usados para calcular a assinatura. Essa string tem a seguinte forma:
Em que: o valor da |
SignedHeaders |
Uma lista separada por ponto e vírgula dos cabeçalhos de solicitação usados para computar a |
Assinatura |
A assinatura de 256 bits expressa como 64 caracteres hexadecimais minúsculos. Por exemplo: Os cálculos da assinatura variam de acordo com a opção escolhida para transferência de carga útil. |
Parâmetros de string de consulta
É possível usar uma string de consulta para expressar uma solicitação completa em um só URL. Nesse caso, utilize parâmetros de consulta para fornecer informações de solicitação, inclusive as informações de autenticação. Como a solicitação de assinatura faz parte do URL, esse tipo de URL muitas vezes é chamado de URL pré-assinado. É possível usar URLs pré-assinados para incorporar links clicáveis em HTML, que podem ser válidos por até sete dias. Para obter mais informações, consulte Authenticating Requests: Using Query Parameters (AWS Signature Version 4) na Referência de APIs do Amazon S3.
O exemplo a seguir é um URL pré-assinado. As quebras de linha foram adicionadas a este exemplo somente para facilitar a leitura:
https://s3.amazonaws.com/amzn-s3-demo-bucket/test.txt ? X-Amz-Algorithm=AWS4-HMAC-SHA256 & X-Amz-Credential=<your-access-key-id>/20130721/us-east-1/s3/aws4_request & X-Amz-Date=20130721T201207Z & X-Amz-Expires=86400 & X-Amz-SignedHeaders=host &X-Amz-Signature=<signature-value>
nota
O valor de X-Amz-Credential
no URL exibe o caractere “/” somente para facilitar a leitura. Na prática, deve ser codificado como %2F. Por exemplo:
&X-Amz-Credential=<your-access-key-id>%2F20130721%2Fus-east-1%2Fs3%2Faws4_request
A tabela a seguir descreve os parâmetros de consulta no URL que fornecem informações de autenticação.
Nome de parâmetro de string de consulta | Descrição |
---|---|
X-Amz-Algorithm |
Identifica a versão do AWS Signature e o algoritmo usado para calcular a assinatura. No AWS Signature Version 4, defina esse valor de parâmetro como |
X-Amz-Credential |
Além do ID da chave de acesso, esse parâmetro também fornece o escopo (região e serviço da AWS) para os quais a assinatura é válida. O valor deve corresponder ao escopo usado nos cálculos de assinatura, abordados na seção a seguir. A forma geral para esse valor de parâmetro é:
Por exemplo: Para obter uma lista de strings regionais da AWS, consulte Regional Endpoints na Referência geral da AWS. |
X-Amz-Date |
O formato de data e hora deve seguir o padrão ISO 8601 e deve ter a formatação |
X-Amz-Expires |
Fornece o período, em segundos, de validade do URL pré-assinado gerado. Por exemplo, 86400 (24 horas). Esse valor é um inteiro. O valor mínimo que você pode definir é 1 e o máximo é 604800 (sete dias). O URL pré-assinado pode ser válido por no máximo sete dias, pois a chave de assinatura usada no cálculo da assinatura é válida por até sete dias. |
X-Amz-SignedHeaders |
Lista os cabeçalhos usados para calcular a assinatura. Os seguintes cabeçalhos são obrigatórios para os cálculos da assinatura:
Para maior segurança, é necessário assinar todos os cabeçalhos de solicitação que pretende incluir na solicitação. |
X-Amz-Signature |
Fornece a assinatura para autenticar a solicitação. Essa assinatura deve corresponder à assinatura calculada pelo serviço; caso contrário, o serviço negará a solicitação. Por exemplo, Os cálculos de assinatura serão descritos na seção a seguir. |
X-Amz-Security-Token |
Parâmetro de credencial opcional ao usar credenciais provenientes do serviço STS. |