ack-ram-tool adalah command-line interface (CLI) yang disediakan oleh Container Service for Kubernetes untuk membantu Anda mengelola izin Resource Access Management (RAM) dan Role-Based Access Control (RBAC) pada kluster Anda. Ketika pengguna meninggalkan organisasi atau izin mereka berubah, gunakan ack-ram-tool untuk segera mencabut izin pengguna yang telah dihapus dari kluster Anda dan mencegah risiko keamanan.
Langkah 1: Instal ack-ram-tool
Unduh klien ack-ram-tool sesuai arsitektur lingkungan Anda.
Jalankan perintah berikut untuk memberikan izin eksekusi pada program klien.
chmod +x ./ack-ram-toolJalankan perintah berikut untuk menyalin file ack-ram-tool ke direktori yang termasuk dalam PATH sistem.
mkdir -p $HOME/bin && cp ./ack-ram-tool $HOME/bin/ack-ram-tool && export PATH=$HOME/bin:$PATH(Opsional) Jalankan perintah berikut untuk membuat konfigurasi PATH untuk
$HOME/binbersifat persisten.echo 'export PATH=$HOME/bin:$PATH' >> ~/.bash_profileJalankan perintah berikut untuk memeriksa versi klien. Jika nomor versi dikembalikan, klien ack-ram-tool telah berhasil diinstal.
ack-ram-tool version
Langkah 2: Konfigurasikan kredensial Alibaba Cloud
Pengguna RAM Alibaba Cloud dan pengguna SSO dapat mengonfigurasi serta memperoleh kredensial akses ke sumber daya cloud menggunakan metode berikut.
Jika lingkungan Anda saat ini memiliki variabel lingkungan terkait kredensial akses, ack-ram-tool akan memprioritaskan kredensial yang dikonfigurasi dalam variabel tersebut. Anda dapat menambahkan parameter --ignore-env-credentials saat menjalankan perintah ack-ram-tool untuk mengabaikannya. Untuk informasi lebih lanjut tentang variabel lingkungan terkait kredensial yang didukung oleh ack-ram-tool, lihat Credentials.
RAM users
Klien ack-ram-tool bergantung pada kredensial kunci Alibaba Cloud yang dikonfigurasi secara lokal untuk mengakses RAM guna melakukan otentikasi identitas.
Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Alibaba Cloud CLI.
SSO users
Untuk pengguna Alibaba CloudSSO, Anda dapat menggunakan tool command-line interface (CLI) acs-sso yang disediakan oleh layanan CloudSSO untuk login dan memperoleh kredensial akses ke sumber daya cloud. Untuk informasi lebih lanjut tentang acs-sso, lihat Use the CLI to log on to CloudSSO and access Alibaba Cloud resources. Tool Alibaba Cloud CLI mendukung mode external, yang memungkinkan Anda memperoleh kredensial sumber daya secara dinamis dengan menjalankan tool baris perintah eksternal. Jalankan perintah berikut untuk login ke CloudSSO dan mengonfigurasi kredensial secara otomatis 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!!!
..............8888888888888888888888 ........=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+. ..........................?ND8888888888888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............Langkah 3: Konfigurasikan izin yang diperlukan untuk kredensial akses ack-ram-tool
Kredensial akses yang digunakan oleh ack-ram-tool memerlukan izin RAM dan izin RBAC kluster.
Berikan izin berikut kepada pengguna RAM. Untuk informasi lebih lanjut, lihat Manage the permissions of a RAM user.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cs:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ram:ListUsers", "ram:ListRoles" ], "Resource": "*" } ] }Berikan izin administratif RBAC kluster kepada pengguna RAM tersebut.
Login ke ACK console. Pada panel navigasi kiri, pilih Authorizations.
Pada halaman Authorization, klik tab RAM Users. Temukan pengguna RAM yang ingin Anda tambahkan, klik Manage Permissions di kolom kanan, lalu buka halaman Permission Management.
Klik Add Permissions. Pilih Cluster dan Namespace. Atur Permission Management menjadi Administrator, lalu klik Submit Authorization.
Langkah 4: Kueri binding RBAC pengguna RAM tertentu dalam kluster
Anda dapat menjalankan perintah ack-ram-tool rbac scan-user-permissions untuk mengkueri informasi binding RBAC pengguna RAM tertentu dalam kluster tujuan.
Kueri hanya binding RBAC pengguna dan role RAM yang telah dihapus
Jalankan perintah berikut untuk melihat informasi binding RBAC pengguna dan role RAM yang telah dihapus dalam 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.
Nilai UserType | Deskripsi |
RamRole | RAM role |
RamUser | RAM user |
Root | Alibaba Cloud account |
Kueri binding RBAC semua pengguna dan role RAM
Kueri binding RBAC untuk semua kluster di bawah Akun Alibaba Cloud saat ini
Langkah 5: Bersihkan binding RBAC pengguna RAM atau role RAM tertentu dan purge izin kubeconfig
Anda dapat menjalankan perintah ack-ram-tool rbac cleanup-user-permissions untuk membersihkan binding RBAC pengguna RAM atau role RAM tertentu dalam kluster tujuan dan purge kubeconfig pengguna tersebut.
Jika log berisi
this user has been active in the past 7 days, artinya pengguna RAM atau role RAM tujuan memiliki catatan akses kluster dalam 7 hari terakhir. Lakukan dengan hati-hati.Sebelum operasi pembersihan, ack-ram-tool akan mencadangkan file JSON asli dari binding yang akan dihapus ke folder bernama sesuai ID kluster di direktori saat ini.
Bersihkan izin pengguna RAM atau role RAM dalam satu kluster
Jalankan perintah berikut untuk membersihkan izin pengguna RAM atau role RAM tertentu dalam satu kluster.
Untuk memperoleh <UID> dalam 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 pengguna RAM atau role RAM dalam semua kluster
Jalankan perintah berikut untuk membersihkan binding RBAC pengguna RAM atau role tertentu dalam semua kluster di bawah Akun Alibaba Cloud saat ini dan purge kubeconfig mereka.
ack-ram-tool rbac cleanup-user-permissions -c all -u <UID>Output yang diharapkan:
Referensi
Untuk informasi lebih lanjut tentang cara mengelola kubeconfig, lihat Purge a kubeconfig.