La versione 4 (V4) di è stata rilasciata! AWS SDK per .NET
Per informazioni sulle modifiche sostanziali e sulla migrazione delle applicazioni, consulta l'argomento sulla migrazione.
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à.
Condiviso AWS file delle credenziali
(Assicurati di leggere gli avvisi e le linee guida importanti per le credenziali.)
Un modo per fornire le credenziali per le applicazioni consiste nel creare profili nel file delle AWS credenziali condivise e quindi archiviare le credenziali in tali profili. Questo file può essere utilizzato dagli altri SDK. AWS Può essere utilizzato anche dai AWS CLI AWS toolkit per Visual Studio e VS JetBrains Code. AWS Tools for Windows PowerShell https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/
avvertimento
Per evitare rischi per la sicurezza, non utilizzare gli utenti IAM per l’autenticazione quando sviluppi software creato ad hoc o lavori con dati reali. Utilizza invece la federazione con un provider di identità come Centro identità AWS IAM.
Nota
Le informazioni contenute in questo argomento riguardano le circostanze in cui è necessario ottenere e gestire manualmente le credenziali a breve o lungo termine. Per ulteriori informazioni sulle credenziali a breve e lungo termine, consulta l'argomento relativo agli altri modi di autenticazione disponibili nella Guida di riferimento per SDK e strumenti AWS .
Per le migliori pratiche di sicurezza, usa Centro identità AWS IAM, come descritto in. Autenticazione con AWS
Informazioni generali
Per impostazione predefinita, il file AWS delle credenziali condivise si trova nella .aws directory all'interno della directory home ed è denominato credentials ~/.aws/credentials (Linux o macOS) o %USERPROFILE%\.aws\credentials (Windows). Per informazioni sulle posizioni alternative, consulta Posizione dei file condivisi nella Guida di riferimento di AWS SDK and Tools.
Il file delle AWS credenziali condivise è un file di testo semplice e segue un determinato formato. Per informazioni sul formato dei file delle AWS credenziali, consulta Formato del file delle credenziali nella Guida di riferimento di AWS SDK and Tools.
È possibile gestire i profili nel file delle AWS credenziali condivise in diversi modi.
-
Utilizza qualsiasi editor di testo per creare e aggiornare il file delle AWS credenziali condivise.
-
Utilizza il Amazon.Runtime.CredentialManagement namespace dell' AWS SDK per .NET API, come illustrato più avanti in questo argomento.
-
Usa i comandi e le procedure per AWS Strumenti per PowerShell e i AWS toolkit per Visual Studio e VS Code JetBrains. https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-credentials.html
-
Usa AWS CLI i comandi; ad esempio,
aws configure set aws_access_key_ideaws configure set aws_secret_access_key.
Esempi di gestione dei profili
Le sezioni seguenti mostrano esempi di profili nel file delle AWS credenziali condivise. Alcuni esempi mostrano il risultato, che può essere ottenuto tramite uno qualsiasi dei metodi di gestione delle credenziali descritti in precedenza. Altri esempi mostrano come utilizzare un metodo particolare.
Il profilo predefinito
Il file AWS delle credenziali condivise avrà quasi sempre un profilo denominato default. Qui è dove AWS SDK per .NET cerca le credenziali se non sono definiti altri profili.
Il [default] profilo in genere ha un aspetto simile al seguente.
[default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Crea un profilo a livello di programmazione
Questo esempio mostra come creare un profilo e salvarlo nel file delle AWS credenziali condivise a livello di programmazione. Utilizza le seguenti classi dello spazio dei Amazon.Runtime.CredentialManagement nomi:, e. CredentialProfileOptions CredentialProfile SharedCredentialsFile
using Amazon.Runtime.CredentialManagement; ... // Do not include credentials in your code. WriteProfile("my_new_profile", SecurelyStoredKeyID, SecurelyStoredSecretAccessKey); ... void WriteProfile(string profileName, string keyId, string secret) { Console.WriteLine($"Create the [{profileName}] profile..."); var options = new CredentialProfileOptions { AccessKey = keyId, SecretKey = secret }; var profile = new CredentialProfile(profileName, options); var sharedFile = new SharedCredentialsFile(); sharedFile.RegisterProfile(profile); }
avvertimento
Codice come questo in genere non dovrebbe essere presente nell'applicazione. Se lo includete nell'applicazione, prendete le dovute precauzioni per assicurarvi che le chiavi in chiaro non possano essere viste nel codice, sulla rete o persino nella memoria del computer.
Di seguito è riportato il profilo creato da questo esempio.
[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Aggiornare un profilo esistente a livello di programmazione
Questo esempio mostra come aggiornare a livello di codice il profilo creato in precedenza. Utilizza le seguenti classi dello Amazon.Runtime.CredentialManagement spazio dei nomi: e. CredentialProfile SharedCredentialsFile Utilizza anche la RegionEndpoint classe del namespace Amazon.
using Amazon.Runtime.CredentialManagement; ... AddRegion("my_new_profile", RegionEndpoint.USWest2); ... void AddRegion(string profileName, RegionEndpoint region) { var sharedFile = new SharedCredentialsFile(); CredentialProfile profile; if (sharedFile.TryGetProfile(profileName, out profile)) { profile.Region = region; sharedFile.RegisterProfile(profile); } }
Di seguito è riportato il profilo aggiornato.
[my_new_profile] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY region=us-west-2
Nota
È inoltre possibile impostare la AWS regione in altre località e utilizzando altri metodi. Per ulteriori informazioni, consulta Impostazione AWS della regione per AWS SDK per .NET.
In che modo l'applicazione utilizza questo file
-
Risoluzione automatica: l'SDK legge automaticamente i profili da questo file. Imposta un nome di profilo tramite
AWSConfigs.AWSProfileNameo la variabile diAWS_PROFILEambiente o fai affidamento sul[default]profilo. Per ulteriori informazioni, consulta Risoluzione di credenziali e profili. -
Accesso esplicito tramite codice: carica un profilo specifico a livello di codice e passa le sue credenziali a un client di servizio. Per ulteriori informazioni, consulta Crea un client AmazonS3 utilizzando la classe SharedCredentialsFile.