Todos os produtos
Search
Central de documentação

Cloud Monitor:O Cloud Monitor é compatível com o algoritmo de assinatura HMAC-SHA1? Como posso utilizá-lo?

Última atualização: Jun 26, 2026

Sim, o Cloud Monitor é compatível com o algoritmo de assinatura HMAC-SHA1. Esse é o único algoritmo de assinatura que o Cloud Monitor suporta. Para usar o algoritmo de assinatura HMAC-SHA1, execute as etapas descritas neste tópico.

Procedimento

  1. Prepare um par de AccessKey do Alibaba Cloud.

    Para gerar uma assinatura para uma solicitação HTTP, você precisa de um par de AccessKey ID e AccessKey Secret.

    Nota

    Você pode usar um par de AccessKey existente ou criar um. O par de AccessKey precisa estar ativo.

  2. Gere uma string de assinatura para uma solicitação HTTP.

    A string de assinatura de uma solicitação HTTP é gerada com base nos campos Method, Header e Body da solicitação HTTP.

    SignString = VERB + "\n"
                 + CONTENT-MD5 + "\n"
                 + CONTENT-TYPE + "\n"
                 + DATE + "\n"
                 + CanonicalizedHeaders + "\n"
                 + CanonicalizedResource

    Na fórmula anterior, \n indica o caractere de nova linha com escape, e o sinal de adição (+) indica o operador de concatenação de strings. A tabela a seguir descreve as definições dos demais campos.

    Parâmetro

    Descrição

    Exemplo

    VERB

    O método HTTP usado para fazer a solicitação.

    PUT, GET ou POST

    CONTENT-MD5

    O valor MD5 do campo Body na solicitação HTTP.

    Nota

    O valor MD5 deve ser uma string composta de letras maiúsculas e dígitos.

    0B9BE351E56C90FED853B32524253E8B

    CONTENT-TYPE

    O tipo do corpo da solicitação HTTP.

    application/json

    DATE

    O cabeçalho de timestamp padrão da solicitação HTTP.

    Nota

    Esse cabeçalho de timestamp segue o formato de hora RFC 1123 e usa o horário padrão GMT.

    Mon, 3 Jan 2010 08:33:47 GMT

    CanonicalizedHeaders

    A string construída a partir dos cabeçalhos personalizados com prefixo x-cms e x-acs na solicitação HTTP.

    • x-cms-api-version:0.1.0

    • x-cms-signature

    CanonicalizedResource

    A string construída a partir dos recursos solicitados pela solicitação HTTP.

    /event/custom/upload

    As strings CanonicalizedHeaders e CanonicalizedResource na tabela anterior são construídas de acordo com as seguintes regras:

    • CanonicalizedHeaders

      1. Converta para letras minúsculas os nomes de todos os cabeçalhos com prefixo x-cms e x-acs.

      2. Classifique em ordem lexicográfica os cabeçalhos com nomes convertidos gerados na etapa anterior.

      3. Remova todos os espaços em cada lado do delimitador entre cada cabeçalho e valor.

      4. Separe todos os cabeçalhos anteriores com delimitadores (\n) para formar a string CanonicalizedHeaders final.

    • CanonicalizedResource

      1. Defina a string CanonicalizedResource como uma string vazia ("").

      2. Coloque o URI que você deseja acessar, como /event/custom/upload, entre as aspas.

      3. Se a solicitação contiver uma string de consulta, adicione um ponto de interrogação (?) e a string de consulta ao final da string CanonicalizedResource.

        A string de classificação é a string dos parâmetros de solicitação incluídos no URI, ordenada lexicograficamente. Sinais de igual (=) são usados entre os nomes e valores dos parâmetros para formar uma string. Os pares nome-valor dos parâmetros são então ordenados em ordem lexicográfica e conectados com e comercial (&) para formar uma string. A seguinte fórmula é usada para construir a string de consulta:

        QUERY_STRING = "KEY1=VALUE1" + "&" + "KEY2=VALUE2"
  3. Gere uma assinatura digital para a solicitação HTTP.

    Fórmula para gerar uma assinatura digital:

    Signature=base16(hmac-sha1(UTF8-Encoding-Of(SignString),AccessKeySecret))

    Exemplo de string de assinatura de uma solicitação HTTP:

    SignString="POST" + "\n"
    +"0B9BE351E56C90FED853B32524253E8B" + "\n"
    +"application/json" + "\n"
    +"Tue, 11 Dec 2018 21:05:51 +0800" + "\n"
    +"x-cms-api-version:1.0" + "\n"
    +"x-cms-ip:127.0.0.1" + "\n"
    +"x-cms-signature:hmac-sha1" + "\n"
    +"/metric/custom/upload"
    accesskey="testkey"
    accessSecret="testsecret" // The AccessKey secret used to sign the HTTP request. 

    Assinatura gerada com base na string de assinatura anterior:

    1DC19ED63F755ACDE203614C8A1157EB1097E922