Setelah menginstal Workbench CLI pada mesin Linux, macOS, atau Windows, kaitkan kebijakan izin dengan hak istimewa paling rendah ke RAM user, lalu buat dan konfigurasikan AccessKey agar siap digunakan. Di lingkungan produksi, Anda dapat beralih ke mode RamRoleArn, CredentialsCmd, atau CredentialsURI untuk mengaktifkan penyegaran kredensial otomatis dengan izin minimum.
Batasan
Sistem operasi instans target: Workbench CLI hanya mendukung koneksi ke instans Linux (melalui protokol SSH) dan tidak mendukung koneksi ke instans Windows.
Sistem operasi mesin lokal: Workbench CLI dapat dijalankan di Linux, macOS (amd64 / arm64), dan Windows (amd64).
Konektivitas jaringan: Mesin lokal harus dapat mengakses
*.aliyuncs.comdan titik akhir WebSocket backend Workbench.
Instans Windows saat ini tidak didukung oleh Workbench CLI. Untuk menghubungkan ke instans Windows, lihat Hubungkan ke instans menggunakan Workbench.
Langkah 1: Instal Workbench CLI
Pilih perintah instalasi berdasarkan sistem operasi mesin lokal Anda. Skrip instalasi secara otomatis mendeteksi arsitektur (amd64 / arm64), mengunduh biner dari CDN OSS, memverifikasi checksum SHA256-nya, dan menginstalnya ke jalur default sistem.
Linux atau macOS
Jalankan perintah berikut untuk menginstal versi terbaru Workbench CLI.
curl -fsSL https://workbench-cli.oss-cn-hangzhou.aliyuncs.com/install.sh | bashSetelah instalasi selesai, biner berada di /usr/local/bin/workbench. Di macOS, biner secara otomatis ditandatangani ulang dan atribut karantina-nya dihapus. Jika direktori tujuan memerlukan hak administrator, skrip secara otomatis menggunakan sudo.
Windows
Di PowerShell, jalankan perintah berikut untuk menginstal versi terbaru Workbench CLI.
irm https://workbench-cli.oss-cn-hangzhou.aliyuncs.com/install.ps1 | iexSetelah instalasi selesai, biner berada di C:\Program Files\workbench\. Skrip instalasi secara otomatis mengonfigurasi variabel lingkungan PATH. Jika Anda menginstalnya dalam sesi desktop atau Remote Desktop (RDP), Anda harus logout dan login kembali agar PATH berlaku.
Verifikasi Instalasi
Setelah instalasi selesai, jalankan perintah berikut untuk memverifikasinya:
workbench versionDalam kondisi normal, perintah tersebut menampilkan nomor versi saat ini, ID commit, dan tanggal build. Jika muncul pesan command not found, biasanya PATH belum berlaku. Anda dapat melakukan langkah-langkah berikut:
Linux / macOS: Buka jendela terminal baru, atau jalankan
source ~/.bashrc(atau~/.zshrc) dan coba lagi.Windows: Tutup dan buka kembali jendela PowerShell agar PATH yang baru berlaku.
Langkah 2: Siapkan AccessKey dengan Izin Minimum untuk Workbench CLI
Workbench CLI memanggil API Alibaba Cloud menggunakan AccessKey. Tujuan langkah ini adalah mendapatkan AccessKey yang hanya memiliki izin minimum yang diperlukan oleh Workbench CLI, sehingga Anda dapat mengonfigurasikannya di CLI lokal pada langkah berikutnya. Proses yang direkomendasikan adalah: buat RAM user → berikan izin minimum → buat AccessKey untuk RAM user tersebut.
Kami tidak merekomendasikan penggunaan ID AccessKey dan Secret AccessKey Akun Alibaba Cloud Anda untuk mengonfigurasi CLI. AccessKey Akun Alibaba Cloud memiliki izin untuk mengoperasikan semua sumber daya cloud di bawah akun tersebut. Jika bocor, seluruh aset Anda akan terpapar. Selalu gunakan AccessKey dari RAM user yang memiliki izin minimum.
Jika Anda sudah memiliki RAM user dengan izin minimum untuk Workbench CLI, Anda dapat melewati Langkah 1 hingga 3 dan langsung mulai dari Langkah 4: Buat AccessKey untuk RAM user.
Buat RAM user. Login ke Konsol RAM, buka halaman , lalu klik Create User. Di halaman pembuatan, masukkan Logon Name dan Display Name, lalu klik OK.
Jangan buat AccessKey pada tahap ini. AccessKey akan dibuat setelah izin diberikan di Langkah 4.
Buat kebijakan izin kustom. Di halaman Konsol RAM, klik Create Policy, alihkan ke mode Script mode/JSON, tempel JSON berikut, lalu klik OK.
"Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs-workbench:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "ram:ServiceName": "workbench.ecs.aliyuncs.com" } } } ]{Tujuan setiap Action dalam kebijakan tersebut adalah sebagai berikut:
Action
Tujuan
ecs:DescribeInstancesMengizinkan
workbench list ecsuntuk mengkueri daftar instans.ecs:DescribeCloudAssistantStatusMemeriksa status agen Cloud Assistant pada instans target.
ecs:StartTerminalSessionMembuat sesi terminal dengan instans ECS.
ecs-workbench:LoginECSInstanceMengaktifkan login tanpa password melalui saluran Workbench (digunakan oleh connect, exec, upload, dan download).
ecs-workbench:ChatMessagesIzin yang diperlukan oleh asisten agen AI dalam sesi (
mode /agent).ecs-workbench:EndSessionsMenutup sesi Workbench (dipanggil oleh
session closedan selama pembersihan sesi otomatis).ram:CreateServiceLinkedRoleMembuat peran terkait layanan Workbench saat pertama kali digunakan.
Conditionmembatasi pembuatan hanya untuk peran terkait layanan dari layananworkbench.ecs.aliyuncs.com.Secara default, kebijakan ini memberikan akses ke semua instans. Untuk mempersempitnya ke instans tertentu, terapkan ARN instans hanya pada action yang mendukung otorisasi tingkat instans (perhatikan bahwa dua kelompok action menggunakan format ARN yang berbeda). Pisahkan menjadi blok
Statementterpisah dan ubahResource:// ecs-workbench:LoginECSInstance "Resource": "acs:ecs:<region>:<account-id>:ecs/<instance-id>" // ecs:DescribeInstances / DescribeCloudAssistantStatus / StartTerminalSession "Resource": "acs:ecs:<region>:<account-id>:instance/<instance-id>"Catatanecs-workbench:ChatMessagesdanram:CreateServiceLinkedRoletidak mendukung pembatasan berdasarkan ARN instans. Pertahankan"Resource": "*"untuk keduanya.Berikan kebijakan kepada RAM user. Buka halaman detail RAM user yang dibuat di Langkah 1, alihkan ke tab Permissions, klik Grant Permission, pilih kebijakan kustom yang dibuat pada langkah sebelumnya, lalu selesaikan otorisasi. Untuk informasi lebih lanjut, lihat Berikan izin kepada RAM user.
Buat AccessKey untuk RAM user. Di tab halaman detail RAM user, klik Create AccessKey. Di dialog yang muncul, pilih Use AccessKey in CLI, pilih I confirm that I must create an AccessKey, lalu klik Continue to create. Untuk informasi lebih lanjut, lihat Buat Pasangan AccessKey.
PentingSecret AccessKey hanya ditampilkan sekali saat dibuat dan tidak dapat dilihat lagi setelah halaman ditutup. Segera simpan ID AccessKey dan Secret ke password manager atau key vault. Jika Anda kehilangannya, satu-satunya cara adalah membuat AccessKey baru.
AccessKey merupakan kredensial jangka panjang. Jika bocor, dapat disalahgunakan dalam jangka waktu lama. Di lingkungan produksi, kami merekomendasikan agar Anda segera beralih ke mode kredensial yang menyegarkan otomatis seperti RamRoleArn setelah menyelesaikan konfigurasi di Langkah 3. Untuk informasi lebih lanjut, lihat bagian Metode konfigurasi lainnya dokumen ini.
Langkah 3: Konfigurasikan AccessKey di CLI Lokal
Jalankan perintah berikut, lalu masukkan ID AccessKey dan Secret AccessKey yang diperoleh di Langkah 2 saat diminta.
workbench configSetelah konfigurasi selesai, kredensial disimpan di ~/.workbench/config.json, dan izin file secara otomatis diatur ke 0600 (hanya dapat dibaca dan ditulis oleh pengguna saat ini). Berikut contoh isi file tersebut:
{
"current": "default",
"profiles": {
"default": {
"mode": "AK",
"access_key_id": "LTAI...",
"access_key_secret": "..."
}
}
}Jalankan perintah berikut untuk memverifikasi apakah koneksi berhasil (ganti cn-hangzhou dengan wilayah Anda):
workbench list ecs -r cn-hangzhouDalam kondisi normal, perintah tersebut mengembalikan daftar instans di wilayah tersebut. Jika muncul error seperti InvalidAccessKeyId atau NoPermission, lihat bagian FAQ dokumen ini.
(Opsional) Atur bahasa antarmuka
Workbench CLI mendukung bahasa antarmuka Tiongkok (zh) dan Inggris (en). Default-nya adalah bahasa Tiongkok. Jalankan perintah berikut untuk beralih:
workbench config set language en # Beralih ke bahasa Inggris
workbench config set language zh # Kembali ke bahasa TiongkokAnda juga dapat mengaturnya selama alur interaktif workbench config, atau langsung edit ~/.workbench/config.json untuk menambahkan bidang language ke profil yang sesuai:
{
"current": "default",
"profiles": {
"default": {
"mode": "AK",
"language": "en"
}
}
}Perubahan berlaku saat Anda terhubung berikutnya. Anda tidak perlu merestart daemon.
(Opsional) Kelola Beberapa Profil
Jika Anda perlu beralih antara beberapa Akun Alibaba Cloud atau beberapa set kredensial, Anda dapat menggunakan fitur profil untuk menghindari konfigurasi ulang berulang kali. Semua profil disimpan dalam file ~/.workbench/config.json yang sama, dan bidang current menandai profil aktif.
workbench config --profile prod # Buat atau edit profil bernama prod
workbench config list # Daftar semua profil (* menandai yang aktif)
workbench config get --profile prod # Tampilkan detail profil tertentu
workbench config switch --profile prod # Ganti profil aktif
workbench config delete --profile old # Hapus profil (tidak bisa menghapus profil aktif)
workbench exec -i i-xxx -c "hostname" --profile prod # Gunakan profil tertentu hanya untuk perintah iniBerikut contoh struktur multi-profil dalam config.json:
{
"current": "default",
"profiles": {
"default": {
"mode": "AK",
"access_key_id": "LTAI...",
"access_key_secret": "..."
},
"prod": {
"mode": "RamRoleArn",
"access_key_id": "LTAI...",
"access_key_secret": "...",
"ram_role_arn": "acs:ram::123456:role/prod",
"role_session_name": "workbench"
}
}
}Jika file konfigurasi masih dalam format lama yang datar (tanpa bidang profiles), CLI secara otomatis memigrasikannya ke format baru saat pertama kali dijalankan, menyimpan kredensial yang ada dalam profil bernama default. Tidak diperlukan tindakan manual.
Metode Konfigurasi Lainnya
AccessKey jangka panjang merupakan kredensial jangka panjang. Jika bocor, dapat disalahgunakan dalam jangka waktu lama. Di lingkungan produksi atau ketika Anda memiliki persyaratan keamanan yang lebih ketat, kami merekomendasikan agar Anda beralih ke salah satu dari empat mode berikut:
Mode | Skenario | Perintah konfigurasi |
AK (Langkah 2 hingga 3 dalam dokumen ini) | AccessKey jangka panjang. Untuk quick start di lingkungan pengembangan. |
|
StsToken | Kredensial keamanan sementara (AccessKey + Token STS). Cocok untuk skenario di mana Anda sudah memiliki kredensial sementara STS. |
|
RamRoleArn | Direkomendasikan untuk lingkungan produksi: AccessKey berhak rendah mengasumsikan peran RAM berhak tinggi, dan kredensial sementara STS diperbarui secara otomatis. |
|
CredentialsCmd | Memperoleh kredensial secara dinamis dengan menjalankan program eksternal, mengintegrasikan dengan sistem distribusi kredensial atau manajemen kunci yang sudah ada. |
|
CredentialsURI | Memperoleh kredensial secara dinamis melalui layanan HTTP (layanan metadata, sidecar, dll.). |
|
Gunakan Kredensial Sementara STS (StsToken)
Otentikasi langsung menggunakan kredensial keamanan sementara yang diperoleh melalui STS (ID AccessKey + Secret AccessKey + Token STS). Mode ini cocok untuk skenario di mana Anda sudah memiliki kredensial sementara. Kredensial sementara memiliki masa kedaluwarsa dan harus dikonfigurasi ulang setelah kedaluwarsa. Jika Anda memerlukan penyegaran otomatis, gunakan mode RamRoleArn.
workbench config --mode StsTokenSaat diminta, masukkan ID AccessKey sementara, Secret AccessKey, dan Token STS secara berurutan. Berikut contoh ~/.workbench/config.json:
{
"current": "default",
"profiles": {
"default": {
"mode": "StsToken",
"access_key_id": "STS.LTAI...",
"access_key_secret": "...",
"sts_token": "..."
}
}
}Gunakan Peran RAM (RamRoleArn)
AccessKey berhak rendah mengasumsikan peran RAM berhak tinggi. CLI secara otomatis memanggil STS AssumeRole untuk memperoleh kredensial sementara dan menyegarkannya secara otomatis sebelum kedaluwarsa. Kredensial tidak disimpan sebagai AccessKey jangka panjang, sehingga cocok untuk lingkungan produksi.
workbench config --mode RamRoleArnSaat diminta, masukkan ID AccessKey berhak rendah, Secret AccessKey, ARN peran RAM yang akan diasumsikan (format: acs:ram::<account-id>:role/<role-name>), dan identifier sesi (default: workbench-session). Berikut contoh ~/.workbench/config.json:
{
"current": "default",
"profiles": {
"default": {
"mode": "RamRoleArn",
"access_key_id": "LTAI...",
"access_key_secret": "...",
"ram_role_arn": "acs:ram::123456789:role/WorkbenchRole",
"role_session_name": "workbench-session"
}
}
}Anda dapat menambahkan bidang lanjutan (seperti expired_seconds, sts_region, dan external_id, yang digunakan untuk pencegahan confused deputy lintas akun) dengan mengedit manual config.json. Untuk informasi lebih lanjut tentang mekanisme STS, lihat Apa itu STS?.
Gunakan Kredensial Perintah Eksternal (CredentialsCmd)
Kredensial diperoleh secara dinamis dengan menjalankan program eksternal. Mode ini cocok untuk mengintegrasikan dengan sistem distribusi kredensial atau manajemen kunci yang sudah ada. Sebelum setiap permintaan API, CLI menjalankan perintah yang dikonfigurasi dan mengurai stdout-nya sebagai kredensial.
workbench config --mode CredentialsCmdSaat diminta, masukkan jalur mutlak dan parameter perintah eksternal. Kode keluar perintah eksternal harus 0, dan output stdout-nya harus dalam salah satu dari dua format JSON berikut:
// AccessKey jangka panjang
{
"mode": "AK",
"access_key_id": "<AccessKeyID>",
"access_key_secret": "<AccessKeySecret>"
}
// Kredensial sementara STS
{
"mode": "StsToken",
"access_key_id": "<AccessKeyID>",
"access_key_secret": "<AccessKeySecret>",
"sts_token": "<SecurityToken>"
}Program eksternal hanya perlu mengembalikan kredensial ke stdout dalam format JSON seperti di atas. Hal ini memungkinkan Anda mengintegrasikannya dengan tool distribusi kredensial atau sistem manajemen kunci yang sudah ada.
Gunakan URI Kredensial (CredentialsURI)
Kredensial sementara diperoleh dengan mengirim permintaan GET ke layanan HTTP. Mode ini cocok untuk skenario seperti layanan distribusi kredensial mandiri, layanan metadata instans ECS, dan titik akhir kredensial sidecar. CLI secara otomatis memperoleh kembali kredensial sebelum kedaluwarsa.
workbench config --mode CredentialsURISaat diminta, masukkan alamat HTTP atau HTTPS layanan kredensial. Layanan kredensial harus mengembalikan HTTP 200, dan badan respons harus berupa:
{
"Code": "Success",
"AccessKeyId": "<AccessKeyID>",
"AccessKeySecret": "<AccessKeySecret>",
"SecurityToken": "<SecurityToken>",
"Expiration": "2026-01-01T12:00:00Z"
}Bidang Code harus tepat Success (case-sensitive). Bidang Expiration menggunakan format ISO 8601, yang digunakan CLI untuk secara otomatis memperoleh kembali kredensial sebelum kedaluwarsa.
Berikut contoh ~/.workbench/config.json:
{
"current": "default",
"profiles": {
"default": {
"mode": "CredentialsURI",
"credentials_uri": "http://localhost:8080/credentials"
}
}
}Perbarui Workbench CLI
Workbench CLI mendukung peningkatan mandiri dengan satu perintah. Jalankan perintah berikut untuk meningkatkan ke versi terbaru:
workbench upgradePeningkatan secara otomatis mengunduh dan memverifikasi biner terbaru serta menggantikan versi saat ini.
Jika biner diinstal di direktori yang memerlukan hak administrator (misalnya, /usr/local/bin di Linux/macOS), gunakan sudo workbench upgrade.
Copot pemasangan
Workbench CLI tidak mendaftarkan layanan sistem atau memodifikasi konfigurasi sistem. Untuk menguninstalnya, Anda hanya perlu menghentikan daemon, menghapus biner, dan opsional menghapus direktori konfigurasi lokal.
Linux atau macOS
Jalankan perintah berikut secara berurutan:
workbench daemon stop
sudo rm -f /usr/local/bin/workbench
rm -rf ~/.workbenchPerintah ketiga (yang menghapus ~/.workbench) bersifat opsional dan digunakan untuk menghapus semua kredensial lokal dan file konfigurasi.
Windows
Di PowerShell, jalankan perintah berikut secara berurutan:
workbench daemon stop
Remove-Item "$env:ProgramFiles\workbench" -Recurse -Force
# Hapus shim yang dibuat selama instalasi berbasis Cloud Assistant
Remove-Item "$env:SystemRoot\System32\workbench.cmd" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILE\.workbench" -Recurse -Force
# Bersihkan jalur workbench yang ditambahkan ke PATH pengguna oleh skrip instalasi (skenario Remote Desktop)
$path = [Environment]::GetEnvironmentVariable("Path", "User")
if ($path -match "workbench") {
$cleaned = ($path -split ";" | Where-Object { $_ -notmatch "workbench" }) -join ";"
[Environment]::SetEnvironmentVariable("Path", $cleaned, "User")
}Menghapus direktori .workbench bersifat opsional dan digunakan untuk menghapus semua kredensial lokal dan file konfigurasi.
Perintah di atas hanya membersihkan CLI lokal dan kredensial lokal. RAM user dan AccessKey di cloud tidak dihapus. Untuk membersihkannya juga, buka Konsol RAM untuk menghapus RAM user yang sesuai atau menonaktifkan AccessKey.
FAQ
Menjalankan workbench setelah instalasi menampilkan command not found
Penyebab: Direktori yang ditambahkan oleh skrip instalasi ke PATH belum berlaku di sesi shell saat ini.
Solusi:
Linux / macOS: Buka terminal baru, jalankan
source ~/.bashrc(atau~/.zshrc), atau langsung gunakan jalur mutlak/usr/local/bin/workbench versionuntuk verifikasi.Windows: Tutup dan buka kembali jendela PowerShell.
Menjalankan workbench config Menghasilkan Error Izin File Konfigurasi
Penyebab: CLI menolak file ~/.workbench/config.json dengan izin yang terlalu luas (misalnya, izin 0644 atau dapat dibaca grup), untuk mencegah kredensial dibaca oleh pengguna lain di mesin yang sama.
Solusi: Di Linux / macOS, jalankan perintah berikut untuk memperbaiki izin:
chmod 600 ~/.workbench/config.jsonworkbench list ecs Menghasilkan InvalidAccessKeyId.NotFound atau IncompleteSignature
Penyebab: Biasanya salah satu dari berikut:
ID AccessKey atau Secret yang dimasukkan saat konfigurasi salah (misalnya, memiliki spasi di awal/akhir atau tidak disalin sepenuhnya).
AccessKey yang sesuai telah dinonaktifkan atau dihapus di Konsol RAM.
Solusi: Jalankan workbench config lagi dan pastikan ID AccessKey dan Secret merupakan pasangan yang sesuai, lengkap, dan bebas dari spasi tambahan; atau konfirmasi di Konsol RAM bahwa status AccessKey adalah Enabled.
Referensi
Hubungkan ke instans menggunakan Workbench CLI: Topik induk, yang mencakup posisi tool, matriks kemampuan, dan quick start.
Kelola instans ECS menggunakan Workbench CLI: Penjelasan detail setiap perintah dan skenario umum.
Operasikan instans ECS menggunakan Workbench CLI dalam agen AI: Integrasikan Workbench CLI ke dalam tool pemrograman AI.