Usa AWS Secrets e Configuration Provider CSI con Pod Identity per Amazon EKS - AWS Systems Manager

AWS Systems ManagerChange Managernon è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta AWS Systems ManagerChange Managerla pagina Modifica della disponibilità.

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

Usa AWS Secrets e Configuration Provider CSI con Pod Identity per Amazon EKS

L'integrazione di AWS Secrets and Configuration Provider con Pod Identity Agent per Amazon Elastic Kubernetes Service offre maggiore sicurezza, configurazione semplificata e prestazioni migliorate per le applicazioni in esecuzione su Amazon EKS. Pod Identity semplifica l'autenticazione AWS Identity and Access Management (IAM) per Amazon EKS durante il recupero di parametri AWS Systems Manager Parameter Store o segreti da Secrets Manager.

Amazon EKS Pod Identity semplifica il processo di configurazione delle autorizzazioni IAM per le applicazioni Kubernetes consentendo quest'azione direttamente tramite le interfacce Amazon EKS, riducendo il numero di passaggi ed eliminando la necessità di passare da Amazon EKS ai servizi IAM. Pod Identity consente l'uso di un singolo ruolo IAM su più cluster senza aggiornare le policy di attendibilità e supporta i tag delle sessioni di ruolo per un controllo degli accessi più granulare. Questo approccio non solo semplifica la gestione delle policy consentendo il riutilizzo delle politiche di autorizzazione tra i ruoli, ma migliora anche la sicurezza abilitando l'accesso alle risorse in base ai AWS tag corrispondenti.

Come funziona

  1. Pod Identity assegna un ruolo IAM al pod.

  2. ASCP utilizza questo ruolo per l'autenticazione con. Servizi AWS

  3. Se autorizzato, ASCP recupera i parametri richiesti e li rende disponibili al pod.

Per ulteriori informazioni, consulta Scopri come funziona Amazon EKS Pod Identity nella Guida per l'utente di Amazon EKS.

Prerequisiti

Importante

Pod Identity è supportato solo per Amazon EKS nel cloud. Non è supportato per Amazon EKS Anywhere o per i Servizio Red Hat OpenShift su AWScluster Kubernetes autogestiti su istanze Amazon. EC2

  • Cluster Amazon EKS (versione 1.24 o successiva)

  • Accesso AWS CLI e cluster Amazon EKS tramite kubectl

  • (Facoltativo) Accesso a due account Account AWS per l'accesso su più account

Installazione dell'agente Amazon EKS Pod Identity

Per utilizzare Pod Identity con il tuo cluster, devi installare il componente aggiuntivo dell'agente Amazon EKS Pod Identity.

Installare l'agente Pod Identity
  • Installa il componente aggiuntivo agente Pod Identity sul tuo cluster.

    default placeholder text Sostituiscili con i tuoi valori:

    eksctl create addon \ --name eks-pod-identity-agent \ --cluster clusterName \ --region region

Configura ASCP con Pod Identity

  1. Crea una policy di autorizzazioni che conceda l'autorizzazione ssm:GetParameters e ssm:DescribeParameters ai parametri a cui il pod deve accedere.

  2. Crea un ruolo IAM che può essere assunto dal servizio principale Amazon EKS per Pod Identity:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

    Allega la policy IAM al ruolo.

    default placeholder text Sostituiscili con i tuoi valori:

    aws iam attach-role-policy \ --role-name MY_ROLE \ --policy-arn POLICY_ARN
  3. Crea un'associazione Pod Identity. Per un esempio, consulta Crea un'associazione Pod Identity nella Guida per l'utente Amazon EKS

  4. Crea il SecretProviderClass che specifica quali parametri o segreti montare nel pod:

    kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yaml

    La differenza fondamentale in SecretProviderClass tra IRSA e Pod Identity è il parametro usePodIdentity facoltativo. Si tratta di un campo facoltativo che determina l'approccio di autenticazione. Quando non è specificato, per impostazione predefinita utilizzare i ruoli IAM per gli account di servizio (IRSA).

    • Per utilizzare EKS Pod Identity, utilizza uno qualsiasi di questi valori: "true", "True", "TRUE", "t", "T".

    • Per utilizzare in modo esplicito IRSA, imposta uno qualsiasi di questi valori: "false", "False", "FALSE", "f", or "F".

  5. Distribuisci il pod che monta i parametri o i segreti in /mnt/secrets-store:

    kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml
  6. Se utilizzi un cluster Amazon EKS privato, assicurati che il VPC in cui si trova il cluster abbia un AWS STS endpoint. Per informazioni sulla creazione di un endpoint, consulta Endpoint VPC di interfaccia nella Guida per l'utente AWS Identity and Access Management .

Verifica il montaggio del segreto

Per verificare che il parametro o il segreto siano montati correttamente, eseguire il comando riportato di seguito.

Sostituiscili default placeholder text con i tuoi valori:

kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
Per configurare Amazon EKS Pod Identity per l'accesso ai parametri in Parameter Store
  1. Crea una policy di autorizzazioni che conceda l'autorizzazione ssm:GetParameters e ssm:DescribeParameters ai parametri a cui il pod deve accedere.

  2. Crea un parametro inParameter Store, se non ne hai già uno. Per informazioni, consulta Creazione di parametri Parameter Store in Systems Manager.

Risoluzione dei problemi

È possibile visualizzare la maggior parte degli errori descrivendo l'implementazione del pod.

Per visualizzare i messaggi di errore per il container
  1. Ottieni un elenco di nomi di pod con il comando seguente. Se non si sta utilizzando lo spazio dei nomi predefinito, utilizzare -n namespace.

    kubectl get pods
  2. Per descrivere il Pod, nel comando seguente, pod-id usa l'ID Pod dei Pod che hai trovato nel passaggio precedente. Se non si sta utilizzando lo spazio dei nomi predefinito, utilizzare -n NAMESPACE.

    kubectl describe pod/pod-id
Come visualizzare gli errori per l'ASCP
  • Per trovare maggiori informazioni nei log del provider, nel comando seguente, PODID usa l'ID del Pod csi-secrets-store-provider-aws.

    kubectl -n kube-system get pods kubectl -n kube-system logs pod/pod-id