Aiutaci 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 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à.
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 in alternativa a AWS Identity and Access Management (IAM). Per ulteriori informazioni sull'utilizzo di IAM, consultare Concedi agli utenti e ai ruoli IAM l'accesso a Kubernetes APIs. 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
-
È 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 puoi disabilitare l'autenticazione IAM sul tuo cluster, perché è ancora necessaria per unire i nodi a un cluster.
-
Diversamente da un utente di provider di identità, un cluster Amazon EKS deve ancora essere creato da un principale IAM AWS . Questo perché il creatore del cluster interagisce con Amazon EKS APIs, anziché con APIs Kubernetes.
-
Gli utenti autenticati dal provider di identità OIDC vengono elencati nel registro di controllo del cluster se i log sono attivati per il piano di controllo. CloudWatch Per ulteriori informazioni, consulta Abilita o disabilita i log del piano di controllo.
-
Non è possibile accedere a AWS Management Console con un account di un provider OIDC. È possibile solo Visualizza le risorse Kubernetes nel AWS Management Console accedendo 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 aliss
claim contenuto 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. - Client ID (noto anche come audience)
-
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.
Associa un provider di identità utilizzando eksctl
-
Crea un file denominato
associate-identity-provider.yaml
con i seguenti contenuti. Sostituisci iexample values
con i valori in tuo possesso. I valori nella sezioneidentityProviders
vengono ottenuti dal provider di identità OIDC. I valori sono obbligatori solo per ilname
,type
,issuerUrl
, eclientId
impostazioni inidentityProviders
.--- 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:
, né alcuna parte di quella stringa, pergroupsPrefix
o.usernamePrefix
-
Creare il provider.
eksctl associate identityprovider -f associate-identity-provider.yaml
-
Per utilizzarlo
kubectl
per lavorare con il cluster e il provider di identità OIDC, consulta Using kubectlnella documentazione di Kubernetes.
Associa un provider di identità utilizzando la console AWS
-
Aprire la Console Amazon EKS
. -
Seleziona il tuo cluster, quindi seleziona la scheda Accesso.
-
Nella sezione OIDC Identity Provider*, seleziona* Associate Identity Provider*.
-
Nella pagina Associate 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 Client ID, inserisci 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 l'attestazione Gruppi, inserisci l'attestazione 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 specificaresystem:
alcuna 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 valoreoidc:
crea nomi di gruppo comeoidc:engineering
eoidc:infra
. Non specificatesystem:
alcuna 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 affermazioni richieste nel token ID. Se impostato, ogni richiesta viene verificata per essere presente nel token ID con un valore corrispondente.
-
Per utilizzarlo
kubectl
per lavorare con il cluster e il provider di identità OIDC, consulta Using kubectlnella documentazione di Kubernetes.
-
-
-
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, consulta Creazione delle policy IAM e Aggiunta delle autorizzazioni di identità IAM nella Guida per l'utente IAM e Actionsin the 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": "*"
}
]
}