Concedi agli utenti l'accesso Kubernetes con un OIDC provider esterno - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.

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 agli utenti l'accesso Kubernetes con un OIDC provider esterno

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'utilizzoIAM, vedereConcedi a IAM utenti e ruoli l'accesso a Kubernetes APIs. 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 Using RBAC Authorization nella Kubernetes documentazione.

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'emittente URL del provider di OIDC identità deve essere accessibile al pubblico, in modo che Amazon EKS possa scoprire le chiavi di firma. Amazon EKS non supporta provider di OIDC identità con certificati autofirmati.

  • Non puoi disabilitare IAM l'autenticazione del cluster, perché è ancora necessaria per unire i nodi a un cluster.

  • Un EKS cluster Amazon deve comunque essere creato da un utente AWS IAMprincipale, anziché da un utente di OIDC identity provider. Questo perché il creatore del cluster interagisce con Amazon EKSAPIs, anziché con. Kubernetes APIs

  • OIDCgli utenti autenticati dal provider di identità sono elencati nel registro di controllo del cluster se CloudWatch i log sono attivati per il piano di controllo. Per ulteriori informazioni, consulta Abilitare o disabilitare i 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:

Emittente URL

Il provider URL di OIDC identità che consente al API server di scoprire le chiavi di firma pubbliche per la verifica dei token. URLDeve iniziare con https:// e deve corrispondere al iss reclamo contenuto nei token OIDC ID del provider. In conformità con OIDC lo standard, i componenti del percorso sono consentiti ma i parametri di interrogazione no. In genere URL è costituito solo da un nome host, ad esempio https://server.example.org ohttps://example.com. Questo URL dovrebbe puntare al livello inferiore .well-known/openid-configuration e deve essere accessibile al pubblico su Internet.

ID client (noto anche come pubblico)

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

È 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 il valori di esempio con il tuo. 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 EKS console Amazon a 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 Emittente URL, inserisci il nome del URL tuo provider. Questo URL deve essere accessibile tramite 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 daemail, per impostazione predefinita il prefisso è il valore di Issuer. URL È 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 attestazioni obbligatorie nell'ID Token. 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.

IAMPolitica di esempio

Se desideri impedire che un provider di OIDC identità venga associato a un cluster, crea e associa la seguente IAM politica agli IAM account dei tuoi EKS amministratori Amazon. Per ulteriori informazioni, consulta Creazione IAM di politiche e aggiunta di autorizzazioni di IAM identità nella Guida per l'IAMutente e Azioni, risorse e chiavi di condizione per Amazon Elastic Kubernetes Service nel 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 intrattiene relazioni con una rete di partner che offrono supporto per provider di OIDC identità compatibili. Consulta la seguente documentazione dei partner per i dettagli su come integrare l'identity provider con Amazon. EKS

Partner Product Documentazione

PingIdentity

PingOne per Enterprise

Istruzioni di installazione

Amazon EKS mira a offrirti un'ampia selezione 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.