Topik ini menjelaskan cara menggunakan Kunci API untuk menghasilkan tautan Dasbor Grafana yang dapat dibagikan dan diakses tanpa masuk ke Grafana.
Informasi latar belakang
Untuk mengakses Dasbor Grafana tanpa autentikasi, Anda dapat menggunakan snapshots atau mode anonim.
Snapshots menangkap data pada titik waktu tertentu saat pembuatan, mencegah pembaruan data berikutnya dari waktu ke waktu.
Mode anonim memerlukan daftar putih IP untuk mengurangi risiko keamanan.
Namun, Managed Service for Grafana mendukung penghasilan tautan dasbor yang dapat dibagikan melalui Kunci API (atau token akun layanan di Grafana V10.0.x dan seterusnya). Tautan ini memungkinkan pengguna lain untuk melihat dasbor tanpa masuk, karena autentikasi ditangani oleh kunci/token.
Langkah 1: Konfigurasikan parameter Grafana
Masuk ke Konsol ARMS. Di panel navigasi sisi kiri, pilih .
Di halaman Workspace Management, klik ID workspace yang ingin Anda kelola.
Di panel navigasi sisi kiri, klik Parameter Settings.
Di daftar parameter sisi kiri, pilih aliyun, lalu klik Modify Parameters.
Atur parameter api_key_share menjadi true dan klik Save and Apply.
Opsional. Jika Anda ingin menyematkan tautan dasbor ke halaman web menggunakan tag <iframe>, ubah parameter terkait sesuai dengan skenario Anda.
Penyematan lintas domain ketika tautan dan halaman web berada di nama domain yang berbeda:
Konfigurasikan tautan sebagai URL HTTPS dan ubah tiga parameter berikut dalam security:
allow_embedding=true cookie_samesite=none cookie_secure=true
Penyematan domain yang sama ketika tautan dan halaman web berbagi nama domain yang sama:
Ubah nilai parameter allow_embedding dalam security menjadi true untuk mengaktifkan penyematan dengan tag <iframe>.
Untuk menggunakan tag <iframe> untuk penyematan ke instance Grafana lain, ubah nilai parameter
panelsuntuk instance tersebut:enable_alpha = true disable_sanitize_html = true
Langkah 2: Buat Kunci API
Proses pembuatan Kunci API berbeda antara Grafana 9.0.x dan 10.0.x. Pastikan untuk memverifikasi versi Grafana Anda sebelum melanjutkan.
Setelah peningkatan dari versi 9.0.x ke 10.0.x:
Kunci API yang ada dari Grafana 9.0.x tetap terlihat di halaman api keys.
Klik migrate to service account untuk memigrasi Kunci API ke akun layanan Anda.
Halaman api keys disembunyikan, tetapi kunci lama tetap berfungsi setelah migrasi selesai.
Grafana 9.0.x
Masuk ke Konsol ARMS. Di panel navigasi sisi kiri, pilih .
Di halaman Workspace Management, temukan workspace yang ingin Anda kelola dan klik URL di kolom URL untuk pergi ke Grafana.
CatatanAnda dapat masuk ke Grafana dengan akun administrator Grafana dan kata sandi yang Anda konfigurasikan saat membuat workspace. Anda juga dapat mengklik Sign in with Alibaba Cloud untuk masuk ke Grafana dengan akun Alibaba Cloud saat ini.
Klik ikon
di sudut kiri atas halaman utama Grafana.Di panel navigasi sisi kiri antarmuka Grafana, pilih .
CatatanIzin admin diperlukan untuk mengakses halaman Kunci API.
Klik New API key atau Add API key, lalu konfigurasikan parameter berikut.
Parameter
Deskripsi
Key name
Nama Kunci API. Nama tidak boleh sama dengan Kunci API yang sudah ada.
Role
Pilih Viewer.
Time to live
Masa berlaku Kunci API. Contoh: 60s (60 detik), 10m (10 menit), dan 1d (satu hari).
Klik Add. Pada kotak dialog yang muncul, peroleh dan simpan nilai API key.
PentingSetelah kotak dialog ditutup, Anda tidak dapat melihat nilai Kunci API lagi.

Grafana 10.0.x
Masuk ke Konsol ARMS. Di panel navigasi sisi kiri, pilih .
Di halaman Workspace Management, temukan workspace yang ingin Anda kelola dan klik URL di kolom URL untuk pergi ke Grafana.
CatatanAnda dapat masuk ke Grafana dengan akun administrator Grafana dan kata sandi yang Anda konfigurasikan saat membuat workspace. Anda juga dapat mengklik Sign in with Alibaba Cloud untuk masuk ke Grafana dengan akun Alibaba Cloud saat ini.
Klik ikon
di sudut kiri atas halaman utama Grafana.Di panel navigasi sisi kiri, pilih .
PentingIzin admin diperlukan untuk mengakses halaman Akun Layanan.
Pembuatan akun layanan menggunakan salah satu slot akun pengguna yang tersedia.
Klik Add service account token, konfigurasikan parameter berikut, lalu klik Create.
Parameter
Deskripsi
Display name
Nama akun layanan. Nama tidak boleh sama dengan akun layanan yang sudah ada.
Role
Pilih Viewer.
Klik Add service account token dan konfigurasikan parameter berikut.
Parameter
Deskripsi
Display name
Nama Kunci API. Nama tidak boleh sama dengan Kunci API yang sudah ada.
Expiration
Masa berlaku Kunci API. Nilai valid:
No Expiration
Set Expiration date
Expiration date
Jika Anda mengatur Expiration ke Set Expiration date, Anda perlu mengatur tanggal kedaluwarsa masa berlaku.
Klik Generate token. Di kotak dialog yang muncul, klik Copy to clipboard and close.
Setelah kotak dialog ditutup, Anda tidak dapat melihat nilai Kunci API lagi.
Langkah 3: Hasilkan tautan dasbor yang dapat dibagikan
Grafana 9.0.x
Di antarmuka Grafana, buka halaman dasbor yang ingin Anda bagikan.
Klik ikon
. Di kotak dialog yang muncul, klik tab Link. Di tab Link, peroleh tautan yang dapat dibagikan dari dasbor.
Tambahkan
&aliyun_api_key=<nilai Kunci API>di akhir tautan.<nilai Kunci API>menunjukkan token akun layanan yang Anda peroleh di Langkah 2.https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key=eyJr****WkIwNnN2c0RTSD******Gunakan tautan yang dapat dibagikan yang berisi token akun layanan untuk mengakses dasbor tanpa masuk ke Grafana.
Grafana 10.0.x
Di antarmuka Grafana, buka halaman dasbor yang ingin Anda bagikan.
Klik ikon
. Di kotak dialog yang muncul, klik tab Link. Di tab Link, peroleh tautan yang dapat dibagikan dari dasbor.Tambahkan
&aliyun_api_key=<nilai Kunci API>di akhir tautan. Nilai<nilai Kunci API>merupakan token akun layanan yang diperoleh pada Langkah 2.https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key=eyJrIjoiWkIwNnN2c0RTSD******Gunakan tautan yang dapat dibagikan, yang mencakup token akun layanan, untuk mengakses dasbor tanpa harus masuk ke Grafana.
(Opsional) Langkah 4: Hasilkan tautan yang dapat dibagikan dengan keamanan tinggi
Untuk menghindari risiko keamanan data akibat kebocoran Kunci API, Anda harus secara berkala mengubah Kunci API dari tautan bersama yang dihasilkan di Langkah 3: Hasilkan tautan dasbor yang dapat dibagikan. Langkah ini menjelaskan cara menghasilkan tautan bersama dengan keamanan tinggi dalam skenario penggunaan Kunci API dan token akun layanan.
Pertama, ubah parameter waktu proses dari api_key_share_version menjadi v2.
Masuk ke Konsol ARMS. Di panel navigasi sisi kiri, pilih .
Di halaman Manajemen Workspace, klik ID workspace. Di panel navigasi sisi kiri halaman yang muncul, klik Parameter Settings.
Atur parameter api_key_share_version menjadi v2 dan klik Save and Apply.

Kunci API (Grafana 9.0.x)
Dekripsi Kunci API yang diperoleh di Langkah 2: Buat Kunci API dalam Base64.
Base64 adalah metode pengkodean umum yang digunakan di web untuk mentransmisikan kode byte 8-bit byte codes. Ini adalah teknik yang merepresentasikan data biner menggunakan 64 karakter yang dapat dicetak.
Gunakan alat online umum untuk dekripsi, seperti base64.
Dekripsi Kunci API dalam Java.
package main import java.util.Base64; public class Base64Example{ public static void main(String[] args) { String apiKey = "eyJr****REpzZGYzd2JIa0N3ekgyWjlWWmhrSTM5bWdGT2hGSmwiLCJuIjoidGVzdDEiLCJpZCI6MX0="; String decodeKey = new String(Base64.getDecoder().decode(apiKey)); System.out.println(decodeKey); } }Output:
{"k":"DJsd****HkCwzH2Z9VZhkI39mgFOhFJl","n":"test1","id":1}Dekripsi Kunci API dalam Go.
package main import "fmt" import "encoding/base64" func main() { apiKey := "eyJr****REpzZGYzd2JIa0N3ekgyWjlWWmhrSTM5bWdGT2hGSmwiLCJuIjoidGVzdDEiLCJpZCI6MX0=" decodeKey, err := base64.StdEncoding.DecodeString(apiKey) if err != nil { fmt.Println(err.Error()) return } fmt.Println(string(decodeKey)) }Output:
{"k":"DJsd****HkCwzH2Z9VZhkI39mgFOhFJl","n":"test1","id":1}
Enkripsi nilai Kunci API yang didekripsi di atas menggunakan PBKDF2.
Password-Based Key Derivation Function 2 (PBKDF2) adalah fungsi derivasi kunci berbasis kata sandi yang digunakan untuk secara aman menurunkan kunci enkripsi dari kata sandi yang diberikan pengguna bersama dengan beberapa parameter tambahan seperti garam dan jumlah iterasi. Ini terutama digunakan dalam skenario di mana kata sandi pengguna perlu disimpan, bertujuan untuk memastikan bahwa bahkan jika database diretas, penyerang akan sulit mendapatkan kata sandi teks biasa pengguna atau dengan mudah memecahkan kunci yang diturunkan.
Berbagai metode enkripsi tersedia. Tabel berikut menjelaskan parameter enkripsi.
Parameter
Deskripsi
salt
Masukkan nama Kunci API (yaitu, nilai n yang didekripsi di atas). Dalam contoh ini, atur nilainya menjadi test1.
iterasi
Atur nilainya menjadi 10000.
panjang keluaran
Atur nilainya menjadi 50.
ukuran kunci
Atur nilainya menjadi 256.
tipe keluaran
Atur nilainya menjadi Hex.
Gunakan alat online umum untuk enkripsi, seperti df2.
Turunkan kunci dalam Java.
package main import javax.crypto.SecretKeyFactory; import java.security.GeneralSecurityException; import javax.crypto.spec.PBEKeySpec; import java.security.spec.KeySpec; public class PBKDFExapmle { public static void main(String[] args) { String password = "DJsd****HkCwzH2Z9VZhkI39mgFOhFJl"; String salt = "test1"; int iterationCount = 10000; int outputLength = 50 * 8; try { KeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), iterationCount, outputLength); SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); byte[] keyBytes = skf.generateSecret(spec).getEncoded(); System.out.println(bytesToHex(keyBytes)); } catch (GeneralSecurityException e) { e.printStackTrace(); } } private static String bytesToHex(byte[] bytes) { StringBuilder hexString = new StringBuilder(); for (byte b : bytes) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } return hexString.toString(); } }Output: Kata Sandi PBKDF2
1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****Turunkan kunci dalam Go.
package main import "fmt" import "encoding/hex" import "crypto/sha256" import "golang.org/x/crypto/pbkdf2" func main() { password:="DJsd****HkCwzH2Z9VZhkI39mgFOhFJl" salt="test1" newPasswd := pbkdf2.Key([]byte(password), []byte(salt), 10000, 50, sha256.New) encodePassword:= hex.EncodeToString(newPasswd) fmt.Println(encodePassword) }Output: Kata Sandi PBKDF2
1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****
Konstruksi parameter tanda tangan digest MD5 berdasarkan informasi yang dienkripsi menggunakan PBKDF2.
Algoritma MD5 Message-Digest adalah fungsi hash kriptografi yang banyak digunakan dan menghasilkan nilai hash 128-bit (16-byte), yang dirancang untuk memastikan integritas dan konsistensi informasi yang ditransmisikan.
Konten yang akan dienkripsi terdiri dari: <Kata Sandi PBKDF2> + "_" + <waktu sistem saat ini dalam detik sebagai bilangan bulat>.
Contoh:
Jika Kata Sandi PBKDF2 adalah: 1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****
Dan waktu sistem saat ini adalah: 2024-09-20 17:12:13, maka waktu tepat dalam detik sejak epoch adalah: 1726823533
Oleh karena itu, informasi lengkap untuk menghasilkan tanda tangan MD5 adalah: 1e5b****80184 e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****_1726823533.
Metode untuk menghasilkan tanda tangan MD5:
Gunakan alat online umum untuk enkripsi, seperti MD5.
Implementasikan hashing MD5 dalam Java.
package main; import java.security.MessageDigest; public class MD5 { public static void main(String[] args) { String pbkdfPassword = "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****"; long timeSeconds=System.currentTimeMillis()/1000; String key=pbkdfPassword+"_"+timeSeconds; System.out.println(MD5.getMD5String(key,"UTF-8")); } public static String getMD5String(String str, String charset) { try { MessageDigest messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes(charset)); byte[] byteArray = messageDigest.digest(); StringBuffer md5StrBuff = new StringBuffer(); for (int i = 0; i < byteArray.length; i++) { if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) { md5StrBuff.append("0").append( Integer.toHexString(0xFF & byteArray[i])); } else { md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); } } return md5StrBuff.toString().toLowerCase(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("MD5 error:"+e.getMessage()); } } }Implementasikan hashing MD5 dalam Go.
package main import ( "crypto/md5" "encoding/hex" "fmt" "io" "time" "strconv" ) func main() { // String yang perlu di-hash dengan MD5. pbkdfPassword := "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****" timeSeconds:= time.Now().Unix() key:=pbkdfPassword+"_"+strconv.FormatInt(timeSeconds, 10) // Hitung hash MD5 dari string menggunakan paket md5. hash := md5.New() io.WriteString(hash, key) md5Str := hash.Sum(nil) // Konversi nilai MD5 biner ke string heksadesimal. md5StrHex := hex.EncodeToString(md5Str) fmt.Println("MD5 of", key, "is", md5StrHex) }
Konstruksi parameter URL berdasarkan tanda tangan MD5 yang dihasilkan.
Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Contoh
aliyun_api_key_sign
Tanda tangan MD5, yang berubah seiring waktu.
c3bf89b867cc88df72d507edc4d1****
aliyun_api_key_timestamp
Waktu tanda tangan. Tanda tangan kedaluwarsa dan menjadi tidak valid jika selisih antara waktu tanda tangan dan waktu sistem melebihi 1 menit.
1726823533
aliyun_api_key_name
Nama Kunci API.
test1
aliyun_api_key_org_id
ID organisasi Kunci API.
1
aliyun_api_key_expire_seconds
Waktu ketika tanda tangan MD5 kedaluwarsa setelah masuk. Unit: detik.
3600 (default)
Contoh:
https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key_sign=c3bf89b867cc88df72d507edc4d1****&aliyun_api_key_timestamp=1726823533&aliyun_api_key_name=test1&aliyun_api_key_org_id=1Dengan cara ini, Anda dapat secara dinamis menghasilkan tautan bebas kata sandi yang lebih aman ke Grafana setiap kali berdasarkan kode program dan menghindari kebocoran Kunci API.
Token akun layanan (Grafana 10.0.x)
Pisahkan dan enkripsi Kunci API (disebut sebagai token akun layanan di Grafana 10.0.x dan seterusnya) dari Langkah 2: Buat Kunci API menggunakan PBKDF2.
Password-Based Key Derivation Function 2 (PBKDF2) adalah fungsi derivasi kunci berbasis kata sandi yang digunakan untuk secara aman menurunkan kunci enkripsi dari kata sandi yang diberikan pengguna bersama dengan beberapa parameter tambahan seperti garam dan jumlah iterasi. Ini terutama digunakan dalam skenario di mana kata sandi pengguna perlu disimpan, bertujuan untuk memastikan bahwa bahkan jika database diretas, penyerang akan sulit mendapatkan kata sandi teks biasa pengguna atau dengan mudah memecahkan kunci yang diturunkan.
Pisahkan token akun layanan dengan garis bawah (_).
# Gunakan token akun layanan berikut sebagai contoh: Token:glsa_yV9HAOVCjNKkvKoLMiypOc5T0Oov****_4f5ff3ce # Setelah dipisahkan, menjadi: Prefix: glsa Secret:yV9HAOVCjNKkvKoLMiypOc5T0Oov**** Salt:4f5ff3ceBerbagai metode enkripsi tersedia. Tabel berikut menjelaskan parameter enkripsi.
Parameter
Deskripsi
salt
Masukkan sufiks token. Dalam contoh ini, atur nilainya menjadi 4f5ff3ce.
iterasi
Atur nilainya menjadi 10000.
panjang keluaran
Atur nilainya menjadi 50.
ukuran kunci
Atur nilainya menjadi 256.
tipe keluaran
Atur nilainya menjadi Hex.
Gunakan alat online umum untuk dekripsi, seperti charsetpbkdf2.
Dekripsi Kunci API dalam Java.
package main import javax.crypto.SecretKeyFactory; import java.security.GeneralSecurityException; import javax.crypto.spec.PBEKeySpec; import java.security.spec.KeySpec; public class PBKDFExapmle { public static void main(String[] args) { String password = "yV9H****jNKkvKoLMiypOc5T0OovHXPV"; String salt = "4f5ff3ce"; int iterationCount = 10000; int outputLength = 50 * 8; try { KeySpec spec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), iterationCount, outputLength); SecretKeyFactory skf = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); byte[] keyBytes = skf.generateSecret(spec).getEncoded(); System.out.println(bytesToHex(keyBytes)); } catch (GeneralSecurityException e) { e.printStackTrace(); } } private static String bytesToHex(byte[] bytes) { StringBuilder hexString = new StringBuilder(); for (byte b : bytes) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } return hexString.toString(); } }Output: Kata Sandi PBKDF2
c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****Turunkan kunci dalam Go.
package main import "fmt" import "encoding/hex" import "crypto/sha256" import "golang.org/x/crypto/pbkdf2" func main() { password:="yV9H****jNKkvKoLMiypOc5T0OovHXPV" salt="4f5ff3ce" newPasswd := pbkdf2.Key([]byte(password), []byte(salt), 10000, 50, sha256.New) encodePassword:= hex.EncodeToString(newPasswd) fmt.Println(encodePassword) }Output: Kata Sandi PBKDF2
c3cd****971bab928e4ecd6e7a00c74657696ea07d38c43f3bb5dc3190f2285cb80695cf7bf2f25c9b1f34fe1e0f9549****
Konstruksi parameter tanda tangan digest MD5 berdasarkan informasi yang dienkripsi menggunakan PBKDF2.
Algoritma MD5 Message-Digest adalah fungsi hash kriptografi yang banyak digunakan dan menghasilkan nilai hash 128-bit (16-byte), dirancang untuk memastikan integritas dan konsistensi informasi yang ditransmisikan.
Konten yang akan dienkripsi terdiri dari: <Kata Sandi PBKDF2> + "_" + <waktu sistem saat ini dalam detik sebagai bilangan bulat>.
Contoh:
Jika Kata Sandi PBKDF2 adalah: 1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****
Dan waktu sistem saat ini adalah: 2024-09-20 17:12:13, maka waktu tepat dalam detik sejak epoch adalah: 1726823533
Oleh karena itu, informasi lengkap untuk menghasilkan tanda tangan MD5 adalah: 1e5b****80184 e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****_1726823533.
Metode untuk menghasilkan tanda tangan MD5:
Gunakan alat online umum untuk enkripsi, seperti MD5.
Implementasikan hashing MD5 dalam Java.
package main; import java.security.MessageDigest; public class MD5 { public static void main(String[] args) { String pbkdfPassword = "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****"; long timeSeconds=System.currentTimeMillis()/1000; String key=pbkdfPassword+"_"+timeSeconds; System.out.println(MD5.getMD5String(key,"UTF-8")); } public static String getMD5String(String str, String charset) { try { MessageDigest messageDigest = MessageDigest.getInstance("MD5"); messageDigest.reset(); messageDigest.update(str.getBytes(charset)); byte[] byteArray = messageDigest.digest(); StringBuffer md5StrBuff = new StringBuffer(); for (int i = 0; i < byteArray.length; i++) { if (Integer.toHexString(0xFF & byteArray[i]).length() == 1) { md5StrBuff.append("0").append( Integer.toHexString(0xFF & byteArray[i])); } else { md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i])); } } return md5StrBuff.toString().toLowerCase(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("MD5 error:"+e.getMessage()); } } }Implementasikan hashing MD5 dalam Go.
package main import ( "crypto/md5" "encoding/hex" "fmt" "io" "time" "strconv" ) func main() { // String yang perlu di-hash dengan MD5. pbkdfPassword := "1e5b****80184e78832544aae4d2e031a3539c10b575b75d7c1d44af49fcf5a7de9c58a5f0035ce35fff0e5b0476e882****" timeSeconds:= time.Now().Unix() key:=pbkdfPassword+"_"+strconv.FormatInt(timeSeconds, 10) // Hitung hash MD5 dari string menggunakan paket md5. hash := md5.New() io.WriteString(hash, key) md5Str := hash.Sum(nil) // Konversi nilai MD5 biner ke string heksadesimal. md5StrHex := hex.EncodeToString(md5Str) fmt.Println("MD5 of", key, "is", md5StrHex) }
Konstruksi parameter URL berdasarkan tanda tangan MD5 yang dihasilkan.
Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Contoh
aliyun_api_key_sign
Tanda tangan MD5, yang berubah seiring waktu.
c3bf89b867cc88df72d507edc4d1****
aliyun_api_key_timestamp
Waktu tanda tangan. Tanda tangan kedaluwarsa dan menjadi tidak valid jika selisih antara waktu tanda tangan dan waktu sistem melebihi 1 menit.
1726823533
aliyun_api_key_name
Nama token akun layanan.
sa-1-******-*******-75c7-41ae-94da-*********
aliyun_api_key_org_id
ID organisasi token akun layanan.
1
aliyun_api_key_expire_seconds
Waktu ketika tanda tangan MD5 kedaluwarsa setelah masuk. Unit: detik.
3600 (default)
Contoh:
https://grafana-example.grafana.aliyuncs.com/d/TZWea****/test?orgId=1&from=167081684****&to=167083844****&aliyun_api_key_sign=c3bf89b867cc88df72d507edc4d1****&aliyun_api_key_timestamp=1726823533&aliyun_api_key_name=test1&aliyun_api_key_org_id=1Dengan cara ini, Anda dapat secara dinamis menghasilkan tautan bebas kata sandi yang lebih aman ke Grafana setiap kali berdasarkan kode program dan menghindari kebocoran token akun layanan.
FAQ
Apa yang harus saya lakukan jika kesalahan berikut dilaporkan saat mengakses dasbor menggunakan tautan yang dapat dibagikan?

Penyebab yang mungkin: Anda belum mengonfigurasi parameter allow_embedding saat menyematkan tautan dasbor ke halaman web menggunakan tag <iframe>. Untuk informasi tentang cara mengonfigurasi parameter allow_embedding, lihat Langkah 1 dari topik ini.
Mengapa dasbor gagal menampilkan data?

Jika Anda telah menyematkan tautan dasbor ke halaman web menggunakan tag <iframe>, cookie tidak dapat ditulis karena salah satu penyebab berikut:
Tautan dan halaman web berada di nama domain yang berbeda. Dalam kasus ini, cookie tidak dapat ditulis secara default.
Parameter cookie_samesite disetel ke none, tetapi parameter cookie_secure disetel ke false.
Tautan dikonfigurasikan sebagai URL HTTP. Namun, URL HTTP tidak didukung karena parameter cookie_secure tidak dapat berfungsi untuk HTTP.
Anda dapat mengonfigurasi ulang parameter Grafana untuk memecahkan masalah tersebut. Untuk informasi lebih lanjut, lihat Langkah 1 dari topik ini.
Apa yang harus saya lakukan jika kesalahan berikut dilaporkan saat mengakses dasbor menggunakan tautan yang dapat dibagikan?

Penyebab yang mungkin:
Versi browser Anda sudah usang.
Konfigurasi browser tidak valid jika Anda telah menyematkan tautan dasbor ke halaman web menggunakan tag <iframe>.
Solusi:
Lihat konfigurasi cookie dan aktifkan cookie.
Jika Anda menggunakan Chrome, Anda perlu mengaktifkan semua cookie dalam mode penyamaran.
Saat saya menyematkan tautan dasbor ke halaman web menggunakan Kunci API, apakah saya perlu menentukan masa berlaku pendek untuk penggunaan satu kali Kunci API, atau masa berlaku panjang untuk pengalaman tanpa masuk?
Anda dapat menentukan masa berlaku untuk Kunci API berdasarkan persyaratan keamanan Anda. Kami merekomendasikan agar Anda mengubah Kunci API setiap tiga bulan untuk memastikan keamanan. Jika Kunci API bocor, Anda dapat menghapus kunci tersebut untuk mencegah akses tidak sah.
Apakah saya bisa membuat Kunci API tanpa batas?
Jumlah Kunci API yang dapat dibuat tidak terbatas dalam kode sumber resmi. Namun, hanya hingga 100 Kunci API yang ditampilkan di antarmuka Grafana sekaligus. Kami merekomendasikan agar Anda menjaga jumlah Kunci API menjadi 100 atau kurang.
Apakah sistem secara otomatis menghapus Kunci API setelah Kunci API kedaluwarsa?
Tidak, sistem tetap menyimpan data Kunci API yang kedaluwarsa. Untuk memberi ruang bagi Kunci API baru, Anda dapat menghapus Kunci API yang kedaluwarsa secara manual. Secara default, Kunci API yang kedaluwarsa disembunyikan di antarmuka Grafana. Untuk melihat Kunci API yang kedaluwarsa, Anda dapat mengaktifkan Include expired keys. Lalu, Anda dapat menghapus Kunci API yang kedaluwarsa.
