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

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 l'identità del pod Amazon EKS e la scambia con un ruolo IAM. Hai impostato le autorizzazioni in una policy IAM per quel ruolo IAM. Quando l'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 Creare un provider IAM OIDC per il tuo cluster nella Amazon EKS User Guide.

  3. Crea un ruolo IAM per l'account di servizio e allega la policy ad esso. Per ulteriori informazioni, consulta Creare un ruolo IAM per un account di servizio nella Amazon EKS User Guide.

  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 Interface VPC endpoints nella AWS Identity and Access Management Guida per l'utente.

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. SecretProviderClassDeve trovarsi nello stesso spazio dei nomi 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. Implementa il tuo Pod:

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

Risoluzione dei problemi

È possibile visualizzare la maggior parte degli errori descrivendo la distribuzione del Pod.

Per visualizzare i messaggi di errore per il container
  1. Ottieni un elenco di nomi di Pod con il seguente comando. Se non si sta utilizzando lo spazio dei nomi 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 CRD sia installato:
    kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io

    Questo comando dovrebbe restituire informazioni sulla definizione SecretProviderClass personalizzata della risorsa.

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