Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan izin Argo CD
Kemampuan terkelola Argo CD terintegrasi dengan AWS Identity Center untuk otentikasi dan menggunakan peran RBAC bawaan untuk otorisasi. Topik ini menjelaskan cara mengonfigurasi izin untuk pengguna dan tim.
Cara kerja izin dengan Argo CD
Kemampuan Argo CD menggunakan AWS Identity Center untuk otentikasi dan menyediakan tiga peran RBAC bawaan untuk otorisasi.
Saat pengguna mengakses Argo CD:
-
Mereka mengautentikasi menggunakan Pusat AWS Identitas (yang dapat berfederasi ke penyedia identitas perusahaan Anda)
-
AWS Identity Center menyediakan informasi pengguna dan grup ke Argo CD
-
Argo CD memetakan pengguna dan grup ke peran RBAC berdasarkan konfigurasi Anda
-
Pengguna hanya melihat aplikasi dan sumber daya yang mereka miliki izin untuk diakses
Peran RBAC bawaan
Kemampuan Argo CD menyediakan tiga peran bawaan yang Anda petakan ke pengguna dan grup Pusat AWS Identitas.
ADMIN
Akses penuh ke semua aplikasi dan pengaturan:
-
Membuat, memperbarui, dan menghapus aplikasi dan ApplicationSets
-
Kelola konfigurasi Argo CD
-
Mendaftarkan dan mengelola klaster target penerapan
-
Konfigurasikan akses repositori
-
Kelola proyek
-
Lihat semua status dan riwayat aplikasi
PENYUNTING
Dapat membuat dan memodifikasi aplikasi tetapi tidak dapat mengubah pengaturan Argo CD:
-
Membuat dan memperbarui aplikasi dan ApplicationSets
-
Sinkronkan dan segarkan aplikasi
-
Lihat status dan riwayat aplikasi
-
Tidak dapat menghapus aplikasi
-
Tidak dapat mengubah konfigurasi Argo CD
-
Tidak dapat mengelola cluster atau repositori
PENAMPIL
Akses hanya-baca ke aplikasi:
-
Lihat status dan riwayat aplikasi
-
Lihat manifes dan sumber daya aplikasi
-
Tidak dapat membuat perubahan apa pun
-
Tidak dapat menyinkronkan atau menyegarkan aplikasi
Konfigurasikan pemetaan peran
Peta pengguna dan grup Pusat AWS Identitas ke peran CD Argo saat membuat atau memperbarui kemampuan.
Contoh pemetaan peran:
{ "rbacRoleMapping": { "ADMIN": ["AdminGroup", "alice@example.com"], "EDITOR": ["DeveloperGroup", "DevOpsTeam"], "VIEWER": ["ReadOnlyGroup", "bob@example.com"] } }
catatan
Nama peran peka huruf besar/kecil dan harus huruf besar (ADMIN, EDITOR, VIEWER).
penting
Integrasi Kemampuan EKS dengan AWS Identity Center mendukung hingga 1.000 identitas per kemampuan Argo CD. Identitas dapat berupa pengguna atau grup.
Perbarui pemetaan peran:
aws eksfe update-capability \ --regionus-east-1\ --cluster-namecluster\ --capability-namecapname\ --endpoint "https://eks.ap-northeast-2.amazonaws.com" \ --role-arn "arn:aws:iam::[.replaceable]111122223333:role/[.replaceable]`EKSCapabilityRole`" \ --configuration '{ "argoCd": { "rbacRoleMappings": { "addOrUpdateRoleMappings": [ { "role": "ADMIN", "identities": [ { "id": "686103e0-f051-7068-b225-e6392b959d9e", "type": "SSO_USER" } ] } ] } } }'
Penggunaan akun admin
Akun admin dirancang untuk pengaturan awal dan tugas administratif seperti mendaftarkan cluster dan mengkonfigurasi repositori.
Kapan akun admin sesuai:
-
Pengaturan dan konfigurasi kemampuan awal
-
Pengembangan solo atau demonstrasi cepat
-
Tugas administratif (pendaftaran cluster, konfigurasi repositori, pembuatan proyek)
Praktik terbaik untuk akun admin:
-
Jangan komit token akun ke kontrol versi
-
Putar token segera jika terpapar
-
Batasi penggunaan token akun untuk pengaturan dan tugas administratif
-
Atur waktu kedaluwarsa pendek (maksimum 12 jam)
-
Hanya 5 token akun yang dapat dibuat pada waktu tertentu
Kapan menggunakan akses berbasis proyek sebagai gantinya:
-
Lingkungan pengembangan bersama dengan banyak pengguna
-
Lingkungan apa pun yang menyerupai produksi
-
Bila Anda membutuhkan jejak audit tentang siapa yang melakukan tindakan
-
Ketika Anda perlu menegakkan pembatasan sumber daya atau batas akses
Untuk lingkungan produksi dan skenario multi-pengguna, gunakan kontrol akses berbasis proyek dengan peran RBAC khusus yang dipetakan ke grup Pusat Identitas. AWS
Kontrol akses berbasis proyek
Gunakan Argo CD Projects (AppProject) untuk menyediakan kontrol akses halus dan isolasi sumber daya untuk tim.
Proyek menyediakan:
-
Pembatasan sumber: Batasi repositori Git mana yang dapat digunakan
-
Pembatasan tujuan: Batasi cluster dan ruang nama mana yang dapat ditargetkan
-
Pembatasan sumber daya: Batasi tipe sumber daya Kubernetes mana yang dapat digunakan
-
Integrasi RBAC: Memetakan proyek ke grup Pusat AWS Identitas atau peran CD Argo
Contoh proyek untuk isolasi tim:
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a namespace: argocd spec: description: Team A applications # Source restrictions sourceRepos: - https://github.com/myorg/team-a-apps # Destination restrictions destinations: - namespace: team-a-* server: arn:aws:eks:us-west-2:111122223333:cluster/production # Resource restrictions clusterResourceWhitelist: - group: '' kind: Namespace namespaceResourceWhitelist: - group: 'apps' kind: Deployment - group: '' kind: Service - group: '' kind: ConfigMap
Tetapkan pengguna ke proyek:
Pengguna dengan peran EDITOR atau VIEWER dapat dibatasi untuk proyek tertentu. Pengguna ADMIN memiliki akses ke semua proyek.
apiVersion: argoproj.io/v1alpha1 kind: AppProject metadata: name: team-a spec: # ... project configuration ... # Map Identity Center groups to project roles roles: - name: developer description: Team A developers policies: - p, proj:team-a:developer, applications, *, team-a/*, allow groups: - TeamADevelopers - name: viewer description: Team A viewers policies: - p, proj:team-a:viewer, applications, get, team-a/*, allow groups: - TeamAViewers
Pola izin umum
Pola 1: Tim admin dengan akses penuh
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
Pola 2: Pengembang dapat menyebarkan, orang lain dapat melihat
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["DevelopmentTeam", "DevOpsTeam"], "VIEWER": ["AllEmployees"] } }
Pola 3: Isolasi berbasis tim dengan proyek
-
Petakan semua pengembang ke peran EDITOR
-
Buat terpisah AppProjects untuk setiap tim
-
Gunakan peran proyek untuk membatasi akses ke aplikasi khusus tim
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["AllDevelopers"] } }
Kemudian buat proyek dengan batasan khusus tim dan pemetaan peran.
Praktik terbaik
Gunakan grup alih-alih pengguna individu: Petakan grup Pusat AWS Identitas ke peran CD Argo daripada pengguna individu untuk pengelolaan yang lebih mudah.
Mulailah dengan hak istimewa paling sedikit: Mulailah dengan akses VIEWER dan berikan EDITOR atau ADMIN sesuai kebutuhan.
Gunakan proyek untuk isolasi tim: Buat terpisah AppProjects untuk tim atau lingkungan yang berbeda untuk menegakkan batasan.
Federasi Pusat Identitas Leverage: Konfigurasikan Pusat AWS Identitas untuk berfederasi dengan penyedia identitas perusahaan Anda untuk manajemen pengguna terpusat.
Tinjauan akses reguler: Tinjau pemetaan peran dan tugas proyek secara berkala untuk memastikan tingkat akses yang sesuai.
Batasi akses klaster: Ingat bahwa Argo CD RBAC mengontrol akses ke sumber daya dan operasi Argo CD, tetapi tidak sesuai dengan Kubernetes RBAC. Pengguna dengan akses CD Argo dapat menyebarkan aplikasi ke cluster yang dapat diakses oleh Argo CD. Batasi cluster mana Argo CD dapat mengakses dan menggunakan batasan tujuan proyek untuk mengontrol di mana aplikasi dapat digunakan.
AWS izin layanan
Untuk menggunakan AWS layanan secara langsung di sumber daya Aplikasi (tanpa membuat sumber daya Repositori), lampirkan izin IAM yang diperlukan ke Peran Kemampuan.
ECR untuk grafik Helm:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
CodeCommit repositori:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:GitPull" ], "Resource": "arn:aws:codecommit:region:account-id:repository-name" } ] }
CodeConnections (GitHub, GitLab, Bitbucket):
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeconnections:UseConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/connection-id" } ] }
Lihat Konfigurasikan akses repositori detail tentang penggunaan integrasi ini.
Langkah selanjutnya
-
Bekerja dengan Argo CD- Pelajari cara membuat aplikasi dan mengelola penerapan
-
Konsep Argo CD- Memahami konsep Argo CD termasuk Proyek
-
Pertimbangan keamanan untuk Kemampuan EKS- Tinjau praktik terbaik keamanan untuk kemampuan