EKS Access Entries - Guida per l'utente di Eksctl

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à.

EKS Access Entries

È possibile utilizzare eksctl per gestire EKS Access Entries. Usa le voci di accesso per concedere le autorizzazioni Kubernetes alle identità AWS IAM. Ad esempio, potresti concedere a un ruolo di sviluppatore l'autorizzazione a leggere le risorse Kubernetes in un cluster.

Questo argomento spiega come usare eksctl per gestire le voci di accesso. Per informazioni generali sulle voci di accesso, consulta Concedere agli utenti IAM l'accesso a Kubernetes con le voci di accesso EKS.

Puoi allegare le policy di accesso Kubernetes definite da AWS o associare un'identità IAM a un gruppo Kubernetes.

Per ulteriori informazioni sulle politiche predefinite disponibili, consulta Associare le politiche di accesso alle voci di accesso.

Se devi definire le policy Kubernetes dei clienti, associa l'identità IAM a un gruppo Kubernetes e concedi le autorizzazioni a quel gruppo.

Modalità di autenticazione del cluster

È possibile utilizzare le voci di accesso solo se la modalità di autenticazione del cluster lo consente.

Per ulteriori informazioni, vedere Impostare la modalità di autenticazione del cluster

Imposta la modalità di autenticazione con un file YAML

eksctlha aggiunto un nuovo accessConfig.authenticationMode campo sotto ClusterConfig, che può essere impostato su uno dei tre valori seguenti:

  • CONFIG_MAP- impostazione predefinita nell'API EKS: aws-auth ConfigMap verrà utilizzato solo

  • API- verrà utilizzata solo l'API Access Entries

  • API_AND_CONFIG_MAP- impostazione predefinitaeksctl: è possibile utilizzare aws-auth ConfigMap sia l'API di accesso che quella delle voci di accesso

Imposta la modalità di autenticazione in ClusterConfig YAML:

accessConfig: authenticationMode: <>

Aggiorna la modalità di autenticazione con un comando

Se si desidera utilizzare le voci di accesso su un cluster già esistente, creato senza eksctl, dove viene utilizzata CONFIG_MAP l'opzione, l'utente dovrà prima impostarla su. authenticationMode API_AND_CONFIG_MAP Per questo, eksctl ha introdotto un nuovo comando per l'aggiornamento della modalità di autenticazione del cluster, che funziona sia con i flag CLI, ad es.

eksctl utils update-authentication-mode --cluster my-cluster --authentication-mode API_AND_CONFIG_MAP

Accedi alle risorse di accesso

Le voci di accesso hanno un tipo, ad esempio STANDARD oEC2_LINUX. Il tipo dipende da come si utilizza la voce di accesso.

  • Il standard tipo serve per concedere le autorizzazioni Kubernetes agli utenti IAM e ai ruoli IAM.

    • Ad esempio, puoi visualizzare le risorse Kubernetes nella console AWS allegando una policy di accesso al ruolo o all'utente che usi per accedere alla console.

  • I EC2_WINDOWS tipi EC2_LINUX e servono per concedere le autorizzazioni Kubernetes alle istanze. EC2 Le istanze utilizzano queste autorizzazioni per entrare a far parte del cluster.

Per ulteriori informazioni sui tipi di voci di accesso, consulta Creare voci di accesso

Entità IAM

Puoi utilizzare le voci di accesso per concedere autorizzazioni Kubernetes a identità IAM come utenti IAM e ruoli IAM.

Utilizza il accessConfig.accessEntries campo per associare l'ARN di una risorsa IAM a un'API Access Entries EKS. Esempio:

accessConfig: authenticationMode: API_AND_CONFIG_MAP accessEntries: - principalARN: arn:aws:iam::111122223333:user/my-user-name type: STANDARD kubernetesGroups: # optional Kubernetes groups - group1 # groups can used to give permissions via RBAC - group2 - principalARN: arn:aws:iam::111122223333:role/role-name-1 accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSViewPolicy accessScope: type: namespace namespaces: - default - my-namespace - dev-* - principalARN: arn:aws:iam::111122223333:role/admin-role accessPolicies: # optional access polices - policyARN: arn:aws:eks::aws:cluster-access-policy/AmazonEKSClusterAdminPolicy accessScope: type: cluster - principalARN: arn:aws:iam::111122223333:role/role-name-2 type: EC2_LINUX

Oltre ad associare le policy EKS, è possibile specificare anche i gruppi Kubernetes a cui appartiene un'entità IAM, concedendo così le autorizzazioni tramite RBAC.

Gruppi di nodi gestiti e Fargate

L'integrazione con le voci di accesso per queste risorse sarà realizzata dietro le quinte, tramite l'API EKS. I gruppi di nodi gestiti e i pod Fargate appena creati creeranno voci di accesso alle API, anziché utilizzare risorse RBAC precaricate. I gruppi di nodi e i pod Fargate esistenti non verranno modificati e continueranno a fare affidamento sulle voci nella mappa di configurazione aws-auth.

Gruppi di nodi autogestiti

Ogni voce di accesso include un tipo. Per autorizzare i gruppi di nodi autogestiti, eksctl creerà una voce di accesso univoca per ogni gruppo di nodi con l'ARN principale impostato sul ruolo del nodo ARN e il tipo impostato su uno o in base al nodegroup AMIFamily. EC2_LINUX EC2_WINDOWS

Quando crei le tue voci di accesso, puoi anche specificare EC2_LINUX (per un ruolo IAM utilizzato con nodi autogestiti Linux o Bottlerocket), EC2_WINDOWS (per un ruolo IAM utilizzato con nodi autogestiti Windows), FARGATE_LINUX (per un ruolo IAM utilizzato con AWS Fargate (Fargate)) o come tipo. STANDARD Se non si specifica un tipo, il tipo predefinito è impostato su. STANDARD

Nota

Quando si elimina un gruppo di nodi creato con un gruppo di nodi preesistenteinstanceRoleARN, è responsabilità dell'utente eliminare la voce di accesso corrispondente quando non vi sono più gruppi di nodi associati. Questo perché eksctl non tenta di scoprire se una voce di accesso è ancora utilizzata da gruppi di nodi autogestiti non creati da eksctl in quanto si tratta di un processo complicato.

Crea una voce di accesso

Questa operazione può essere eseguita in due modi diversi, durante la creazione del cluster, specificando le voci di accesso desiderate come parte del file di configurazione ed eseguendo:

eksctl create cluster -f config.yaml

OPPURE dopo la creazione del cluster, eseguendo:

eksctl create accessentry -f config.yaml

Per un esempio di file di configurazione per la creazione di voci di accesso, vedi 40-access-entries.yaml nel repository eksctl. GitHub

Ottieni l'accesso

L'utente può recuperare tutte le voci di accesso associate a un determinato cluster eseguendo una delle seguenti operazioni:

eksctl get accessentry -f config.yaml

O

eksctl get accessentry --cluster my-cluster

In alternativa, per recuperare solo la voce di accesso corrispondente a una determinata entità IAM si deve usare il --principal-arn flag. ad es.

eksctl get accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin

Eliminare la voce di accesso

Per eliminare una singola voce di accesso alla volta, usa:

eksctl delete accessentry --cluster my-cluster --principal-arn arn:aws:iam::111122223333:user/admin

Per eliminare più voci di accesso, utilizzate il --config-file flag e specificate tutte le voci di accesso principalARN’s corrispondenti, accessEntry nel campo di primo livello, ad es.

... accessEntry: - principalARN: arn:aws:iam::111122223333:user/my-user-name - principalARN: arn:aws:iam::111122223333:role/role-name-1 - principalARN: arn:aws:iam::111122223333:role/admin-role
eksctl delete accessentry -f config.yaml

Esegui la migrazione da aws-auth ConfigMap

L'utente può migrare le proprie identità IAM esistenti da aws-auth configmap alle voci di accesso eseguendo quanto segue:

eksctl utils migrate-to-access-entry --cluster my-cluster --target-authentication-mode <API or API_AND_CONFIG_MAP>

Quando --target-authentication-mode flag è impostato suAPI, la modalità di autenticazione passa alla API modalità (saltata se già attiva), le mappature delle identità IAM verranno migrate alle voci di accesso e configmap viene eliminata dal cluster. API aws-auth

Quando --target-authentication-mode flag è impostato suAPI_AND_CONFIG_MAP, la modalità di autenticazione passa alla modalità (ignorata se è già in API_AND_CONFIG_MAP API_AND_CONFIG_MAP modalità), le mappature delle identità IAM verranno migrate alle voci di accesso, ma configmap viene preservata. aws-auth

Nota

Quando --target-authentication-mode flag è impostato suAPI, questo comando non aggiornerà la modalità di autenticazione alla API modalità se aws-auth configmap presenta uno dei seguenti vincoli.

  • Esiste una mappatura delle identità a livello di account.

  • Uno o più Roles/Users sono mappati sui gruppi Kubernetes che iniziano con il prefisso system: (ad eccezione dei gruppi specifici EKS, ad esempio, ecc.). system:masters system:bootstrappers system:nodes

  • Una o più mappature di identità IAM sono per un [Service Linked Role] (link: - .html). IAM/latest/UserGuide/using service-linked-roles

Disabilita le autorizzazioni di amministratore del cluster Creator

eksctlha aggiunto un nuovo campo accessConfig.bootstrapClusterCreatorAdminPermissions: boolean che, se impostato su false, disabilita la concessione delle autorizzazioni di amministratore del cluster all'identità IAM che crea il cluster. ad es.

aggiungi l'opzione al file di configurazione:

accessConfig:
  bootstrapClusterCreatorAdminPermissions: false

ed esegui:

eksctl create cluster -f config.yaml