Alibaba Cloud CLI menggunakan kredensial untuk melakukan otentikasi saat memanggil API layanan cloud guna mengelola sumber daya cloud. Topik ini menjelaskan cara memilih jenis kredensial yang sesuai berdasarkan kasus penggunaan Anda serta cara mengonfigurasi dan mengelolanya.
Pilih jenis kredensial
Alibaba Cloud CLI mendukung beberapa jenis kredensial. Pilih jenis yang paling sesuai dengan kasus penggunaan Anda.
Credential type | Use case | Supports non-interactive configuration | Configuration |
OAuth (Recommended) | Masuk dengan Akun Alibaba Cloud, RAM user, atau SSO melalui browser. Mendukung MFA dan passkey. Tidak memerlukan penyimpanan AccessKey jangka panjang, sehingga menjamin keamanan tinggi. | No | |
EcsRamRole (Recommended) | Saat menjalankan CLI pada instance ECS, secara otomatis memperoleh kredensial keamanan temporary dari peran RAM yang disambungkan ke instans tersebut. Tidak memerlukan konfigurasi atau penyimpanan AccessKey. | Yes | |
RamRoleArn (Recommended) | Assume a RAM role untuk mengoperasikan sumber daya sebagai identitas peran tersebut. Cocok untuk peningkatan hak istimewa temporary atau akses lintas akun. Misalnya, RAM user dengan izin dasar dapat mengasumsikan peran RAM dengan izin manajemen sumber daya, atau mengakses sumber daya di berbagai akun Alibaba Cloud. Menggunakan kredensial keamanan temporary (token STS). | Yes | |
ChainableRamRoleArn | Gunakan role chain untuk mengasumsikan peran secara berurutan demi akses sumber daya lintas akun. | Yes | |
OIDC | Melakukan otentikasi dan mengasumsikan peran melalui token ID yang dikeluarkan oleh penyedia identitas eksternal yang kompatibel dengan OIDC (OpenID Connect). Direkomendasikan untuk Pod ACK/ACS dengan RRSA (RAM Roles for Service Accounts) yang diaktifkan. | Yes | |
CloudSSO | Untuk perusahaan multi-akun yang menggunakan Cloud SSO dan Resource Directory. Menggunakan masuk berbasis browser dengan dukungan MFA, mirip dengan OAuth. | No | |
External | Memanggil program eksekusi eksternal untuk memperoleh kredensial secara dinamis (AccessKey atau token keamanan temporary). Cocok untuk skenario penyedia kredensial kustom. | Yes | |
CredentialsURI | Memperoleh kredensial keamanan temporary (token STS) dari URI HTTP yang Anda sediakan. Cocok untuk layanan distribusi kredensial yang di-host sendiri. | No | |
StsToken | Secara manual menyediakan kredensial keamanan temporary (token STS). Token harus diperbarui secara manual setelah kedaluwarsa. | Yes | |
BearerToken | Menggunakan bearer token untuk mengotentikasi layanan API Alibaba Cloud. Cocok untuk skenario otomatis seperti CI/CD. | Yes | |
AK (Not Recommended) | Menggunakan AccessKey jangka panjang dari Akun Alibaba Cloud atau RAM user untuk otentikasi langsung. Kredensial ini berlaku permanen dan relatif kurang aman. Jika Anda harus menggunakan metode ini, kami menyarankan agar terlebih dahulu meninjau AccessKey best practices. | Yes |
Jika Anda menggunakan Cloud Shell, sistem secara otomatis mengonfigurasi kredensial sementara. Identitasnya adalah RAM user atau peran yang sedang masuk ke Konsol, dan izinnya konsisten dengan identitas tersebut. Anda dapat menjalankan perintah CLI tanpa konfigurasi manual.
Konfigurasi kredensial
Alibaba Cloud CLI mendukung dua metode konfigurasi kredensial: konfigurasi interaktif dan konfigurasi non-interaktif.
Konfigurasi interaktif
Konfigurasi interaktif menggunakan wizard command line yang memandu Anda melalui proses konfigurasi kredensial. Sistem akan meminta Anda memasukkan setiap parameter kredensial secara berurutan. Metode ini cocok untuk lingkungan pengembangan lokal atau konfigurasi pertama kali.
aliyun configure --mode <AuthenticateMode> --profile <ProfileName>Contoh: membuat profil kredensial EcsRamRole bernama EcsProfile:
aliyun configure --mode EcsRamRole --profile EcsProfileBerikut contoh sesi interaktif:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode...
Ecs Ram Role []: ECSAdmin
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en: en
Saving profile[EcsProfile] ...Done.Konfigurasi non-interaktif
Tentukan parameter konfigurasi kredensial langsung melalui argumen command line tanpa input interaktif. Metode ini cocok untuk skenario otomatisasi seperti skrip dan pipeline CI/CD.
Contoh: membuat profil kredensial AK bernama AkProfile:
Bash
aliyun configure set \
--profile AkProfile \
--mode AK \
--access-key-id ************ \
--access-key-secret ************ \
--region "cn-shanghai"PowerShell
aliyun configure set `
--profile AkProfile `
--mode AK `
--access-key-id ************ `
--access-key-secret ************ `
--region "cn-shanghai"Untuk parameter konfigurasi yang didukung oleh setiap jenis kredensial, lihat halaman konfigurasi detail masing-masing jenis kredensial. Parameter berikut umum untuk semua jenis kredensial:
Common parameters | Description |
| Nama profil. Jika tidak ditentukan, active profile akan digunakan. |
| Jenis kredensial. Contoh: |
| ID wilayah default, seperti |
Tabel Select a credential type menunjukkan jenis-jenis yang mendukung konfigurasi non-interaktif.
Anda dapat membuat beberapa profil untuk jenis kredensial yang sama dengan nama unik. Misalnya, buat profil AK ak-dev dan ak-prod untuk pengembangan dan produksi.
Verifikasi konfigurasi kredensial
Setelah kredensial dikonfigurasi, jalankan perintah berikut untuk memverifikasi bahwa kredensial tersebut valid:
aliyun sts get-caller-identityJika kredensial dikonfigurasi dengan benar, output-nya mirip dengan berikut:
Jika identitas yang diautentikasi adalah RAM user:
{ "AccountId": "173305794806****", "Arn": "acs:ram::173305794806****:user/<user-name>", "IdentityType": "RAMUser", "PrincipalId": "20407046578681****", "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****", "UserId": "20407046578681****" }Jika identitas yang diautentikasi adalah RAM role:
{ "AccountId": "191317683912****", "Arn": "acs:ram::191317683912****:assumed-role/<role-name>/<role-session-name>", "IdentityType": "AssumedRoleUser", "PrincipalId": "30004467717606****:<role-session-name>", "RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****", "RoleId": "30004467717606****" }
Verifikasi yang berhasil hanya menunjukkan bahwa otentikasi berhasil. Untuk mengelola sumber daya, Anda juga harus menyambungkan kebijakan izin yang sesuai ke identitas yang terkait dengan kredensial tersebut.
Kelola kredensial
Gunakan subperintah aliyun configure untuk melihat, beralih, memodifikasi, dan menghapus profil kredensial.
Lihat konfigurasi
Lihat daftar profil dan profil aktif
Lihat semua kredensial yang telah dikonfigurasi beserta statusnya pada mesin saat ini. Gunakan perintah ini untuk memeriksa informasi ringkas profil kredensial, seperti nama profil dan jenis kredensial, serta mengidentifikasi profil aktif.
aliyun configure listBerikut contoh output. Tanda bintang (*) menandai profil kredensial aktif. Profil aktif adalah kumpulan kredensial dan parameter default (seperti wilayah dan bahasa) yang digunakan oleh CLI. Kecuali Anda menentukan profil berbeda dengan menggunakan parameter --profile atau variabel lingkungan, semua perintah akan menggunakan profil ini.
Profile | Credential | Valid | Region | Language
--------- | ------------------ | ------- | ---------------- | --------
default | AK:***UyLX | Valid | cn-shanghai | en
OAuthProfile | OAuth:fiA5bnZkyw@CN | Valid | cn-hangzhou | en
EcsProfile * | EcsRamRole:ecs-role-name | Valid | cn-beijing | zhLihat detail profil
Jalankan perintah berikut untuk melihat informasi detail profil kredensial tertentu:
aliyun configure get [--profile <ProfileName>] [<SETTING_NAME>...]SETTING_NAME: Nama pengaturan yang ingin dilihat. Anda dapat menentukan beberapa pengaturan sekaligus. Jika tidak ditentukan, semua informasi profil kredensial akan ditampilkan. Jika pengaturan yang ditentukan tidak ada, perintah tidak menghasilkan output.
Contoh 1: Lihat detail profil bernama OAuthProfile:
aliyun configure get --profile OAuthProfileOutput:
{
"name": "OAuthProfile",
"mode": "OAuth",
"access_key_id": "STS.9jYc5erFPDLrwNGWc7Sob2ZRHenhHfz7pw9*************",
"access_key_secret": "3AcNFz37QykuHEwgzWramXGZaCrM1mDHpG1s7v******",
"sts_token": "CAIS5gJ1q6Ft5DqyfSjI2KnsKI/Rn5lx846Zd******",
"region_id": "cn-hangzhou",
"output_format": "json",
"language": "zh",
"sts_expiration": 1776751437,
"oauth_access_token": "eyJhbGciOiJSUzI1NiIsI*******",
"oauth_refresh_token": "ALGuHPAmSWxR5ynSsoRXhWpUtsxXHcLpGLnZqVvVXZDkjcbMsMasoshv1MnyRhkTq******",
"oauth_access_token_expire": 1776751436,
"oauth_site_type": "CN"
}Contoh 2: Lihat hanya nama profil, jenis kredensial, dan bahasa default untuk OAuthProfile:
aliyun configure get --profile OAuthProfile profile mode languageOutput:
profile=OAuthProfile
mode=OAuth
language=enLokasi file konfigurasi
Untuk melihat atau mencadangkan file konfigurasi kredensial secara manual, temukan di lokasi berikut:
Operating system | Storage path |
Linux / macOS |
|
Windows |
|
Beralih profil
Beralih ke profil aktif
Beralih ke profil yang ditentukan sebagai profil aktif. Alibaba Cloud CLI mendukung perintah aliyun configure switch sejak v3.0.214. Setelah beralih berhasil, semua permintaan berikutnya yang tidak secara eksplisit menentukan kredensial dengan parameter --profile akan secara otomatis menggunakan profil ini.
aliyun configure switch --profile <ProfileName>Jalankan aliyun configure list untuk memastikan nama profil tujuan sebelum beralih.
Contoh: Beralih ke profil bernama prod:
aliyun configure switch --profile prodSetelah beralih, jalankan aliyun configure list untuk memastikan profil tujuan ditandai dengan *.
Gunakan profil untuk satu perintah
Gunakan parameter --profile dalam satu perintah untuk menentukan profil secara sementara. Ini tidak memengaruhi profil aktif.
Contoh: Gunakan profil prod untuk mengkueri daftar wilayah ECS:
aliyun ecs describe-regions --profile prodModifikasi profil
Gunakan aliyun configure set untuk memodifikasi nilai parameter profil yang sudah ada. Anda hanya perlu menentukan parameter yang ingin diubah. Parameter yang tidak ditentukan tetap tidak berubah.
aliyun configure set --profile <ProfileName> --<ParameterName> <NewValue>Parameter umum:
--region: Wilayah default--language: Bahasa output (zh / en)
Untuk parameter detail, lihat dokumentasi masing-masing jenis kredensial.
Contoh: Modifikasi wilayah default profil default:
aliyun configure set --profile default --region cn-shanghaiMemodifikasi profil secara otomatis menjadikannya sebagai profil aktif.
Hapus profil
Jalankan perintah berikut untuk menghapus profil tertentu:
aliyun configure delete --profile <ProfileName>Contoh: Hapus profil bernama dev:
aliyun configure delete --profile devOperasi penghapusan tidak dapat dikembalikan. Jika Anda menghapus profil aktif, profil pertama dalam daftar secara otomatis menjadi profil aktif baru.
Setelah penghapusan, jalankan perintah aliyun configure list untuk memastikan profil telah dihapus dari daftar.
FAQ
Apa yang harus dilakukan jika saya memasukkan informasi salah selama konfigurasi interaktif?
Gunakan aliyun configure set untuk memodifikasi field yang sesuai. Anda tidak perlu mengonfigurasi ulang dari awal. Contoh:
aliyun configure set --profile <ProfileName> --<ParameterName> <CorrectValue>Perintah CLI tidak menggunakan profil aktif
CLI menentukan profil aktual yang digunakan berdasarkan prioritas berikut (dari tertinggi ke terendah). Prioritas lebih tinggi menggantikan prioritas lebih rendah:
Parameter command line
--profile: Berlaku hanya untuk perintah saat ini dan memiliki prioritas tertinggi.Variabel lingkungan
ALIBABA_CLOUD_PROFILE: Berlaku untuk semua perintah dalam sesi terminal saat ini.Profil aktif: Profil yang ditandai dengan
*dalam output perintahaliyun configure list. Pengaturan ini bersifat persisten.
Jika hasil perintah tidak sesuai ekspektasi, periksa apakah parameter --profile atau variabel lingkungan ALIBABA_CLOUD_PROFILE telah diatur, karena keduanya menggantikan profil aktif. Jalankan echo $ALIBABA_CLOUD_PROFILE untuk memeriksa apakah variabel lingkungan tersebut diatur.
Error: load current configuration failed unknown profile default
Pesan error lengkap:
ERROR: load current configuration failed unknown profile default, run configure to checkPenyebab:
Semua profil kredensial telah dihapus, sehingga Alibaba Cloud CLI tidak dapat berfungsi dengan baik.
Solusi:
Hapus secara manual file config.json dan jalankan perintah aliyun configure untuk mengonfigurasi ulang kredensial. Untuk lokasi file, lihat Lokasi file konfigurasi. Misalnya, pada Linux atau macOS, jalankan perintah berikut untuk menghapus file:
rm ~/.aliyun/config.json