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 su che si trova 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 le risorse per tuo conto. Questo argomento spiega come IAM funziona 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 AWS ed eseguire azioni sulle risorse. Esistono due modi per fornire le autorizzazioni ad 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 a namespace o risorse specifici. Questi ruoli sostituiscono il Capability Role per le risorse che rientrano nel loro ambito.
Quando ACK deve creare o gestire una risorsa, determina quale ruolo IAM utilizzare:
-
Controlla se an IAMRoleSelector corrisponde allo spazio dei nomi della risorsa
-
Se viene trovata una corrispondenza, assumi quel ruolo IAM
-
Altrimenti, usa il ruolo di capacità
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: semplice configurazione delle autorizzazioni
Per lo sviluppo, il test o i casi d'uso semplici, puoi aggiungere tutte le autorizzazioni di servizio necessarie direttamente al Capability Role.
Questo approccio funziona bene quando:
-
Stai iniziando con ACK
-
Tutte le risorse sono 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 i selettori di ruolo IAM per implementare l'accesso con privilegi minimi e l'isolamento a livello di namespace.
Quando si utilizzano i selettori di ruolo IAM, il ruolo di capacità necessita solo delle autorizzazioni necessarie per assumere i ruoli specifici del servizio. sts:AssumeRole sts:TagSession 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 Capability Role) 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 i selettori di ruolo IAM 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é usare i selettori di ruolo IAM in produzione:
-
Privilegio minimo: ogni namespace ottiene solo le autorizzazioni necessarie
-
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
-
Cross-account supporto: 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", "sts:TagSession"] } ] }
Fase 2: concedere AssumeRole l'autorizzazione a Capability Role
Aggiungi l'autorizzazione al Capability Role per assumere il ruolo specifico del servizio:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::111122223333:role/ACK-S3-Role" } ] }
Fase 3: Creazione IAMRoleSelector
Associa il ruolo IAM a 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
Passaggio 4: creare risorse nel namespace mappato
Le risorse nel s3-resources namespace 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
Multi-account gestione
Usa i selettori di ruolo IAM 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 consideri attendibile il 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", "sts:TagSession"] } ] }
Associa autorizzazioni specifiche del servizio a questo ruolo.
Passaggio 2: concedere l'autorizzazione AssumeRole
Nell'account di origine (111122223333), consenti al Capability Role di assumere il ruolo dell'account di destinazione:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::444455556666:role/ACKTargetAccountRole" } ] }
Fase 3: Crea IAMRoleSelector
Associa il ruolo tra account a 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
Tag di sessione
La funzionalità EKS ACK imposta automaticamente i tag di sessione su tutte le richieste AWS API. Questi tag consentono un controllo e un audit granulari degli accessi identificando l'origine di ogni richiesta.
Tag di sessione disponibili
I seguenti tag di sessione sono inclusi in ogni chiamata AWS API effettuata da ACK:
| Tag Key | Description |
|---|---|
|
|
L'ARN della funzionalità EKS che effettua la richiesta |
|
|
Lo spazio dei nomi Kubernetes della risorsa gestita |
|
|
Il gruppo API Kubernetes della risorsa (ad esempio,) |
Utilizzo dei tag di sessione per il controllo degli accessi
Puoi utilizzare questi tag di sessione nelle condizioni delle policy IAM per limitare le risorse che ACK può gestire. Ciò fornisce un ulteriore livello di sicurezza oltre ai selettori di ruolo IAM basati sullo spazio dei nomi.
Esempio: restrizione per namespace
Consenti ad ACK di creare bucket S3 solo quando la richiesta proviene dal namespace: production
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:CreateBucket", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/eks:kubernetes-namespace": "production" } } } ] }
Esempio: restrizione in base alla capacità
Consenti azioni solo da una funzionalità ACK specifica:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalTag/eks:eks-capability-arn": "arn:aws:eks:us-west-2:111122223333:capability/my-cluster/ack/my-ack" } } } ] }
Nota
I tag di sessione sono diversi dall'ACK autogestito, che non imposta questi tag per impostazione predefinita. Ciò consente un controllo degli accessi più granulare con la funzionalità gestita.
Schemi avanzati di selezione dei ruoli IAM
Per una configurazione avanzata, che include la mappatura dei ruoli tra account, la selezione dei ruoli con ambito di namespace ed esempi aggiuntivi, consulta Granular IAM Roles sul sito Web ACK.
Fasi successive
-
Concetti ACK- Comprendi i concetti di ACK e il ciclo di vita delle risorse
-
Considerazioni sulla sicurezza per EKS Capabilities- Comprendi le migliori pratiche di sicurezza per le funzionalità