

 **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
<a name="auto-managed-rbac-example"></a>

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: oidc`annotazione 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 in[Concedere un RBAC Kubernetes aggiuntivo ai controller gestiti EKS Auto Mode](auto-managed-rbac.md), è possibile concedere al controller gestito esattamente l'`get``Secret`OIDC di cui ha bisogno.

## Prerequisiti
<a name="_prerequisites"></a>

Prima di iniziare, assicurati di avere:
+ Un cluster Amazon EKS Auto Mode con la voce di `AWSServiceRoleForAmazonEKS` accesso creata automaticamente.
+  `kubectl`configurato con accesso al cluster.
+ La AWS CLI installata e configurata con le autorizzazioni per `aws sts get-caller-identity` e. `aws eks describe-access-entry`
+ Un ALB `Ingress` che utilizza l'`alb.ingress.kubernetes.io/auth-type: oidc`annotazione e il Kubernetes a cui fa riferimento. `Secret`

## Fase 1: Identifica il segreto da aggiungere all'elenco delle autorizzazioni
<a name="_step_1_identify_the_secret_to_add_to_the_allow_list"></a>

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
<a name="_step_2_apply_a_namespace_scoped_role_and_rolebinding"></a>

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 `resourceNames`elenco e riapplica.

## Fase 3: Conferma il ripristino di Ingress
<a name="_step_3_confirm_the_ingress_recovers"></a>

Il controller del load balancer li riconcilia al passaggio successivo (`Ingress`in genere entro pochi minuti). Quando la concessione funziona, l'`secrets "oidc" is forbidden`errore precedente smette di apparire su `Ingress` e il load balancer procede. Se l'errore persiste, ricontrolla il `Role’s `namespace``resourceNames`, e l'oggetto. `RoleBinding`

## Rimozione della sovvenzione
<a name="_removing_the_grant"></a>

**Importante**  
Mantieni `Role` la mano `RoleBinding` in posizione per tutto il tempo in cui l'ALB lo `Ingress` utilizza`alb.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
<a name="_related_resources"></a>
+  [Concedere un RBAC Kubernetes aggiuntivo ai controller gestiti EKS Auto Mode](auto-managed-rbac.md)— Panoramica concettuale del `eks:managed` gruppo e come definire l'ambito delle sovvenzioni.
+  [Concedere agli utenti IAM l’accesso a Kubernetes con le voci di accesso EKS](access-entries.md)— Voci di accesso ad Amazon EKS.
+  [Utilizzo dell'autorizzazione RBAC ](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) nella documentazione di Kubernetes.