Funzionalità Amazon EKS, ruolo IAM - 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à.

Funzionalità Amazon EKS, ruolo IAM

Le funzionalità EKS richiedono la configurazione di un ruolo IAM di capacità (o ruolo di capacità). Le funzionalità utilizzano questo ruolo per eseguire azioni sui AWS servizi e accedere alle risorse Kubernetes nel cluster tramite voci di accesso create automaticamente.

Prima di poter specificare un ruolo di capacità durante la creazione della capacità, è necessario creare il ruolo IAM con la policy di fiducia e le autorizzazioni appropriate per il tipo di funzionalità. Una volta creato, questo ruolo IAM può essere riutilizzato per un numero qualsiasi di risorse funzionali.

Requisiti del ruolo di capacità

Il ruolo di capacità deve soddisfare i seguenti requisiti:

  • Il ruolo deve appartenere allo stesso AWS account del cluster e della risorsa di capacità

  • Il ruolo deve avere una politica di fiducia che consenta al servizio EKS Capabilities di assumerlo

  • Il ruolo deve disporre delle autorizzazioni appropriate per il tipo di capacità e i requisiti del caso d'uso (vediAutorizzazioni per tipo di funzionalità)

Politica di fiducia per i ruoli di capacità

Tutti i ruoli di capacità devono includere la seguente politica di fiducia:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

Questa politica di fiducia consente a EKS di:

  • Assumi il ruolo di eseguire operazioni AWS API

  • Tagga le sessioni per scopi di controllo e tracciamento

Autorizzazioni per tipo di funzionalità

Le autorizzazioni IAM richieste dipendono dalla funzionalità utilizzata e dal modello di implementazione.

Nota

Per le implementazioni di produzione che utilizzano IAM Role Selectors con ACK o quando si utilizza kro o Argo CD senza integrazione di AWS servizi, Capability Role potrebbe non richiedere alcuna autorizzazione IAM oltre alla policy di fiducia.

kro (Kube Resource Orchestrator)

Non sono richieste autorizzazioni IAM. Puoi creare un ruolo di capacità senza policy allegate. kro richiede solo le autorizzazioni RBAC di Kubernetes per creare e gestire le risorse Kubernetes.

AWS Controller per Kubernetes (ACK)

ACK supporta due modelli di autorizzazione:

  • Configurazione semplice (sviluppo/test): aggiungi le autorizzazioni di AWS servizio direttamente al Capability Role. È la soluzione ideale per iniziare, per le implementazioni con account singolo o quando tutti gli utenti necessitano delle stesse autorizzazioni.

  • Best practice di produzione: utilizza IAM Role Selectors per implementare l'accesso con privilegi minimi. Con questo approccio, il Capability Role necessita solo dell'sts:AssumeRoleautorizzazione per assumere ruoli specifici del servizio. Non si aggiungono autorizzazioni di AWS servizio (come S3 o RDS) al ruolo di capacità stesso: tali autorizzazioni vengono concesse a singoli ruoli IAM mappati su namespace specifici.

    I selettori di ruolo IAM consentono di:

    • Isolamento delle autorizzazioni a livello di namespace

    • Gestione delle risorse tra account

    • Ruoli IAM specifici del team

    • Modello di sicurezza con privilegi minimi

      Esempio di policy Capability Role per l'approccio IAM Role Selector:

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

      Per una configurazione dettagliata delle autorizzazioni ACK, inclusi IAM Role Selectors, consulta. Configurare le autorizzazioni ACK

CD Argo

Per impostazione predefinita, non sono richieste autorizzazioni IAM. Potrebbero essere necessarie autorizzazioni opzionali per:

  • AWS Secrets Manager: se si utilizza Secrets Manager per archiviare le credenziali del repository Git

  • AWS CodeConnections: Se si utilizza CodeConnections per l'autenticazione del repository Git

    Politica di esempio per Secrets Manager e CodeConnections:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:region:account-id:secret:argocd/*" }, { "Effect": "Allow", "Action": [ "codeconnections:UseConnection", "codeconnections:GetConnection" ], "Resource": "arn:aws:codeconnections:region:account-id:connection/*" } ] }

    Per i requisiti di autorizzazione dettagliati di Argo CD, vedereConsiderazioni su Argo CD.

Verificate la presenza di un ruolo di capacità esistente

Puoi utilizzare la seguente procedura per verificare se il tuo account dispone già di un ruolo IAM con funzionalità adatto al tuo caso d'uso.

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

  3. Cerca nell'elenco dei ruoli il nome del tuo ruolo di capacità (ad esempio, ACKCapabilityRole oArgoCDCapabilityRole).

  4. Se esiste un ruolo, selezionalo per visualizzare le politiche allegate e la relazione di fiducia.

  5. Scegliere Relazioni di attendibilità, quindi scegliere Modifica policy di attendibilità.

  6. Verifica che la relazione di fiducia corrisponda alla politica di fiducia in materia di capacità. Se non corrisponde, aggiorna la politica di fiducia.

  7. Scegli Autorizzazioni e verifica che il ruolo disponga delle autorizzazioni appropriate per il tipo di capacità e il caso d'uso.

Creazione di una funzionalità (ruolo IAM)

È possibile utilizzare Console di gestione AWS o la AWS CLI per creare un ruolo di capacità.

Console di gestione AWS
  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Scegli Ruoli, quindi Crea ruolo.

  3. In Tipo di entità affidabile, seleziona Politica di attendibilità personalizzata.

  4. Copia e incolla la politica di attendibilità delle capacità nell'editor dei criteri di fiducia.

  5. Scegli Next (Successivo).

  6. Nella scheda Aggiungi autorizzazioni, seleziona o crea politiche appropriate per il tuo tipo di capacità (vediAutorizzazioni per tipo di funzionalità). Per kro, puoi saltare questo passaggio.

  7. Scegli Next (Successivo).

  8. Per Nome ruolo, inserisci un nome univoco per il tuo ruolo, ad esempio ACKCapabilityRoleArgoCDCapabilityRole, o. kroCapabilityRole

  9. Per Descrizione, inserisci un testo descrittivo come Amazon EKS - ACK capability role.

  10. Scegliere Crea ruolo.

AWS CLI
  1. Copia la policy di affidabilità delle capacità in un file denominatocapability-trust-policy.json.

  2. Crea il ruolo. Sostituiscila ACKCapabilityRole con il nome del ruolo desiderato.

    aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://capability-trust-policy.json
  3. Allega le politiche IAM richieste al ruolo. Per ACK, allega le policy per AWS i servizi che desideri gestire. Per Argo CD, allegate le politiche per Secrets Manager o CodeConnections se necessario. Per kro, puoi saltare questo passaggio.

    Esempio per ACK con autorizzazioni S3:

    aws iam put-role-policy \ --role-name ACKCapabilityRole \ --policy-name S3Management \ --policy-document file://s3-policy.json

Risoluzione dei problemi relativi alle funzionalità e ai ruoli

La creazione delle funzionalità fallisce con «Ruolo IAM non valido»

Verificare che:

La funzionalità mostra errori di autorizzazione

Verificare che:

  • Il ruolo dispone delle autorizzazioni IAM necessarie per il tipo di funzionalità

  • La voce di accesso per il ruolo esiste nel cluster

  • Se necessario, vengono configurate autorizzazioni Kubernetes aggiuntive (vedi) Autorizzazioni Kubernetes aggiuntive

Le risorse ACK falliscono con errori di «autorizzazione negata»

Verificare che:

  • Il ruolo dispone delle autorizzazioni IAM necessarie per il tuo caso d'uso

  • Per i controller ACK che fanno riferimento a segreti, assicurati di aver associato la policy di AmazonEKSSecretReaderPolicy accesso prevista ai namespace appropriati.

Per ulteriori indicazioni sulla risoluzione dei problemi, consulta. Considerazioni sulla sicurezza per EKS Capabilities