Come posso risolvere i problemi relativi ai segreti di AWS Secrets Manager in Amazon ECS?

Ultimo aggiornamento: 30/03/2022

Quando provo a inserire un'attività che utilizza i segreti di AWS Secrets Manager in Amazon Elastic Container Services (Amazon ECS), viene visualizzato uno dei seguenti errori:

  • Errore ResourceInitializationError in AWS Fargate
  • Errore AccessDenied in Amazon Elastic Compute Cloud (Amazon EC2)

L'attività non è in grado di recuperare i segreti da Secrets Manager e ha esito negativo.

Breve descrizione

Questi messaggi di errore vengono visualizzati per uno dei seguenti motivi:

  • Il ruolo di esecuzione delle attività di Amazon ECS non dispone delle autorizzazioni necessarie per accedere ai segreti di Secrets Manager.
  • Secrets Manager non riesce a trovare il segreto specificato.
  • Il nome del segreto termina con un trattino seguito da sei caratteri. Ciò restituisce risultati imprevisti quando si cerca un segreto utilizzando un ARN parziale.
  • Si sono verificati problemi con la configurazione di rete di Amazon Virtual Private Cloud (Amazon VPC).

Risoluzione

Verifica che il ruolo di esecuzione dell'attività ECS disponga delle autorizzazioni necessarie

  1. Apri la console IAM.
  2. Nel pannello di navigazione, scegli Roles (Ruoli).
  3. Cerca nell'elenco dei ruoli il ruolo di esecuzione delle attività utilizzato dalle tue attività ECS.
  4. Verifica che il ruolo di esecuzione dell'attività disponga delle autorizzazioni necessarie per accedere alla risorsa Secrets Manager necessaria.

Verifica che il segreto di Secrets Manager esista

  1. Apri la console di Secrets Manager.
  2. Nella pagina Secrets list (Elenco segreti), scegli il segreto utilizzato dalle tue attività ECS.
  3. Verifica che la definizione dell'attività ECS includa questi nomi specifici dei segreti. Se hai specificato parametri aggiuntivi nel segreto, verifica che la definizione dell'attività includa il segmento json-key/version-stage/version-id specificato nel segreto.

Controlla il nome e l'ARN del segreto di Secrets Manager

Controlla se il nome del tuo segreto termina con un trattino seguito da sei caratteri (esempio: myappsecret-xxxxxx). Secrets Manager aggiunge automaticamente un trattino e sei caratteri casuali dopo il nome del segreto alla fine dell'ARN. Pertanto, è consigliabile non terminare il nome del segreto con un trattino seguito da sei caratteri. Ciò potrebbe restituire risultati imprevisti quando si cerca un segreto utilizzando un ARN parziale. Per risolvere questo problema, assicurati di utilizzare gli ARN completi dei segreti di Secrets Manager, inclusi il trattino e i sei caratteri aggiuntivi.

Verifica che la configurazione di rete VPC consenta alla tua infrastruttura Amazon ECS di raggiungere Secrets Manager

Crea gli endpoint VPC dell'interfaccia per Secrets Manager quando si verificano le seguenti condizioni:

  • Stai utilizzando una definizione dell'attività che fa riferimento ai segreti di Secrets Manager per recuperare dati sensibili per i tuoi container.
  • Stai utilizzando gli endpoint VPC dell'interfaccia.

Inoltre, assicurati che i gruppi di sicurezza per gli endpoint VPC consentano all'infrastruttura ECS di utilizzare questi endpoint.

Per verificare se l'endpoint VPC per Secrets Manager esiste, effettua le seguenti operazioni:

  1. Apri la console di Amazon VPC.
  2. Nel pannello di navigazione, scegli Endpoints (Endpoint).
  3. Assicurati che l'endpoint VPC com.amazonaws.example-region.secretsmanager per Secrets Manager sia nell'elenco degli endpoint.
  4. Seleziona l'endpoint dall'elenco degli endpoint, quindi scegli la scheda Subnets (Sottoreti). Assicurati che le sottoreti per questo endpoint includano quelle utilizzate dall'attività ECS.
    Nota: se non sono elencate sottoreti, scegli Manage Subnets (Gestisci sottoreti). Seleziona la sottorete in base alla relativa zona di disponibilità, quindi scegli Modify Subnets (Modifica sottoreti).

Per confermare che il gruppo di sicurezza collegato all'endpoint com.amazonaws.example-region.secretsmanager consenta le connessioni in ingresso sulla porta 443 dalle attività di Amazon ECS, procedi come segue:

  1. Seleziona l'endpoint dall'elenco degli endpoint.
  2. Scegli la scheda Security Groups (Gruppi di sicurezza).
  3. Scegli il Group ID (ID gruppo) per il gruppo di sicurezza che desideri controllare.
  4. Scegli la scheda Inbound rules (Regole in entrata).
  5. Verifica che l'elenco delle regole in entrata includa una regola che consenta connessioni in ingresso sulla porta 443 dalle tue attività ECS.