ack-ram-tool adalah alat command-line yang disediakan oleh Container Service for Kubernetes untuk membantu Anda mengelola izin RAM dan RBAC dalam Container Service for Kubernetes. Ketika seorang pengguna meninggalkan organisasi Anda atau izinnya perlu diubah, Anda dapat menggunakan ack-ram-tool untuk segera mencabut izin pengguna tersebut dari Container Service for Kubernetes guna mengurangi risiko keamanan.
Langkah 1: Instal ack-ram-tool
-
Unduh client ack-ram-tool sesuai OS dan arsitektur Anda.
-
Jalankan perintah berikut untuk memberikan izin eksekusi pada program client:
chmod +x ./ack-ram-tool -
Jalankan perintah berikut untuk memindahkan file
ack-ram-toolke direktori dalamPATHsistem Anda:mkdir -p $HOME/bin && cp ./ack-ram-tool $HOME/bin/ack-ram-tool && export PATH=$HOME/bin:$PATH -
(Opsional) Jalankan perintah berikut untuk menyimpan konfigurasi
PATHsecara permanen di~/.bash_profile:echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profile -
Jalankan perintah berikut untuk memverifikasi instalasi. Perintah ini harus mengembalikan versi client.
ack-ram-tool version
Langkah 2: Konfigurasikan kredensial Alibaba Cloud
RAM User dan pengguna CloudSSO dapat mengonfigurasi Credentials mereka untuk mengakses sumber daya cloud menggunakan salah satu metode berikut.
Jika variabel lingkungan terkait kredensial tersedia di lingkungan Anda, ack-ram-tool akan menggunakannya secara default. Untuk mengabaikan variabel lingkungan ini, tambahkan flag --ignore-env-credentials saat menjalankan perintah ack-ram-tool. Untuk informasi lebih lanjut tentang variabel lingkungan terkait kredensial yang didukung oleh ack-ram-tool, lihat Credentials.
RAM user
Client ack-ram-tool menggunakan Credentials Alibaba Cloud yang dikonfigurasi secara lokal untuk melakukan autentikasi dengan RAM.
Untuk informasi lebih lanjut tentang cara mengonfigurasi Credentials akses, lihat Alibaba Cloud CLI.
Pengguna CloudSSO
Untuk pengguna CloudSSO, Anda dapat menggunakan acs-sso, alat CLI yang disediakan oleh CloudSSO, untuk login dan mendapatkan Credentials guna mengakses sumber daya cloud. Untuk informasi lebih lanjut tentang acs-sso, lihat Gunakan CLI untuk login ke CloudSSO dan mengakses sumber daya Alibaba Cloud. Alibaba Cloud CLI mendukung mode external, yang memungkinkan Anda mendapatkan Credentials secara dinamis dengan menjalankan perintah eksternal. Jalankan perintah berikut untuk mengonfigurasi login otomatis CloudSSO dan pengambilan kredensial di mesin lokal Anda.
aliyun configure --mode External --profile sso
Configuring profile 'sso' in 'External' authenticate mode...
Process Command [acs-sso login --profile sso]:
Default Region Id [cn-shanghai]:
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en:
Saving profile[sso] ...Done.
Configure Done!!!
..............888888888888888888888 ........=8888888888888888888D=..............
...........88888888888888888888888 ..........D8888888888888888888888I...........
.........,8888888888888ZI: ...........................=Z88D8888888888D..........
.........+88888888 ..........................................88888888D..........
.........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
.........+88888888 ............. ************* ..............O8888888D..........
.........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
.........+88888888...........................................88888888D..........
..........D888888888888DO+. ..........................?ND8888888888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............
Langkah 3: Konfigurasikan izin untuk kredensial
Kredensial akses yang digunakan oleh ack-ram-tool memerlukan izin RAM dan izin RBAC kluster.
-
Berikan izin berikut kepada RAM user. Untuk informasi selengkapnya, lihat Mengelola izin pengguna RAM.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:ListUsers", "ram:ListRoles" ], "Resource": "*" } ] } -
Berikan izin administrator RBAC kepada RAM user untuk kluster tersebut.
Login ke Konsol ACK. Di panel navigasi kiri, klik Authorizations.
-
Di halaman Authorizations, klik tab RAM User, temukan RAM user yang dituju, lalu klik Modify Permissions di kolom Actions untuk membuka halaman Permission Management.
-
Klik Add Permissions, pilih Cluster dan Namespace yang dituju, atur Permission Management menjadi Administrator, lalu klik Submit.
Langkah 4: Kueri binding RBAC untuk pengguna RAM
Anda dapat menjalankan perintah ack-ram-tool rbac scan-user-permissions untuk mengkueri binding RBAC untuk pengguna RAM tertentu di kluster yang dituju.
Kueri binding untuk pengguna dan peran yang telah dihapus
Jalankan perintah berikut untuk melihat binding RBAC untuk pengguna RAM dan peran RAM yang telah dihapus di kluster.
ack-ram-tool rbac scan-user-permissions -c <cluster ID>
Output yang diharapkan:
2023-12-12T15:34:37+08:00 INFO start to scan users and bindings for cluster c401890df511a4362bf24bece4da****
2023-12-12T15:34:43+08:00 WARN by default, only deleted users are included. Use the --all-users flag to include all users
UID UserType UserName Binding
30086537005566**** (deleted) RamRole ClusterRoleBinding/-/30086537005566****-clusterrolebinding
24320678733226**** (deleted) RamUser ClusterRoleBinding/-/24320678733226****-clusterrolebinding
Tabel berikut menjelaskan parameter UserType.
|
UserType |
Description |
|
RamRole |
Peran RAM |
|
RamUser |
Pengguna RAM |
|
Root |
Akun Alibaba Cloud |
Semua pengguna dan peran
Semua kluster
Langkah 5: Bersihkan izin
Anda dapat menjalankan perintah ack-ram-tool rbac cleanup-user-permissions untuk membersihkan binding RBAC untuk pengguna RAM atau peran RAM tertentu di kluster yang dituju dan mencabut kubeconfig pengguna tersebut.
-
Jika log berisi pesan
this user has been active in the past 7 days, artinya pengguna RAM atau peran RAM yang dituju telah mengakses kluster dalam tujuh hari terakhir. Lakukan tindakan ini dengan hati-hati. -
Sebelum melakukan pembersihan, ack-ram-tool menyimpan cadangan file JSON asli dari setiap binding yang akan dihapus ke folder di direktori saat ini yang diberi nama sesuai ID kluster.
Bersihkan izin di satu kluster
Jalankan perintah berikut untuk membersihkan izin untuk pengguna RAM atau peran RAM tertentu di satu kluster.
Untuk mendapatkan <UID> untuk perintah berikut, jalankan perintah ack-ram-tool rbac scan-user-permissions -c <cluster ID>.
ack-ram-tool rbac cleanup-user-permissions -c <cluster ID> -u <UID>
Output yang diharapkan:
Bersihkan izin di semua kluster
Jalankan perintah berikut untuk membersihkan binding RBAC untuk pengguna RAM atau peran RAM tertentu di semua kluster dalam Akun Alibaba Cloud Anda dan mencabut kubeconfig mereka.
ack-ram-tool rbac cleanup-user-permissions -c all -u <UID>
Output yang diharapkan:
Referensi
Untuk mempelajari cara mengelola kubeconfig, lihat Hapus file kubeconfig.