All Products
Search
Document Center

Elastic Compute Service:Instal Workbench CLI dan Konfigurasikan Kredensial

Last Updated:Aug 22, 2026

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.com dan titik akhir WebSocket backend Workbench.

Penting

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 | bash

Setelah 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 | iex

Setelah 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 version

Dalam 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.

Penting

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.

Catatan

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.

  1. Buat RAM user. Login ke Konsol RAM, buka halaman Identities > Users, 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.

  2. Buat kebijakan izin kustom. Di halaman Permissions > Policies 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:DescribeInstances

    Mengizinkan workbench list ecs untuk mengkueri daftar instans.

    ecs:DescribeCloudAssistantStatus

    Memeriksa status agen Cloud Assistant pada instans target.

    ecs:StartTerminalSession

    Membuat sesi terminal dengan instans ECS.

    ecs-workbench:LoginECSInstance

    Mengaktifkan login tanpa password melalui saluran Workbench (digunakan oleh connect, exec, upload, dan download).

    ecs-workbench:ChatMessages

    Izin yang diperlukan oleh asisten agen AI dalam sesi (mode /agent).

    ecs-workbench:EndSessions

    Menutup sesi Workbench (dipanggil oleh session close dan selama pembersihan sesi otomatis).

    ram:CreateServiceLinkedRole

    Membuat peran terkait layanan Workbench saat pertama kali digunakan. Condition membatasi pembuatan hanya untuk peran terkait layanan dari layanan workbench.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 Statement terpisah dan ubah Resource:

    // 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>"
    Catatan

    ecs-workbench:ChatMessages dan ram:CreateServiceLinkedRole tidak mendukung pembatasan berdasarkan ARN instans. Pertahankan "Resource": "*" untuk keduanya.

  3. 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.

  4. Buat AccessKey untuk RAM user. Di tab Credentials > AccessKey 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.

    Penting

    Secret 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 config

Setelah 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-hangzhou

Dalam 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 Tiongkok

Anda 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 ini

Berikut 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"
    }
  }
}
Catatan

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.

workbench config

StsToken

Kredensial keamanan sementara (AccessKey + Token STS). Cocok untuk skenario di mana Anda sudah memiliki kredensial sementara STS.

workbench config --mode StsToken

RamRoleArn

Direkomendasikan untuk lingkungan produksi: AccessKey berhak rendah mengasumsikan peran RAM berhak tinggi, dan kredensial sementara STS diperbarui secara otomatis.

workbench config --mode RamRoleArn

CredentialsCmd

Memperoleh kredensial secara dinamis dengan menjalankan program eksternal, mengintegrasikan dengan sistem distribusi kredensial atau manajemen kunci yang sudah ada.

workbench config --mode CredentialsCmd

CredentialsURI

Memperoleh kredensial secara dinamis melalui layanan HTTP (layanan metadata, sidecar, dll.).

workbench config --mode CredentialsURI

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 StsToken

Saat 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 RamRoleArn

Saat 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 CredentialsCmd

Saat 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 CredentialsURI

Saat 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"
}
Penting

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 upgrade

Peningkatan secara otomatis mengunduh dan memverifikasi biner terbaru serta menggantikan versi saat ini.

Catatan

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 ~/.workbench

Perintah 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.

Catatan

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 version untuk 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.json

workbench 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