Usa AWS Secrets and Configuration Provider CSI con IAM Roles for Service Accounts (IRSA) - Gestione dei segreti AWS

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 and Configuration Provider CSI con IAM Roles for Service Accounts (IRSA)

Prerequisiti

  • Cluster Amazon EKS (versione 1.17 o successiva)

  • Accesso AWS CLI e cluster Amazon EKS tramite kubectl

Configurazione del controllo degli accessi

L'ASCP recupera il Pod Identity di Amazon EKS e lo scambia con il ruolo IAM. Le autorizzazioni vengono impostate in una policy IAM per quel ruolo IAM. Quando ASCP assume il ruolo IAM, ottiene l'accesso ai segreti che hai autorizzato. Altri container non possono accedere ai segreti a meno che non vengano associati anche al ruolo IAM.

Per consentire al tuo Amazon EKS Pod di accedere ai segreti in Secrets Manager
  1. Crea una politica di autorizzazioni che conceda secretsmanager:GetSecretValue e secretsmanager:DescribeSecret autorizzi i segreti a cui il Pod deve accedere. Per un esempio di policy, consulta Esempio: autorizzazione a leggere e descrivere singoli segreti.

  2. Crea un provider OpenID Connect (OIDC) IAM per il cluster se non ne è già presente uno. Per ulteriori informazioni, consulta Crea un provider IAM OIDC per il tuo cluster nella Guida per l'utente di Amazon EKS.

  3. Crea un Ruolo IAM per l'account del servizio e collega la policy ad esso. Per ulteriori informazioni, consulta Crea un ruolo IAM per un account del servizio nella Guida per l'utente di Amazon EKS.

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

Identificazione dei segreti montare

Per determinare quali segreti l'ASCP monta in Amazon EKS come file sul file system, è necessario creare un file SecretProviderClass YAML. SecretProviderClassElenca i segreti da montare e il nome del file con cui montarli. Il SecretProviderClass deve trovarsi nello stesso namespace del pod Amazon EKS a cui fa riferimento.

Monta i segreti come file

Le seguenti istruzioni mostrano come montare i segreti come file utilizzando file YAML di esempio .yaml e ExampleSecretProviderClass.yaml. ExampleDeployment

Per montare segreti in Amazon EKS
  1. Applica il SecretProviderClass al pod:

    kubectl apply -f ExampleSecretProviderClass.yaml
  2. Distribuisci il pod:

    kubectl apply -f ExampleDeployment.yaml
  3. L'ASCP monta i file.

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. È possibile ottenere un elenco di nomi di pod con il comando seguente. Se non si sta utilizzando il namespace predefinito, utilizzare -n nameSpace.

    kubectl get pods
  2. Per descrivere il Pod, nel comando seguente, podId 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/podId
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/podId
  • Verifica che il SecretProviderClass sia installato:
    kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io

    Questo comando deve restituire informazioni sulla definizione delle risorse personalizzate SecretProviderClass.

  • Verifica che l' SecretProviderClass oggetto sia stato creato.
    kubectl get secretproviderclass SecretProviderClassName -o yaml