All Products
Search
Document Center

Cloud Monitor:Apakah CloudMonitor mendukung algoritma tanda tangan HMAC-SHA1 dan bagaimana cara menggunakannya?

Last Updated:Jun 26, 2025

Ya, CloudMonitor mendukung algoritma tanda tangan HMAC-SHA1. Ini adalah satu-satunya algoritma tanda tangan yang didukung oleh CloudMonitor. Untuk menggunakan algoritma ini, ikuti langkah-langkah berikut.

Prosedur

  1. Siapkan sepasang AccessKey Alibaba Cloud.
    Sepasang ID AccessKey dan Rahasia AccessKey diperlukan untuk menghasilkan tanda tangan permintaan HTTP.
    Catatan Anda dapat menggunakan pasangan AccessKey yang ada atau membuat yang baru. Pastikan pasangan AccessKey dalam keadaan aktif.
  2. Hasilkan string tanda tangan untuk permintaan HTTP.
    String tanda tangan permintaan HTTP dihasilkan berdasarkan bidang Metode, Header, dan Body dari permintaan HTTP.
    SignString = VERB + "\n"
                 + CONTENT-MD5 + "\n"
                 + CONTENT-TYPE + "\n"
                 + DATE + "\n"
                 + CanonicalizedHeaders + "\n"
                 + CanonicalizedResource
    Dalam rumus sebelumnya, \n menunjukkan karakter newline yang lolos, dan tanda tambah (+) menunjukkan operator penggabungan string. Tabel berikut menjelaskan definisi dari bidang lainnya.
    ParameterDeskripsiContoh
    VERBMetode HTTP yang digunakan untuk membuat permintaan. PUT, GET, atau POST
    CONTENT-MD5Nilai MD5 dari bidang Body dalam permintaan HTTP.
    Catatan Nilai MD5 harus berupa string yang terdiri dari huruf besar dan digit.
    0B9BE351E56C90FED853B32524253E8B
    CONTENT-TYPEJenis badan permintaan HTTP. application/json
    DATEHeader timestamp standar dari permintaan HTTP.
    Catatan Header timestamp ini mengikuti format waktu RFC 1123 dan menggunakan standar waktu GMT.
    Mon, 3 Jan 2010 08:33:47 GMT
    CanonicalizedHeadersString yang dibuat dari header khusus yang diawali dengan x-cms dan x-acs dalam permintaan HTTP.
    • x-cms-api-version:0.1.0
    • x-cms-signature
    CanonicalizedResourceString yang dibuat dari sumber daya yang diminta oleh permintaan HTTP. /event/custom/upload

    String CanonicalizedHeaders dan CanonicalizedResource pada tabel sebelumnya dibuat berdasarkan aturan berikut:

    • CanonicalizedHeaders
      1. Konversikan nama semua header yang diawali dengan x-cms dan x-acs menjadi huruf kecil.
      2. Urutkan header yang telah dikonversi secara leksikografis.
      3. Hapus semua spasi di setiap sisi pemisah antara setiap header dan nilai.
      4. Pisahkan semua header sebelumnya dengan pemisah (\n) untuk membentuk string CanonicalizedHeaders akhir.
    • CanonicalizedResource
      1. Tetapkan string CanonicalizedResource sebagai string kosong ("").
      2. Tempatkan URI yang ingin Anda akses, seperti /event/custom/upload, di antara tanda kutip.
      3. Jika permintaan berisi string query, tambahkan tanda tanya (?) dan string query ke akhir string CanonicalizedResource.

        String sortir adalah string yang diurutkan secara leksikografis dari parameter permintaan yang termasuk dalam URI. Tanda sama dengan (=) digunakan antara nama dan nilai parameter untuk membentuk string. Pasangan nama parameter-nilai kemudian diurutkan secara leksikografis dan dihubungkan dengan ampersand (&) untuk membentuk string. Rumus berikut digunakan untuk membangun string query:

        QUERY_STRING = "KEY1=VALUE1" + "&" + "KEY2=VALUE2"
  3. Hasilkan tanda tangan digital untuk permintaan HTTP.
    Rumus untuk menghasilkan tanda tangan digital:
    Signature=base16(hmac-sha1(UTF8-Encoding-Of(SignString),AccessKeySecret))
    Contoh string tanda tangan dari permintaan 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" // Rahasia AccessKey yang digunakan untuk menandatangani permintaan HTTP. 
    Tanda tangan yang dihasilkan berdasarkan string tanda tangan sebelumnya:
    1DC19ED63F755ACDE203614C8A1157EB1097E922