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à.
Concedi al controller di bilanciamento del carico EKS Auto Mode l'accesso a un segreto specifico
In questo tutorial, concedi al controller di bilanciamento del carico Amazon EKS Auto Mode l'accesso in lettura a un Kubernetes specifico. Secret Questo sblocca l'autenticazione OIDC su un ALB. Ingress Si utilizza un namespace Role con ambito e destinato al gruppo. RoleBinding eks:managed
Il completamento di questo tutorial richiede circa 15 minuti. Gli oggetti Kubernetes RBAC creati non comportano costi. AWS
Il controller di bilanciamento del carico Amazon EKS Auto Mode supporta l'autenticazione OIDC sugli oggetti ALB. Ingress Utilizza l'alb.ingress.kubernetes.io/auth-type: oidcannotazione per abilitare questa autenticazione. Per risolvere la configurazione OIDC, il controller legge un Secret Kubernetes denominato nell'annotazione. alb.ingress.kubernetes.io/auth-idp-oidc La sua politica di accesso gestito attualmente non consente la concessione Secret degli oggetti, quindi get il riconciliatore fallisce con un messaggio simile a:
Failed build model due to ingress: <ns>/<name>: secrets "<secret>" is forbidden: User "arn:aws:sts::<acct>:assumed-role/AWSServiceRoleForAmazonEKS/<session>" cannot get resource "secrets" in API group "" in the namespace "<ns>"
Utilizzando il meccanismo descritto inConcedere un RBAC Kubernetes aggiuntivo ai controller gestiti EKS Auto Mode, è possibile concedere al controller gestito esattamente l'getSecretOIDC di cui ha bisogno.
Prerequisiti
Prima di iniziare, assicurati di avere:
-
Un cluster Amazon EKS Auto Mode con la voce di
AWSServiceRoleForAmazonEKSaccesso creata automaticamente. -
kubectlconfigurato con accesso al cluster. -
La AWS CLI installata e configurata con le autorizzazioni per
aws sts get-caller-identitye.aws eks describe-access-entry -
Un ALB
Ingressche utilizza l'alb.ingress.kubernetes.io/auth-type: oidcannotazione e il Kubernetes a cui fa riferimento.Secret
Fase 1: Identifica il segreto da aggiungere all'elenco delle autorizzazioni
La configurazione OIDC su un ALB è la Ingress seguente. Registra il Secret nome e lo spazio dei Ingress nomi: gli oggetti RBAC devono risiedere nello stesso spazio dei nomi di. Secret
annotations: alb.ingress.kubernetes.io/auth-type: oidc alb.ingress.kubernetes.io/auth-idp-oidc: > { "issuer": "...", "authorizationEndpoint": "...", "tokenEndpoint": "...", "userInfoEndpoint": "...", "secretName": "oidc" }
Il resto di questo esempio utilizza namespace e name. monitoring Secret oidc
Passaggio 2: applicare un ruolo con ambito di namespace e RoleBinding
Questo modulo concede esattamente un nome get in un unico namespace. Secret Salva quanto segue come: eks-managed-oidc-secret-reader.yaml
apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: eks-managed-oidc-secret-reader namespace: monitoring rules: - apiGroups: [""] resources: ["secrets"] resourceNames: ["oidc"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: eks-managed-oidc-secret-reader namespace: monitoring subjects: - kind: Group name: eks:managed apiGroup: rbac.authorization.k8s.io roleRef: kind: Role name: eks-managed-oidc-secret-reader apiGroup: rbac.authorization.k8s.io
Applicalo:
kubectl apply -f eks-managed-oidc-secret-reader.yaml
Per aggiungere altri Secret oggetti all'elenco degli oggetti consentiti in un secondo momento, aggiungi i loro nomi all'Role’s `resourceNameselenco e riapplica.
Fase 3: Conferma il ripristino di Ingress
Il controller del load balancer li riconcilia al passaggio successivo (Ingressin genere entro pochi minuti). Quando la concessione funziona, l'secrets "oidc" is forbiddenerrore precedente smette di apparire su Ingress e il load balancer procede. Se l'errore persiste, ricontrolla il Role’s `namespaceresourceNames, e l'oggetto. RoleBinding
Rimozione della sovvenzione
Importante
Mantieni Role la mano RoleBinding in posizione per tutto il tempo in cui l'ALB lo Ingress utilizzaalb.ingress.kubernetes.io/auth-type: oidc. La loro rimozione interrompe nuovamente la risoluzione OIDC su. Ingress
Se smetti di usare OIDC su, rimuovi la Ingress concessione:
kubectl delete rolebinding eks-managed-oidc-secret-reader -n monitoring kubectl delete role eks-managed-oidc-secret-reader -n monitoring
Risorse correlate
-
Concedere un RBAC Kubernetes aggiuntivo ai controller gestiti EKS Auto Mode— Panoramica concettuale del
eks:managedgruppo e come definire l'ambito delle sovvenzioni. -
Concedere agli utenti IAM l’accesso a Kubernetes con le voci di accesso EKS— Voci di accesso ad Amazon EKS.
-
Utilizzo dell'autorizzazione RBAC
nella documentazione di Kubernetes.