Autentica gli utenti del tuo cluster da un provider di OpenID Connect identità - Amazon EKS

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

Autentica gli utenti del tuo cluster da un provider di OpenID Connect identità

Amazon EKS supporta l'utilizzo di OpenID Connect (OIDC) provider di identità come metodo per autenticare gli utenti nel tuo cluster. OIDCi provider di identità possono essere utilizzati con o in alternativa a AWS Identity and Access Management (IAM). Per ulteriori informazioni sull'utilizzo di IAM, consultare Concedi l'accesso alle Kubernetes API . Dopo aver configurato l'autenticazione per il cluster, potrai creare roles e clusterroles Kubernetes per assegnare autorizzazioni ai ruoli e quindi associare i ruoli alle identità utilizzando rolebindings e clusterrolebindings Kubernetes. Per ulteriori informazioni, consulta Utilizzo dell'autorizzazione RBAC nella documentazione di Kubernetes.

Considerazioni
  • È possibile associare un provider di identità OIDC al cluster.

  • Kubernetes non fornisce un provider di identità OIDC. È possibile utilizzare un provider di identità OIDC pubblico esistente oppure eseguire il proprio provider di identità. Per un elenco dei provider certificati, consultare OpenID Certification sul sito OpenID.

  • L'URL dell'emittente del provider di identità OIDC deve essere accessibile pubblicamente, in modo che Amazon EKS possa individuare le chiavi di firma. Amazon EKS non supporta i provider di identità OIDC con certificati autofirmati.

  • Non è possibile disabilitare l'autenticazione IAM nel cluster, perché sarà ancora necessaria per aggiungere i nodi a un cluster.

  • Un cluster Amazon EKS deve comunque essere creato da un principale AWS IAM, anziché da un utente di un provider di OIDC identità. Questo perché il creatore del cluster interagisce con le API Amazon EKS, piuttosto che con le API Kubernetes.

  • OIDCgli utenti autenticati dal provider di identità vengono elencati nel registro di controllo del cluster se CloudWatch i log sono attivati per il piano di controllo. Per ulteriori informazioni, consulta Abilitazione e disabilitazione dei log del piano di controllo.

  • Non è possibile accedere a AWS Management Console con un account di un provider. OIDC Puoi visualizzare Kubernetes le risorse nella console solo accedendo AWS Management Console con un AWS Identity and Access Management account.

Associazione di un provider di identità OIDC

Prima di associare un provider di identità OIDC al cluster, è necessario ottenere dal provider le seguenti informazioni:

URL dell'emittente

L'URL del provider di identità OIDC che consente al server API di individuare le chiavi di firma pubbliche per la verifica dei token. L'URL deve iniziare con https:// e deve corrispondere alla richiesta iss nei token ID OIDC del provider. In conformità con lo standard OIDC, i componenti del percorso sono consentiti, ma i parametri di query non lo sono. In genere l'URL è costituito solo da un nome host, come https://server.example.org o https://example.com. Questo URL dovrebbe puntare al livello sottostante .well-known/openid-configuration e dovrà essere accessibile pubblicamente tramite Internet.

ID client (noto anche come pubblico)

L'ID per l'applicazione client che effettua richieste di autenticazione al provider di identità OIDC.

È possibile associare un provider di identità utilizzando eksctl o il AWS Management Console.

eksctl
Per associare un provider di identità OIDC al cluster utilizzando eksctl
  1. Crea un file denominato associate-identity-provider.yaml con i seguenti contenuti. Sostituisci i example values con i valori in tuo possesso. I valori nella sezione identityProviders vengono ottenuti dal provider di identità OIDC. I valori sono obbligatori solo per il name, type, issuerUrl, e clientId impostazioni in identityProviders.

    --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: your-region-code identityProviders: - name: my-provider type: oidc issuerUrl: https://example.com clientId: kubernetes usernameClaim: email usernamePrefix: my-username-prefix groupsClaim: my-claim groupsPrefix: my-groups-prefix requiredClaims: string: string tags: env: dev
    Importante

    Non specificare system:, o qualsiasi parte di quella stringa, per groupsPrefix o usernamePrefix.

  2. Creare il provider.

    eksctl associate identityprovider -f associate-identity-provider.yaml
  3. Per utilizzare kubectl con il tuo cluster e il provider di identità OIDC, consulta la sezione Using kubectl nella documentazione di Kubernetes.

AWS Management Console
Per associare un provider di OIDC identità al cluster utilizzando il AWS Management Console
  1. Apri la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Seleziona il tuo cluster, quindi seleziona la scheda Accesso.

  3. Nella sezione Provider di OIDC identità, seleziona Associate Identity Provider.

  4. Nella pagina Associa provider di identità OIDC, inserire o selezionare le seguenti opzioni e quindi selezionare Associa.

    • In Nome, inserire un nome univoco per il provider.

    • Per URL dell'emittente, inserire l'URL per il provider. Questo URL deve essere accessibile in Internet.

    • Per ID client, inserire l'ID client del provider di identità OIDC (noto anche come audience).

    • Per Richiesta Nome Utente, inserire la richiesta da utilizzare come nome utente.

    • Per Richiesta di Gruppi, inserire la richiesta da utilizzare come gruppo dell'utente.

    • (Opzionale) Selezionare Opzioni avanzate, inserire o selezionare le seguenti informazioni.

      • Prefisso Nome utente: inserire un prefisso da anteporre alle richieste del nome utente. Il prefisso viene anteposto alle richieste di nome utente per evitare conflitti con i nomi esistenti. Se non si fornisce un valore e il nome utente è un valore diverso da email, il prefisso viene impostato per impostazione predefinita sul valore per URL dell'emittente. È possibile utilizzare il valore - per disabilitare tutti i prefissi. Non specificare system: o qualsiasi parte di quella stringa.

      • Prefisso Gruppi: inserire un prefisso da anteporre alle richieste di gruppo. Il prefisso viene anteposto alle richieste di gruppo per evitare conflitti con i nomi esistenti (ad esempio system: groups). Ad esempio, il valore oidc: crea nomi di gruppo come oidc:engineering e oidc:infra. Non specificare system: o qualsiasi parte di quella stringa..

      • Richieste necessarie: selezionare Aggiungi richiesta e inserire una o più coppie di valori chiave che descrivono le richieste necessarie nel token ID client. Le coppie descrivono le richieste necessarie nel Token ID. Se impostato, ogni richiesta viene verificata per essere presente nel token ID con un valore corrispondente.

  5. Per utilizzare kubectl con il tuo cluster e il provider di identità OIDC, consulta la sezione Using kubectl nella documentazione di Kubernetes.

Dissociazione di un provider di identità OIDC dal cluster

Se si dissocia un provider di identità OIDC dal cluster, gli utenti inclusi nel provider non potranno più accedere al cluster. Tuttavia, è comunque possibile accedere al cluster con principali IAM.

Per dissociare un provider di identità OIDC dal cluster utilizzando la AWS Management Console
  1. Apri la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters.

  2. Nella sezione Provider di identità OIDC, seleziona Dissocia, inserisci il nome del provider di identità e quindi seleziona Disassociate.

Policy IAM di esempio

Se si desidera impedire che un provider di identità OIDC venga associato a un cluster, creare e associare le seguenti policy IAM agli account IAM degli amministratori Amazon EKS. Per ulteriori informazioni, consultare Creazione di policy IAM e Aggiunta autorizzazioni di identità IAM nella Guida per l'utente di IAM e Operazioni, risorse e chiavi di condizione per Amazon Elastic Kubernetes Service in Service Authorization Reference.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "denyOIDC", "Effect": "Deny", "Action": [ "eks:AssociateIdentityProviderConfig" ], "Resource": "arn:aws:eks:us-west-2.amazonaws.com:111122223333:cluster/*" }, { "Sid": "eksAdmin", "Effect": "Allow", "Action": [ "eks:*" ], "Resource": "*" } ] }

La seguente policy di esempio consente l'associazione del provider di identità OIDC se il clientID è kubernetes e la issuerUrl è https://cognito-idp.us-west-2amazonaws.com/*.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCognitoOnly", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotLikeIfExists": { "eks:issuerUrl": "https://cognito-idp.us-west-2.amazonaws.com/*" } } }, { "Sid": "DenyOtherClients", "Effect": "Deny", "Action": "eks:AssociateIdentityProviderConfig", "Resource": "arn:aws:eks:us-west-2:111122223333:cluster/my-instance", "Condition": { "StringNotEquals": { "eks:clientId": "kubernetes" } } }, { "Sid": "AllowOthers", "Effect": "Allow", "Action": "eks:*", "Resource": "*" } ] }

Provider di identità OIDC convalidati dai partner

Amazon EKS dispone di una rete di partner che offrono supporto per i provider di identità OIDC compatibili. Per informazioni dettagliate su come integrare il provider di identità con Amazon EKS, consulta la documentazione dei partner riportata di seguito.

Partner

Product

Documentazione

PingIdentity

PingOne per Enterprise

Istruzioni di installazione

Amazon EKS mira a dare all'utente una vasta gamma di opzioni per coprire tutti i casi d'uso. Se sviluppi un provider di identità OIDC compatibile con supporto commerciale che non è elencato qui, contatta il nostro team partner all'indirizzo aws-container-partners@amazon .com per ulteriori informazioni.