Pengedar Antarabangsa Alibaba Cloud: Kaedah panggilan antara muka Alibaba Cloud API dan kaedah konfigurasi kunci
Bagi pelajar yang baru mengenal pengkomputeran awan atau pengembangan back-end, "memanggil antara muka API" adalah satu-satunya cara untuk menghubungkan perniagaan dan sumber awan. Sama ada anda ingin menulis skrip untuk menukar mesin secara automatik, mengubah kumpulan keselamatan secara berkumpulan, atau mengintegrasikan penyimpanan OSS Alibaba Cloud dan antara muka model besar ke dalam sistem anda sendiri, API tidak dapat dipisahkan.
Walau bagaimanapun, banyak orang mempunyai kepala besar ketika mereka melihat istilah kriptografi (seperti AccessKey, Secret, HMAC-SHA1, algoritma tandatangan), atau kerana konfigurasi yang tidak betul, mereka secara tidak sengaja membocorkan kunci ke GitHub, menyebabkan pelayan diretas oleh penggodam untuk perlombongan dan mengalami kerugian besar..
Tutorial hari ini akan membawa anda melalui keseluruhan proses dalam bahasa vernakular: dari
Bagaimana untuk mendapatkan kunci dengan selamat
, Ke
Cara mengkonfigurasi secara tempatan dengan elegan
, Dan kemudian
Lengkapkan panggilan API pertama dengan kod yang paling mudah
。
Tahap pertama: konsep teras (jangan letakkan kunci pintu secara langsung di bibir anda)
Sebelum melakukannya, dua konsep teras mesti difahami:
AK
Dan
SK
。 Mereka seperti anda
Kad pengenalan awan dan kata laluan
。
AccessKey ID (disingkat AK): bersamaan dengan "nama pengguna" anda. Ia adalah awam dan digunakan untuk memberitahu Alibaba Cloud "siapa saya."
AccessKey Secret (disingkat SK): bersamaan dengan "kata laluan" anda. Ia sama sekali tidak boleh didedahkan dan digunakan untuk membuktikan bahawa "Saya benar-benar saya."
Setiap permintaan API Alibaba Cloud perlu dienkripsi dan ditandatangani dengan SK. Setelah Alibaba Cloud menerima permintaan itu, ia menggunakan algoritma yang sama untuk memeriksa dan melepaskannya.
🚨Undang-undang Besi: Jangan sekali-kali menggunakan AK/SK akaun utama!
Sekiranya anda secara langsung menggunakan kunci akaun bos besar Alibaba Cloud (akaun utama), kunci ini mempunyai kawalan tertinggi (pemotongan, penghapusan, pembelian pelayan) dari semua harta di bawah akaun anda.
Pendekatan yang betul:
Buat khas sub-akaun (pengguna RAM) seperti "penyapu", hanya berikan kebenaran untuk melakukan perkara tertentu, dan kemudian gunakan AK/SK sub-akaun ini.
Peringkat 2: Dapatkan Kunci dengan Selamat (5 minit)
Kami akan melalui Alibaba Cloud
RAM (kawalan akses)
Untuk membuat kunci sub-akaun yang selamat.
1. Buat pengguna kanak-kanak RAM
Log masuk ke Konsol Awan Alibaba, masukkan RAM di bar carian di bahagian atas, dan klik untuk memasukkan Konsol Kawalan Akses.
Di bar navigasi di sebelah kiri, klik Pengurusan Identiti-> Pengguna.
Klik Buat butang Pengguna.
Konfigurasi parameter utama: Nama log masuk: berikan nama yang bermakna, seperti api-operator-oss (bermaksud bahawa akaun ini digunakan khas untuk menyesuaikan antara muka OSS). Nama paparan: Contohnya, akaun khusus antara muka OSS. Kaedah akses: fokus! Akses panggilan OpenAPI mesti diperiksa. Tidak perlu memeriksa "Login Konsol", kerana akaun ini tidak perlu log masuk ke laman web.
Klik OK. Pada masa ini, skrin akan muncul
Jadual yang mengandungi AccessKey ID dan AccessKey Secret.
Salin dan simpan segera ke tempat selamat tempatan (seperti pengurus kata laluan)!> Catatan: Rahsia ini hanya akan dipaparkan kali ini. Setelah anda memuat semula halaman atau menutup tetingkap, anda tidak akan melihatnya lagi. Sekiranya anda kehilangannya, anda hanya boleh menghapusnya dan membina semula.
2. Berikan kuasa palam personel (kebenaran)
Sub-akaun yang baru dibuat adalah "Bai Ding" tanpa kebenaran. Memanggil antara muka secara langsung akan melaporkan kesalahan
Pengguna tidak authorized
。
Dalam senarai pengguna sekarang, cari pengguna baru anda dan klik kebenaran tambah di sebelah kanan.
Pilih julat kebenaran: keseluruhan akaun awan.
Pilih Strategi: Masukkan perkhidmatan yang perlu anda hubungi dalam kotak carian. Sebagai contoh, jika anda ingin mengawal pelayan, cari ECS dan periksa AliyunECSFullAccess (pihak berkuasa pentadbiran) atau AliyunECSReadOnlyAccess (kebenaran baca sahaja). Dianjurkan untuk mengikuti prinsip kebenaran minimum, memberikan apa yang anda perlukan, dan jangan menyelamatkan masalah secara langsung kepada Pentadbir (Pentadbir Sistem).
Klik OK, kebenaran selesai.
Tahap ketiga: konfigurasi kunci tempatan (menolak pengekodan keras!)
Setelah mendapat AK/SK, sepuluh juta
Jangan
Tulis secara langsung dalam kod (ini adalah "kod keras" legenda). Sekiranya suatu hari kod itu dihantar ke gudang terbuka, anda hanya menunggu untuk membayar bil awan dengan gaji penuh.
Amalan standard industri adalah menggunakan
Pembolehubah Alam Sekitar (Variables Alam Sekitar)
。
1. Kaedah Konfigurasi Linux / macOS
Buka terminal dan edit fail pemboleh ubah persekitaran anda (seperti
~ /. Bashrc
Atau
~ /. Zshrc
):
Export ALIBABA_CLOUD_ACCESS_KEY_ID = "AccessKeyID anda"
Export ALIBABA_CLOUD_ACCESS_KEY_SECRET = "AccessKeySecret anda"
Selepas menyimpan, jalankan
Sumber ~ /. Bashrc
(Atau fail yang sesuai) Biarkan konfigurasi berlaku.
2. Kaedah Konfigurasi Windows
Klik kanan "Komputer ini"-> "Properties"-> "Tetapan Sistem Lanjutan"-> "Pemboleh ubah Alam Sekitar".
Dalam "Pemboleh ubah Pengguna" atau "Pemboleh ubah Sistem", klik "Baru": nama pemboleh ubah: ALIBABA_CLOUD_ACCESS_KEY_ID, nilai pemboleh ubah: isikan AK anda. Buat yang baru: nama pemboleh ubah: ALIBABA_CLOUD_ACCESS_KEY_SECRET, nilai pemboleh ubah: isikan SK anda.
Klik OK untuk menyimpan sepanjang jalan. Catatan: Selepas konfigurasi, anda perlu memulakan semula persekitaran pembangunan bersepadu anda (seperti VS Co
De/PyCharm) atau tetingkap baris perintah, jika tidak, pemboleh ubah baru tidak akan dibaca.
Tahap keempat: pertempuran sebenar panggilan API pertama (contoh Python)
Sekarang persekitarannya sudah siap, kami menggunakan kaedah yang paling disyorkan-menggunakan Alibaba Cloud rasmi
SDK V2.0
Buat panggilan. Berikut adalah contoh pertanyaan semua contoh pelayan ECS (DescribeInstances) di bawah akaun anda.
1. Pasang perpustakaan teras SDK dan perpustakaan produk yang sesuai
Berjalan di terminal tempatan:
Bash
Pip install alibabacloud_tea_openapi
Pip install alibabacloud_ecs20140526 = = 4.3.0
2. Tulis kod panggilan
Alibaba Cloud V2.0 SDK sangat pintar, secara automatik akan membaca pemboleh ubah persekitaran yang baru kita konfigurasikan
ALIBABA_CLOUD_ACCESS_KEY_ID
Dan
ALIBABA_CLOUD_ACCESS_KEY_SECRET
, Tidak perlu menulis perkataan sensitif dalam kod.
Import os
Port sys
Dari alibabacloud_ecs20140526.client import Client sebagai Ecs20140526Client
Dari alibabacloud_tea_openapi imort models as open_api_models
Dari alibabacloud_ecs20140526 model import sebagai ecs_20140526_model
Kelas AliyunApiDemo:
@ Staticmethod
Def create_client() -> Ecs20140526Client:
"""
Memulakan Pelanggan Akaun
"""
# SDK secara automatik mengambil ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET dari pembolehubah persekitaran
Config = open_api _
Model. Config()
# Pilih nama domain tempatan yang ingin anda panggil, misalnya, Hangzhou adalah cn-hangzhou, Shanghai adalah cn-shanghai
Config. endpoint = f"ecs.cn-hangzhou.aliyuncs.com"
Return Ecs20140526Client(config)
@statik
Def main():
Client = AliyunApiDemo.create_client()
# Membina parameter permintaan (pertanyaan contoh ECS di kawasan semasa)
Describe_instances_request = (
Ecs_20140526_models.DescribeInstancesRequest (
Region_id = "cn-hangzhou"
)
)
Cuba:
# Mulakan panggilan
Response = client.de scribe_instances(describe_instances_request)
# Cetak Keputusan JSON yang dikembalikan
& Nb
Sp; cetak ("=== Panggilan API berjaya, hasil yang dikembalikan adalah seperti berikut ===")
Print (response.body)
Except Exception as error:
# Mengendalikan ralat dengan elegan
Cetak (f "=== kegagalan panggilan API ===")
If hasattr(error, "message"):
Print (f "Mesej ralat: {error.message}")
If hasattr(error, "code"):
Cetak (f "ralat kod: {error.code}")
Jika __name__ = = "__main__":
AliyunApiDemo.main()
Jalankan kod ini, jika anda melihat data JSON dari senarai contoh pelayan anda, ini bermakna anda telah berjaya membuka pintu API Alibaba Cloud.
Tahap 5: Alat Peri Lanjutan Master-OpenAPI Explorer
Sekiranya anda tidak mahu menulis kod, atau tidak tahu cara mengisi parameter antara muka, Alibaba Cloud menyediakan "artifak menipu" mutlak --
Portal OpenAPI (OpenAPI Explorer)
。
https://next.api.aliyun.com akses penyemak imbas/.
Masukkan fungsi yang ingin anda gunakan di kotak carian di sebelah kiri, seperti "Buat Cakera Awan" atau "Kirim SMS".
Dalam bentuk tengah, isikan parameter secara langsung dengan kotak input antara muka visual.
Inilah intinya: Tab "Contoh SDK" di sebelah kanan halaman web secara automatik akan menghasilkan kod dalam pelbagai bahasa mengikut parameter yang anda isi dalam masa nyata (Python, Java, Go, Node.js semuanya mempunyai
)。
Anda bahkan boleh mengklik "mulakan panggilan" secara langsung di laman web untuk melihat apakah hasil yang dikembalikan oleh antara muka betul. Setelah melakukan debug, salin kod di sebelah kanan terus ke projek anda dan gunakannya.
Ringkasan untuk mengelakkan lubang
Tidak sukar untuk menyesuaikan antara muka, tetapi kesukaran terletak pada perincian dan keselamatan. Akhirnya, saya akan memberi anda empat petua untuk mengelakkan lubang:
Meminimumkan kebenaran: Jangan membaca atau menulis jika anda boleh membacanya sahaja, dan jangan memilih semua produk tertentu.
Kod tanpa rahsia: Dalam kod sumber, anda dapat melihat rentetan di belakang access_key, yang semuanya ditulis semula untuk dibaca dari pemboleh ubah persekitaran.
Sistem putaran biasa: Kunci sub-akaun projek komersial disyorkan untuk dilumpuhkan di konsol setiap enam bulan untuk menghasilkan semula satu set untuk mengelakkan pekerja meninggalkan pekerjaan mereka atau secara tidak sengaja bocor.
Gunakan Explorer dengan baik: Jangan menggigit dokumen teks rasmi, pergi ke portal OpenAPI untuk melihat kod demo yang dihasilkan secara automatik, yang dapat mengelakkan jalan memutar.

