Configurare le autorizzazioni ACK - Amazon EKS

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 ACK

ACK richiede le autorizzazioni IAM per creare e gestire AWS risorse per tuo conto. Questo argomento spiega come IAM collabora con ACK e fornisce indicazioni sulla configurazione delle autorizzazioni per diversi casi d'uso.

Come funziona IAM con ACK

ACK utilizza i ruoli IAM per autenticarsi con le tue risorse AWS ed eseguire azioni sulle tue risorse. Esistono due modi per fornire le autorizzazioni a ACK:

Ruolo di capacità: il ruolo IAM fornito durante la creazione della funzionalità ACK. Questo ruolo viene utilizzato di default per tutte le operazioni ACK.

Selettori di ruolo IAM: ruoli IAM aggiuntivi che possono essere mappati su namespace o risorse specifici. Questi ruoli hanno la precedenza sul ruolo di capacità per le risorse che rientrano nel loro ambito.

Quando ACK deve creare o gestire una risorsa, determina quale ruolo IAM utilizzare:

  1. Controlla se un IAMRole selettore corrisponde allo spazio dei nomi della risorsa

  2. Se viene trovata una corrispondenza, assumi quel ruolo IAM

  3. Altrimenti, usa il ruolo Capability

Questo approccio consente una gestione flessibile delle autorizzazioni, da semplici configurazioni a ruolo singolo a configurazioni complesse con più account e più team.

Guida introduttiva: configurazione semplice delle autorizzazioni

Per casi di sviluppo, test o semplici casi d'uso, puoi aggiungere tutte le autorizzazioni di servizio necessarie direttamente al Capability Role.

Questo approccio funziona bene quando:

  • Stai iniziando con ACK

  • Tutte le risorse si trovano nello stesso AWS account

  • Un unico team gestisce tutte le risorse ACK

  • Ti fidi che tutti gli utenti ACK abbiano le stesse autorizzazioni

Best practice di produzione: IAM Role Selectors

Per gli ambienti di produzione, utilizza IAM Role Selectors per implementare l'accesso con privilegi minimi e l'isolamento a livello di namespace.

Quando si utilizza IAM Role Selectors, il Capability Role necessita solo dell'autorizzazione per assumere i ruoli specifici del servizio. sts:AssumeRole Non è necessario aggiungere alcuna autorizzazione di AWS servizio (come S3 o RDS) al Capability Role stesso: tali autorizzazioni vengono concesse ai singoli ruoli IAM assunti dal Capability Role.

Scelta tra modelli di autorizzazione:

Utilizza le autorizzazioni dirette (aggiungendo le autorizzazioni di servizio al ruolo Capability) quando:

  • Stai iniziando e desideri la configurazione più semplice

  • Tutte le risorse si trovano nello stesso account del cluster

  • Hai requisiti di autorizzazione amministrativi a livello di cluster

  • Tutti i team possono condividere le stesse autorizzazioni

Usa IAM Role Selectors quando:

  • Gestione delle risorse su più account AWS

  • Team o namespace diversi richiedono autorizzazioni diverse

  • È necessario un controllo granulare degli accessi per namespace

  • Vuoi seguire le pratiche di sicurezza con privilegi minimi

Puoi iniziare con autorizzazioni dirette e migrare a IAM Role Selectors in un secondo momento, man mano che le tue esigenze crescono.

Perché utilizzare IAM Role Selectors in produzione:

  • Privilegio minimo: ogni namespace ottiene solo le autorizzazioni di cui ha bisogno

  • Isolamento del team: il team A non può utilizzare accidentalmente le autorizzazioni del team B

  • Controllo più semplice: mappatura chiara di quale namespace utilizza quale ruolo

  • Supporto per più account: necessario per la gestione delle risorse in più account

  • Separazione delle preoccupazioni: servizi o ambienti diversi utilizzano ruoli diversi

Configurazione di base di IAM Role Selector

Fase 1: Creare un ruolo IAM specifico per il servizio

Crea un ruolo IAM con autorizzazioni per servizi specifici: AWS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": "*" } ] }

Configura la policy di fiducia per consentire al Capability Role di assumerla:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }

Fase 2: concedere AssumeRole l'autorizzazione a Capability Role

Aggiungi l'autorizzazione al ruolo di capacità per assumere il ruolo specifico del servizio:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::111122223333:role/ACK-S3-Role" } ] }

Fase 3: Creare un selettore IAMRole

Mappa il ruolo IAM su un namespace:

apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: s3-namespace-config spec: arn: arn:aws:iam::111122223333:role/ACK-S3-Role namespaceSelector: names: - s3-resources

Fase 4: Creare risorse nello spazio dei nomi mappato

Le risorse nello spazio dei s3-resources nomi utilizzano automaticamente il ruolo specificato:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: s3-resources spec: name: my-production-bucket

Gestione di più account

Usa IAM Role Selectors per gestire le risorse su più AWS account.

Fase 1: Creare un ruolo IAM per più account

Nell'account di destinazione (444455556666), crea un ruolo che si fidi del ruolo di capacità dell'account di origine:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ACKCapabilityRole" }, "Action": "sts:AssumeRole" } ] }

Assegna autorizzazioni specifiche del servizio a questo ruolo.

Passaggio 2: concedere l'autorizzazione AssumeRole

Nell'account di origine (111122223333), consenti al ruolo Capability di assumere il ruolo dell'account di destinazione:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole" } ] }

Fase 3: Creare un selettore IAMRole

Mappa il ruolo tra account diversi su un namespace:

apiVersion: services.k8s.aws/v1alpha1 kind: IAMRoleSelector metadata: name: production-account-config spec: arn: arn:aws:iam::444455556666:role/ACKTargetAccountRole namespaceSelector: names: - production

Fase 4: Creare risorse

Le risorse nel production namespace vengono create nell'account di destinazione:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-bucket namespace: production spec: name: my-cross-account-bucket

Modelli avanzati di IAM Role Selector

Per una configurazione avanzata che include selettori di etichette, mappatura dei ruoli specifici delle risorse ed esempi aggiuntivi, consulta la documentazione ACK IRSA.

Fasi successive