Contribuisci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurare le autorizzazioni di Argo CD
La funzionalità gestita da Argo CD si integra con AWS Identity Center per l'autenticazione e utilizza ruoli RBAC integrati per l'autorizzazione. Questo argomento spiega come configurare le autorizzazioni per utenti e team.
Come funzionano le autorizzazioni con Argo CD
La funzionalità Argo CD utilizza AWS Identity Center per l'autenticazione e fornisce tre ruoli RBAC integrati per l'autorizzazione.
Quando un utente accede ad Argo CD:
-
Si autenticano tramite AWS Identity Center (che può essere collegato al vostro provider di identità aziendale)
-
AWS Identity Center fornisce informazioni su utenti e gruppi su Argo CD
-
Argo CD associa utenti e gruppi ai ruoli RBAC in base alla configurazione
-
Gli utenti vedono solo le applicazioni e le risorse a cui hanno il permesso di accedere
Ruoli RBAC integrati
La funzionalità Argo CD offre tre ruoli integrati che è possibile associare agli utenti e ai gruppi di AWS Identity Center.
AMMINISTRATORE
Accesso completo a tutte le applicazioni e le impostazioni:
-
Creare, aggiornare ed eliminare applicazioni e ApplicationSets
-
Gestire la configurazione di Argo CD
-
Registra e gestisci i cluster di destinazione della distribuzione
-
Configura l'accesso al repository
-
Gestisci progetti
-
Visualizza lo stato e la cronologia di tutte le candidature
EDITOR
Può creare e modificare applicazioni ma non può modificare le impostazioni del CD Argo:
-
Crea e aggiorna applicazioni e ApplicationSets
-
Sincronizzazione e aggiornamento delle applicazioni
-
Visualizza lo stato e la cronologia delle applicazioni
-
Impossibile eliminare le applicazioni
-
Impossibile modificare la configurazione di Argo CD
-
Non è possibile gestire cluster o repository
VISUALIZZATORE
Accesso in sola lettura alle applicazioni:
-
Visualizza lo stato e la cronologia delle applicazioni
-
Visualizza i manifesti e le risorse dell'applicazione
-
Non è possibile apportare modifiche
-
Impossibile sincronizzare o aggiornare le applicazioni
Configura le mappature dei ruoli
Associa gli utenti e i gruppi di AWS Identity Center ai ruoli di Argo CD durante la creazione o l'aggiornamento della funzionalità.
Esempio di mappatura dei ruoli:
{ "rbacRoleMapping": { "ADMIN": ["AdminGroup", "alice@example.com"], "EDITOR": ["DeveloperGroup", "DevOpsTeam"], "VIEWER": ["ReadOnlyGroup", "bob@example.com"] } }
Nota
I nomi dei ruoli fanno distinzione tra maiuscole e minuscole e devono essere maiuscole (ADMIN, EDITOR, VIEWER).
Importante
L'integrazione di EKS Capabilities con AWS Identity Center supporta fino a 1.000 identità per funzionalità Argo CD. Un'identità può essere un utente o un gruppo.
Aggiorna le mappature dei ruoli:
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" } ] } ] } } }'
Utilizzo dell'account amministratore
L'account amministratore è progettato per la configurazione iniziale e le attività amministrative come la registrazione di cluster e la configurazione dei repository.
Quando l'account amministratore è appropriato:
-
Configurazione e configurazione delle funzionalità iniziali
-
Sviluppo individuale o dimostrazioni rapide
-
Attività amministrative (registrazione del cluster, configurazione del repository, creazione di progetti)
Procedure consigliate per l'account amministratore:
-
Non affidare i token dell'account al controllo delle versioni
-
Ruota immediatamente i token se esposti
-
Limita l'utilizzo dei token dell'account alle attività di configurazione e amministrative
-
Imposta tempi di scadenza brevi (massimo 12 ore)
-
È possibile creare solo 5 token di account alla volta
Quando utilizzare invece l'accesso basato su progetti:
-
Ambienti di sviluppo condivisi con più utenti
-
Qualsiasi ambiente che assomigli alla produzione
-
Quando hai bisogno di audit trail che indichino chi ha eseguito le azioni
-
Quando è necessario imporre restrizioni sulle risorse o limiti di accesso
Per ambienti di produzione e scenari multiutente, utilizza il controllo degli accessi basato su progetti con ruoli RBAC dedicati mappati ai gruppi di Identity Center. AWS
Controllo degli accessi basato su progetti
Usa Argo CD Projects (AppProject) per fornire un controllo granulare degli accessi e l'isolamento delle risorse per i team.
I progetti forniscono:
-
Restrizioni all'origine: limita i repository Git che possono essere utilizzati
-
Restrizioni sulla destinazione: limita i cluster e i namespace a cui è possibile rivolgersi
-
Restrizioni sulle risorse: limita i tipi di risorse Kubernetes che possono essere distribuiti
-
Integrazione RBAC: mappa i progetti ai gruppi di AWS Identity Center o ai ruoli di Argo CD
Esempio di progetto per l'isolamento del team:
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
Assegna utenti ai progetti:
Gli utenti con ruoli EDITOR o VIEWER possono essere limitati a progetti specifici. Gli utenti ADMIN hanno accesso a tutti i progetti.
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
Schemi di autorizzazione comuni
Modello 1: team di amministrazione con accesso completo
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam", "SRETeam"] } }
Modello 2: gli sviluppatori possono implementare, altri possono visualizzare
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["DevelopmentTeam", "DevOpsTeam"], "VIEWER": ["AllEmployees"] } }
Modello 3: isolamento basato sul team con progetti
-
Assegna a tutti gli sviluppatori il ruolo EDITOR
-
Crea un team separato AppProjects per ogni team
-
Usa i ruoli di progetto per limitare l'accesso alle applicazioni specifiche del team
{ "rbacRoleMapping": { "ADMIN": ["PlatformTeam"], "EDITOR": ["AllDevelopers"] } }
Quindi crea progetti con restrizioni e mappature dei ruoli specifiche del team.
Best practice
Usa i gruppi anziché i singoli utenti: associa i gruppi di AWS Identity Center ai ruoli di Argo CD anziché ai singoli utenti per una gestione più semplice.
Inizia con il privilegio minimo: inizia con l'accesso VIEWER e concedi EDITOR o ADMIN secondo necessità.
Usa i progetti per l'isolamento del team: crea ambienti separati AppProjects per team o ambienti diversi per far rispettare i limiti.
Sfrutta la federazione di Identity Center: configura AWS Identity Center per la federazione con il tuo provider di identità aziendale per una gestione centralizzata degli utenti.
Revisioni periodiche degli accessi: rivedi periodicamente le mappature dei ruoli e le assegnazioni dei progetti per garantire livelli di accesso appropriati.
Limita l'accesso al cluster: ricorda che Argo CD RBAC controlla l'accesso alle risorse e alle operazioni di Argo CD, ma non corrisponde a Kubernetes RBAC. Gli utenti con accesso ad Argo CD possono distribuire applicazioni nei cluster a cui Argo CD ha accesso. Limita i cluster a cui Argo CD può accedere e utilizza le restrizioni sulla destinazione del progetto per controllare dove possono essere distribuite le applicazioni.
AWS autorizzazioni di servizio
Per utilizzare AWS i servizi direttamente nelle risorse dell'applicazione (senza creare risorse di repository), collega le autorizzazioni IAM richieste al Capability Role.
Grafici ECR for Helm:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
CodeCommit archivi:
{ "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" } ] }
Configurare l'accesso al repositoryPer i dettagli sull'utilizzo di queste integrazioni, consulta.
Fasi successive
-
Lavorare con Argo CD- Scopri come creare applicazioni e gestire le distribuzioni
-
Concetti di Argo CD- Comprendi i concetti di Argo CD, inclusi i progetti
-
Considerazioni sulla sicurezza per EKS Capabilities- Esamina le migliori pratiche di sicurezza per quanto riguarda le funzionalità