Dengan mengonfigurasi Alibaba Cloud CLI untuk mengasumsikan peran RAM, Anda dapat menggunakan AccessKey berhak istimewa rendah guna secara otomatis memperoleh kredensial sementara STS untuk mengakses sumber daya cloud, tanpa mengekspos langsung AccessKey berhak istimewa tinggi. Topik ini menjelaskan dua metode konfigurasi—RamRoleArn (mengasumsikan peran RAM secara langsung) dan ChainableRamRoleArn (mengasumsikan peran RAM dengan merantai dari kredensial CLI yang sudah ada)—serta skenario penggunaannya.
Persyaratan versi
Versi Alibaba Cloud CLI ≥ 3.3.0. Jalankan aliyun version untuk memeriksa versi saat ini. Jika versinya lebih lama, lihat Instal, update, dan uninstall Alibaba Cloud CLI untuk melakukan peningkatan.
RamRoleArn
RamRoleArn menggunakan AccessKey berhak istimewa rendah untuk mengasumsikan peran RAM dengan hak istimewa lebih tinggi dan memperoleh kredensial sementara STS. AccessKey hanya memerlukan kebijakan AliyunSTSAssumeRoleAccess. Izin efektif ditentukan oleh kebijakan yang dilampirkan pada peran target. Metode ini cocok untuk lingkungan pengembangan lokal dan skenario yang memerlukan pemisahan hak istimewa.
Prasyarat
AccessKey telah dibuat untuk Pengguna RAM dan kebijakan
AliyunSTSAssumeRoleAccesstelah diberikan.Peran RAM target telah dibuat, dan kebijakan kepercayaan peran tersebut mengizinkan Pengguna RAM untuk mengasumsikan peran tersebut.
ARN dari peran RAM target telah diperoleh. Anda dapat melihatnya di halaman detail peran di Konsol RAM. Formatnya adalah
acs:ram::<ACCOUNT_ID>:role/<RoleName>.
Untuk persiapan prasyarat lengkap, lihat langkah-langkah di bawah Gunakan AccessKey secara tidak langsung dalam Gunakan pasangan AccessKey untuk panggilan API.
Konfigurasi kredensial
Konfigurasi interaktif
Jalankan perintah berikut untuk memulai konfigurasi. Ganti
<ProfileName>dengan nama profil kustom (misalnya,RamRoleProfile):aliyun configure --mode RamRoleArn --profile <ProfileName>Masukkan informasi konfigurasi sesuai permintaan:
Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode... Access Key Id []: <yourAccessKeyID> Access Key Secret []: <yourAccessKeySecret> Sts Region []: cn-hangzhou Ram Role Arn []: acs:ram::012345678910****:role/Alice Role Session Name []: alice External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-hangzhou Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[RamRoleArnProfile] ...Done.Saat terminal menampilkan
Configure Donediikuti pesan selamat datang, konfigurasi selesai.
Setelah konfigurasi berhasil, profil tersebut secara otomatis menjadi profil aktif. Untuk beralih ke profil lain, jalankan perintah aliyun configure switch --profile <ProfileName>.
Konfigurasi non-interaktif
Bash
aliyun configure set \
--profile RamRoleArnProfile \
--mode RamRoleArn \
--access-key-id <yourAccessKeyID> \
--access-key-secret <yourAccessKeySecret> \
--sts-region "cn-hangzhou" \
--ram-role-arn "acs:ram::012345678910****:role/Alice" \
--role-session-name "alice" \
--external-id "abcd1234" \
--expired-seconds 900 \
--region "cn-shanghai"PowerShell
aliyun configure set `
--profile RamRoleArnProfile `
--mode RamRoleArn `
--access-key-id <yourAccessKeyID> `
--access-key-secret <yourAccessKeySecret> `
--sts-region "cn-hangzhou" `
--ram-role-arn "acs:ram::012345678910****:role/Alice" `
--role-session-name "alice" `
--external-id "abcd1234" `
--expired-seconds 900 `
--region "cn-shanghai"Verifikasi kredensial
Setelah konfigurasi selesai, jalankan perintah berikut untuk memverifikasi bahwa kredensial berfungsi:
aliyun sts get-caller-identityOutput:
{
"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****"
}Penyegaran kredensial
CLI secara otomatis mengelola penyegaran kredensial tanpa intervensi manual. Sebelum kredensial sementara STS kedaluwarsa, CLI secara otomatis memanggil kembali STS AssumeRole untuk memperoleh kredensial baru. Hal ini tidak memengaruhi perintah CLI yang sedang dijalankan.
ChainableRamRoleArn
ChainableRamRoleArn mengasumsikan peran RAM lain dengan merantai dari profil kredensial CLI yang sudah ada (profil sumber). CLI pertama-tama memperoleh kredensial perantara dari profil sumber, lalu menggunakan kredensial tersebut untuk memanggil STS AssumeRole dan memperoleh kredensial sementara STS akhir. Metode ini cocok untuk skenario perantai peran multi-hop lintas akun atau skenario di mana Anda perlu mengasumsikan peran tambahan berdasarkan EcsRamRole.
Jenis kredensial ChainableRamRoleArn bekerja dengan menentukan profil kredensial sumber, memperoleh kredensial perantara (AccessKey atau kredensial sementara STS) dari profil tersebut, lalu menggunakan kredensial perantara tersebut untuk mengasumsikan peran target dan memperoleh kredensial sementara STS akhir.
Prasyarat
Profil CLI yang valid (profil sumber) sudah ada, seperti profil EcsRamRole, AK, atau RamRoleArn yang telah dikonfigurasi.
Pihak yang berwenang (Pengguna RAM atau peran) yang terkait dengan profil sumber memiliki izin untuk mengasumsikan peran RAM target (kebijakan kepercayaan peran target mengizinkan pihak tersebut untuk mengasumsikannya).
ARN dari peran RAM target telah diperoleh, dalam format
acs:ram::<ACCOUNT_ID>:role/<RoleName>.
Konfigurasi kredensial
Konfigurasi interaktif
Jalankan perintah berikut untuk memulai konfigurasi. Ganti
<ProfileName>dengan nama profil kustom (misalnya,ChainProfile):aliyun configure --mode ChainableRamRoleArn --profile <ProfileName>Masukkan informasi konfigurasi sesuai permintaan:
Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode... Source Profile []: RamRoleArnProfile Sts Region []: cn-hangzhou Ram Role Arn []: acs:ram::012345678910****:role/Alice Role Session Name []: alice External ID []: abcd1234 Expired Seconds [900]: 900 Default Region Id []: cn-hangzhou Default Output Format [json]: json (Only support json) Default Language [zh|en] en: en Saving profile[ChainableProfile] ...Done.CatatanPada contoh di atas,
RamRoleArnProfileadalah nama profil sumber yang sudah ada, dan ARN peran RAM adalah nilai contoh. Gantilah dengan nilai aktual. Anda dapat menekan Enter untuk melewati promptSts RegiondanExternal Id.Saat terminal menampilkan
Configure Donediikuti pesan selamat datang, konfigurasi selesai.
Setelah konfigurasi berhasil, profil tersebut secara otomatis menjadi profil aktif. Untuk beralih ke profil lain, jalankan perintah aliyun configure switch --profile <ProfileName>.
Konfigurasi non-interaktif
Contoh perintah:
Bash
aliyun configure set \
--profile ChainableProfile \
--mode ChainableRamRoleArn \
--source-profile RamRoleArnProfile \
--sts-region "cn-hangzhou" \
--ram-role-arn "acs:ram::012345678910****:role/Alice" \
--role-session-name "alice" \
--external-id "abcd1234" \
--expired-seconds 900 \
--region "cn-shanghai"PowerShell
aliyun configure set `
--profile ChainProfile `
--mode ChainableRamRoleArn `
--region cn-hangzhou `
--source-profile EcsRoleProfile `
--ram-role-arn acs:ram::<UID>:role/<RoleName> `
--role-session-name chain-session `
--expired-seconds 900Profil yang ditentukan oleh --source-profile harus sudah ada dalam file konfigurasi CLI. Jika tidak, kesalahan can not load the source profile: <name> akan dikembalikan. Jalankan aliyun configure list untuk melihat semua profil yang ada.
Verifikasi kredensial
Setelah konfigurasi selesai, jalankan perintah aliyun sts get-caller-identity untuk memverifikasi bahwa kredensial berfungsi.
Penyegaran kredensial
CLI secara otomatis mengelola penyegaran kredensial tanpa intervensi manual. Sebelum kredensial sementara STS kedaluwarsa, CLI pertama-tama menyegarkan kredensial profil sumber (mengikuti logika penyegaran profil sumber, misalnya, EcsRamRole disegarkan melalui IMDS), lalu memanggil kembali STS AssumeRole untuk memperoleh kredensial baru.
Hapus kredensial
Hapus kredensial peran RAM dari konfigurasi lokal CLI:
aliyun configure delete --profile <ProfileName>Jika profil yang dihapus adalah profil aktif saat ini, CLI secara otomatis beralih ke profil pertama dalam daftar profil.