Autenticazione degli utenti per il cluster da un provider di identità OpenID Connect
Amazon EKS supporta l'utilizzo di provider di identità OpenID Connect (OIDC) come metodo per autenticare gli utenti nel cluster. I provider di identità OIDC possono essere utilizzati con, o come alternativa a AWS Identity and Access Management (IAM). Per ulteriori informazioni sull'utilizzo di IAM, consultare Abilitazione dell'accesso a utenti e ruoli IAM al cluster. Dopo aver configurato l'autenticazione per il cluster, è possibile 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
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'Autenticatore IAM AWS nel cluster, perché sarà ancora necessario per unire i nodi a un cluster. Per ulteriori informazioni, consultare AWS Autenticatore IAM per Kubernetes
su GitHub. -
Diversamente da un utente di provider di identità, un cluster Amazon EKS deve ancora essere creato da un AWS utente IAM. Questo perché il creatore del cluster interagisce con le API Amazon EKS, piuttosto che con le API Kubernetes.
-
Gli utenti autenticati dal provider di identità OIDC sono elencati nel registro di controllo del cluster se i registri CloudWatch Logs sono attivati per il piano di controllo. Per ulteriori informazioni, consulta . Abilitazione e disabilitazione dei log del piano di controllo.
-
Non è possibile accedere alla AWS Management Console con un account di un provider OIDC. È possibile solo Visualizzazione dei nodi e Carichi di lavoro nella console accedendo al AWS Management Console con un account AWS Identity and Access Management.
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 richiestaiss
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, comehttps://server.example.org
ohttps://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 audience) – L'ID dell'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.
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 AWS utenti IAM.
Per dissociare un provider di identità OIDC dal cluster utilizzando il comando AWS Management Console
-
Aprire la console Amazon EKS all'indirizzo https://console.aws.amazon.com/eks/home#/clusters
. -
Nella sezione Provider di identità OIDC, selezionare Dissocia, inserire il nome del provider di identità e quindi selezionare
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-2.amazonaws.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": "*" } ] }