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à.
Utilizzo di Gestione dei segreti AWS Agente
Come funziona l'agente Secrets Manager
L' Gestione dei segreti AWS Agent è un servizio HTTP lato client che ti aiuta a standardizzare il modo in cui utilizzi i segreti di Secrets Manager nei tuoi ambienti di elaborazione. È possibile utilizzarlo con i seguenti servizi:
-
AWS Lambda
-
Amazon Elastic Container Service
-
Amazon Elastic Kubernetes Service
-
Amazon Elastic Compute Cloud
L'agente Secrets Manager recupera e memorizza nella cache i segreti in memoria, consentendo alle applicazioni di ottenere segreti da localhost invece di effettuare chiamate dirette a Secrets Manager. L'agente Secrets Manager può solo leggere i segreti, non può modificarli.
L'agente Secrets Manager è open source. Il codice sorgente, le istruzioni di installazione e le informazioni sulla versione più recente sono disponibili su GitHub
Importante
L'agente Secrets Manager utilizza AWS le credenziali dell'ambiente per chiamare Secrets Manager. Include la protezione contro Server Side Request Forgery (SSRF) per contribuire a migliorare la sicurezza segreta. Per impostazione predefinita, l'agente Secrets Manager utilizza lo scambio di ML-KEM chiavi post-quantum come scambio di chiavi con la massima priorità.
Informazioni sulla memorizzazione nella cache dell'agente Secrets Manager
L'agente Secrets Manager utilizza una cache in memoria che si ripristina al riavvio dell'agente Secrets Manager. Aggiorna periodicamente i valori segreti memorizzati nella cache in base a quanto segue:
-
La frequenza di aggiornamento predefinita (TTL) è 300 secondi
-
È possibile modificare il TTL utilizzando un file di configurazione
-
L'aggiornamento avviene quando si richiede un segreto dopo la scadenza del TTL
Nota
L'agente Secrets Manager non include l'invalidazione della cache. Se un segreto ruota prima della scadenza della voce della cache, l'agente Secrets Manager potrebbe restituire un valore segreto non aggiornato.
L'agente Secrets Manager restituisce valori segreti nello stesso formato della risposta diGetSecretValue. I valori segreti non sono crittografati nella cache.
Crea l'agente Secrets Manager
Prima di iniziare, assicurati di avere gli strumenti di sviluppo standard e gli strumenti Rust installati per la tua piattaforma.
Nota
La creazione dell'agente con la fips funzionalità abilitata su macOS richiede attualmente la seguente soluzione alternativa:
-
Crea una variabile di ambiente chiamata
SDKROOTche è impostata sul risultato dell'esecuzionexcrun --show-sdk-path
Installare l'agente Secrets Manager
Scegli il tuo ambiente di elaborazione tra le seguenti opzioni di installazione.
Recupera segreti con l'agente Secrets Manager
Per recuperare un segreto, chiamate l'endpoint locale dell'agente Secrets Manager con il nome segreto o l'ARN come parametro di interrogazione. Per impostazione predefinita, l'agente Secrets Manager recupera la AWSCURRENT versione del segreto. Per recuperare una versione diversa, utilizzare il parametro VersionStage o VersionID.
Importante
Per proteggere l'agente Secrets Manager, è necessario includere un'intestazione del token SSRF come parte di ogni richiesta:. X-Aws-Parameters-Secrets-Token L'agente Secrets Manager nega le richieste che non hanno questa intestazione o che hanno un token SSRF non valido. È possibile personalizzare il nome dell'intestazione SSRF in. Configurazione dell'agente Secrets Manager
Autorizzazioni richieste
L'agente Secrets Manager utilizza l' AWS SDK per Rust, che utilizza la catena di fornitori di AWS credenziali. L'identità di queste credenziali IAM determina le autorizzazioni di cui dispone l'agente Secrets Manager per recuperare i segreti.
-
secretsmanager:DescribeSecret -
secretsmanager:GetSecretValue
Per ulteriori informazioni sulle autorizzazioni, consultare Riferimento alle autorizzazioni per Gestione dei segreti AWS.
Importante
Dopo aver inserito il valore segreto nell'agente Secrets Manager, qualsiasi utente con accesso all'ambiente di calcolo e al token SSRF può accedere al segreto dalla cache di Secrets Manager Agent. Per ulteriori informazioni, consulta Considerazioni relative alla sicurezza.
Richieste di esempio
Informazioni sul parametro RefreshNow
L'agente Secrets Manager utilizza una cache in memoria per archiviare i valori segreti, che aggiorna periodicamente. Per impostazione predefinita, questo aggiornamento si verifica quando si richiede un segreto dopo la scadenza del Time to Live (TTL), in genere ogni 300 secondi. Tuttavia, questo approccio a volte può portare a valori segreti obsoleti, specialmente se un segreto ruota prima della scadenza della voce della cache.
Per ovviare a questa limitazione, l'agente Secrets Manager supporta un parametro chiamato refreshNow nell'URL. È possibile utilizzare questo parametro per forzare l'aggiornamento immediato del valore di un segreto, aggirando la cache e assicurandosi di disporre delle informazioni più aggiornate.
- Comportamento predefinito (senza)
refreshNow -
-
Utilizza i valori memorizzati nella cache fino alla scadenza del TTL
-
Aggiorna i segreti solo dopo TTL (impostazione predefinita: 300 secondi)
-
Può restituire valori obsoleti se i segreti ruotano prima della scadenza della cache
-
- Comportamento con
refreshNow=true -
-
Ignora completamente la cache
-
Recupera l'ultimo valore segreto direttamente da Secrets Manager
-
Aggiorna la cache con il nuovo valore e reimposta il TTL
-
Ti assicura di ottenere sempre il valore segreto più recente
-
Force-refresh un valore segreto
Importante
Il valore predefinito di refreshNow è false. Se impostato sutrue, sovrascrive il TTL specificato nel file di configurazione di Secrets Manager Agent ed effettua una chiamata API a Secrets Manager.
Recupera i segreti tra gli account con il concatenamento dei ruoli
Il concatenamento dei ruoli consente all'agente Secrets Manager di recuperare segreti da altri AWS account assumendo ruoli IAM utilizzando. AWS STS AssumeRole L'agente Secrets Manager crea e memorizza nella cache un client di caching separato per ogni ARN di ruolo univoco. Ogni client di ruolo mantiene la propria cache indipendente, quindi lo stesso segreto recuperato con ruoli diversi ha voci di cache separate.
Autorizzazioni richieste
Per utilizzare il concatenamento dei ruoli, è necessario quanto segue:
-
Le credenziali di ambiente dell'agente Secrets Manager devono disporre dell'
sts:AssumeRoleautorizzazione per l'ARN del ruolo di destinazione. -
Il ruolo di destinazione deve disporre delle autorizzazioni
secretsmanager:GetSecretValueesecretsmanager:DescribeSecretdelle autorizzazioni per i segreti a cui desideri accedere. -
La politica di fiducia del ruolo di destinazione deve consentire all'identità dell'agente Secrets Manager di assumerla.
Recupera i segreti tra account
Includi il parametro di roleArn query nella richiesta all'agente Secrets Manager per specificare il ruolo da assumere per il recupero dei segreti.
Configurazione e limiti del concatenamento dei ruoli
Configura il concatenamento dei ruoli con l'max_rolesopzione nel tuo file di configurazione TOML. Questo imposta il numero massimo di ruoli assunti simultaneamente, nell'intervallo da 1 a 20. Il valore di default è 20.
Importante
I ruoli presunti non vengono rimossi dalla cache dei ruoli dell'agente Secrets Manager. Una volta raggiunto il numero massimo di ruoli, le richieste con nuovi ARN di ruolo vengono rifiutate con un 400 errore fino al riavvio dell'agente Secrets Manager.
Risposte di errore per il concatenamento dei ruoli
400-
Il
roleArnformato non è valido o è stato raggiunto il numero massimo di ruoli assunti. 403-
La chiamata AWS STS
AssumeRolenon è riuscita. Verifica che la politica di attendibilità del ruolo di destinazione consenta all'identità dell'agente Secrets Manager di assumerla.
Pre-fetch segreti all'avvio
Per impostazione predefinita, l'agente Secrets Manager recupera i segreti su richiesta quando l'applicazione li richiede. Con il prefetching, l'agente Secrets Manager carica i segreti specifici nella cache all'avvio, in modo che l'applicazione possa accedervi immediatamente senza attendere la prima chiamata API. Pre-fetching viene eseguito come attività in background: l'agente Secrets Manager inizia ad accettare le richieste immediatamente e non blocca il completamento del pre-fetch.
È possibile specificare i segreti da recuperare in anticipo in due modi:
-
Segreti espliciti: elenca ID o ARN segreti specifici.
-
Tag-based scoperta: scopri i segreti tramite tag key. L'agente Secrets Manager recupera tutti i segreti che hanno il tag specificato.
Autorizzazioni richieste
Oltre alle autorizzazioni standard per il recupero dei segreti, il prefetching richiede quanto segue:
-
secretsmanager:BatchGetSecretValue— Richiesto per tutte le operazioni di pre-fetch. -
secretsmanager:ListSecrets— Richiesto solo quando si utilizza il rilevamento basato su tag.
Configurazione del pre-fetching
Aggiungi una [prefetch] sezione al tuo file di configurazione TOML. Sono disponibili le seguenti opzioni:
cache_buffer_ratio-
La frazione massima di cache da riempire per client durante il pre-fetch, compresa tra 0,1 e 1,0. L'impostazione predefinita è 0,8. Quando viene raggiunto il limite del buffer, l'agente Secrets Manager interrompe il prerecupero dei segreti rimanenti e non rimuove le voci della cache esistenti. I segreti non caricati durante il prefetch sono ancora disponibili su richiesta.
max_jitter_seconds-
Un ritardo casuale in secondi prima dell'inizio del prefetching, compreso tra 0 e 10. Il valore predefinito è 0. Utilizzatelo per impedire chiamate API sincronizzate a livello di parco quando più agenti vengono avviati contemporaneamente.
Esempio Pre-fetch configurazione con segreti espliciti
[prefetch] cache_buffer_ratio = 0.6 max_jitter_seconds = 5 secrets = [ { secret_id = "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-AbCdEf" }, { secret_id = "MyOtherSecret" }, ]
Esempio Pre-fetch configurazione con rilevamento basato su tag
[prefetch] cache_buffer_ratio = 0.8 filter_tags = [ { key = "Environment" }, { key = "Team" }, ]
Puoi anche combinare segreti espliciti e rilevamento basato su tag nella stessa configurazione. Per il recupero preliminare tra più account, aggiungi il campo. role_arn Per ulteriori informazioni, consulta Recupera i segreti tra gli account con il concatenamento dei ruoli.
Esempio Pre-fetch configurazione con accesso su più account
[prefetch] cache_buffer_ratio = 0.6 max_jitter_seconds = 5 secrets = [ { secret_id = "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-AbCdEf" }, { secret_id = "cross-account-secret", role_arn = "arn:aws:iam::987654321098:role/SecretAccessRole" }, ] filter_tags = [ { key = "Environment" }, { key = "Team", role_arn = "arn:aws:iam::987654321098:role/SecretAccessRole" }, ]
Configurazione dell'agente Secrets Manager
Per modificare la configurazione dell'agente Secrets Manager, crea un file di configurazione TOML./aws_secretsmanager_agent --config
config.toml
Opzioni di configurazione
log_level-
Il livello di dettaglio riportato nei log per l'agente Secrets Manager: DEBUG, INFO, WARN, ERROR o NONE. L'impostazione predefinita è INFO.
log_to_file-
Se accedere a un file o stdout/stderr:
trueofalse. Il valore predefinito ètrue. http_port-
La porta per il server HTTP locale, nell'intervallo da 1024 a 65535. L'impostazione predefinita è 2773.
region-
La AWS regione da utilizzare per le richieste. Se non viene specificata alcuna regione, l'agente Secrets Manager determina la regione dall'SDK. Per ulteriori informazioni, consulta Specificare le credenziali e la regione predefinita nella Guida per sviluppatori AWS SDK for Rust.
ttl_seconds-
Il TTL in secondi per gli elementi memorizzati nella cache, compreso tra 0 e 3600. L'impostazione predefinita è 300. 0 indica che non è presente alcuna memorizzazione nella cache.
cache_size-
Il numero massimo di segreti che possono essere archiviati nella cache, compreso tra 1 e 1000. Il valore predefinito è 1000.
ssrf_headers-
Un elenco di nomi di intestazione che l'agente Secrets Manager controlla per il token SSRF. L'impostazione predefinita è "X-Aws-Parameters-Secrets-Token,». X-Vault-Token
ssrf_env_variables-
Un elenco di nomi di variabili di ambiente che l'agente Secrets Manager controlla in ordine sequenziale per il token SSRF. La variabile di ambiente può contenere il token o un riferimento al file del token come in:.
AWS_TOKEN=file:///var/run/awssmatokenL'impostazione predefinita è "AWS_TOKEN, AWS_SESSION_TOKEN, AWS_CONTAINER_AUTHORIZATION_TOKEN». path_prefix-
Il prefisso URI utilizzato per determinare se la richiesta è una richiesta basata sul percorso. L'impostazione predefinita è «/v1/».
max_conn-
Il numero massimo di connessioni dai client HTTP consentito dall'agente Secrets Manager, compreso tra 1 e 1000. Il valore predefinito è 800.
max_roles-
Il numero massimo di ruoli IAM simultanei per l'accesso su più account, compreso tra 1 e 20. Il valore di default è 20. Per ulteriori informazioni, consulta Recupera i segreti tra gli account con il concatenamento dei ruoli.
Funzionalità opzionali
L'agente Secrets Manager può essere creato con funzionalità opzionali passando il --features flag acargo build. Le funzionalità disponibili sono:
Caratteristiche di compilazione
prefer-post-quantum-
Crea
X25519MLKEM768l'algoritmo di scambio di chiavi con la massima priorità. Altrimenti, è disponibile ma non ha la massima priorità.X25519MLKEM768è un algoritmo di scambio di chiavi ibrido e post-quantistico sicuro. fips-
Limita le suite di crittografia utilizzate dall'agente ai soli codici. FIPS-approved
Registrazione dei log
- Registrazione locale
-
L'agente Secrets Manager registra gli errori localmente nel file
logs/secrets_manager_agent.logo in stdout/stderr base alla variabile dilog_to_fileconfigurazione. Quando l'applicazione chiama l'agente Secrets Manager per ottenere un segreto, tali chiamate vengono visualizzate nel registro locale. Non compaiono nei CloudTrail log. - Rotazione del registro
-
L'agente Secrets Manager crea un nuovo file di registro quando il file raggiunge i 10 MB e memorizza fino a cinque file di registro in totale.
- AWS registrazione del servizio
-
Il registro non viene inviato a Secrets Manager CloudTrail, o CloudWatch. Le richieste di ottenere segreti dall'agente Secrets Manager non vengono visualizzate in questi registri. Quando l'agente Secrets Manager effettua una chiamata a Secrets Manager per ottenere un segreto, tale chiamata viene registrata CloudTrail con una stringa agente utente contenente
aws-secrets-manager-agent.
È possibile configurare le opzioni di registrazione in. Configurazione dell'agente Secrets Manager
Considerazioni relative alla sicurezza
- Dominio di fiducia
-
Per un'architettura ad agenti, il dominio di fiducia è il luogo in cui sono accessibili l'endpoint dell'agente e il token SSRF, che di solito è l'intero host. Il dominio di fiducia per l'agente Secrets Manager deve corrispondere al dominio in cui sono disponibili le credenziali di Secrets Manager per mantenere lo stesso livello di sicurezza. Ad esempio, su Amazon EC2 il dominio di fiducia per l'agente Secrets Manager sarebbe lo stesso del dominio delle credenziali quando si utilizzano i ruoli per Amazon EC2.
Importante
Le applicazioni attente alla sicurezza che non utilizzano già una soluzione agente con le credenziali di Secrets Manager bloccate sull'applicazione dovrebbero prendere in considerazione l'utilizzo degli AWS SDK o delle soluzioni di caching specifici del linguaggio. Per ulteriori informazioni, consulta Get secrets.