Risoluzione di credenziali e profili - AWS SDK for .NET

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

Risoluzione di credenziali e profili

AWS SDK for .NETCerca le credenziali in un determinato ordine e utilizza il primo set disponibile per l'applicazione corrente.

Ordine di ricerca delle credenziali
  1. Credenziali impostate esplicitamente sul client del AWS servizio, come descritto in. Accesso a credenziali e profili in un'applicazione

    Nota

    Questo argomento è incluso nella Considerazioni speciali sezione perché non è il metodo preferito per specificare le credenziali.

  2. Un profilo di credenziali con il nome specificato da un valore in. AWSConfigs AWSProfileName.

  3. Un profilo di credenziali con il nome specificato dalla variabile di AWS_PROFILE ambiente.

  4. Il profilo delle credenziali [default].

  5. Sessione AWSCredentials creata dalle variabili di AWS_SESSION_TOKEN ambiente AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, e, se non sono tutte vuote.

  6. Di base AWSCredentials che vengono create dalle variabili AWS_ACCESS_KEY_ID di AWS_SECRET_ACCESS_KEY ambiente, se entrambe non sono vuote.

  7. IAM Roles for Tasks for Amazon ECS task.

  8. Metadati delle istanze Amazon EC2.

Se l'applicazione è in esecuzione su un'istanza Amazon EC2, ad esempio in un ambiente di produzione, utilizza un ruolo IAM come descritto in. Concessione dell'accesso utilizzando un ruolo IAM Altrimenti, ad esempio nei test preliminari alla release, archivia le credenziali in un file che utilizza il formato di file delle AWS credenziali a cui l'applicazione Web ha accesso sul server.

Risoluzione del profilo

Con due diversi meccanismi di archiviazione delle credenziali, è importante capire come configurarle AWS SDK for .NET per utilizzarle. IlAWSConfigs. AWSProfilesLocationla proprietà controlla il modo in cui AWS SDK for .NET trova i profili di credenziali.

AWSProfilesLocation Comportamento di risoluzione del profilo

null (non impostato) o vuoto

Cerca nell'SDK Store se la piattaforma lo supporta, quindi cerca il file delle AWS credenziali condivise nella posizione predefinita. Se il profilo non si trova in nessuna di queste posizioni, cerca ~/.aws/config (Linux o macOS) o %USERPROFILE%\.aws\config (Windows).

Il percorso di un file nel formato di file delle AWS credenziali

Cerca solo un profilo con uno specifico nome nel file specificato.

Utilizzo delle credenziali dell'account utente federato

Le applicazioni che utilizzano il AWS SDK for .NET (AWSSDK.Core versione 3.1.6.0 e successive) possono utilizzare account utente federati tramite Active Directory Federation Services (ADFS) per accedere ai servizi utilizzando Security Assertion Markup AWS Language (SAML).

Il supporto degli accessi federati indica che gli utenti possono autenticarsi utilizzando Active Directory. Le credenziali temporanee vengono concesse automaticamente all'utente. Queste credenziali temporanee, valide per un'ora, vengono utilizzate quando l'applicazione richiama i servizi. AWS L'SDK gestisce le credenziali temporanee. Per gli account degli utenti aggiunti al dominio, se l'applicazione effettua una chiamata, ma le credenziali sono scadute, l'utente viene riautenticato automaticamente e vengono concesse nuove credenziali. (Per non-domain-joined gli account, all'utente viene richiesto di inserire le credenziali prima della riautenticazione.)

Per utilizzare questo supporto nell'applicazione.NET, è necessario innanzitutto configurare il profilo del ruolo utilizzando un cmdlet. PowerShell Per informazioni su come, consulta la AWS Tools for Windows PowerShell documentazione.

Dopo aver impostato il profilo del ruolo, fai riferimento al profilo nella tua candidatura. Esistono diversi modi per eseguire questa operazione, uno dei quali consiste nell'utilizzare il AWSConfigs. AWSProfileNameproprietà nello stesso modo in cui lo faresti con altri profili di credenziali.

L'AWS Security Token Serviceassemblaggio (AWSSDK. SecurityToken) fornisce il supporto SAML per ottenere AWS le credenziali. Per utilizzare le credenziali degli account utente federati, assicurati che questo assembly sia disponibile per l'applicazione.

Specificare ruoli o credenziali temporanee

Per le applicazioni eseguite su istanze Amazon EC2, il modo più sicuro per gestire le credenziali consiste nell'utilizzare i ruoli IAM, come descritto in. Concessione dell'accesso utilizzando un ruolo IAM

Per gli scenari applicativi in cui l'eseguibile del software è disponibile per gli utenti esterni all'organizzazione, consigliamo di progettare il software in modo da utilizzare credenziali di sicurezza temporanee. Oltre a fornire un accesso limitato alle AWS risorse, queste credenziali hanno il vantaggio di scadere dopo un determinato periodo di tempo. Per ulteriori informazioni sull'utilizzo delle credenziali di sicurezza temporanee, vedi quanto segue:

Utilizzo di credenziali proxy

Se il software comunica con AWS il proxy, è possibile specificare le credenziali per il proxy utilizzando la ProxyCredentials proprietà della Config classe di un servizio. La Config classe di un servizio fa in genere parte del namespace principale del servizio. Gli esempi includono quanto segue: AmazonCloudDirectoryConfigin Amazon. CloudDirectorynamespace e AmazonGameLiftConfigin Amazon. GameLiftnamespace.

Per Amazon S3, ad esempio, è possibile utilizzare un codice simile al seguente, dove SecurelyStoredUserName e SecurelyStoredPassword sono il nome utente e la password del proxy specificati in un NetworkCredentialoggetto.

AmazonS3Config config = new AmazonS3Config(); config.ProxyCredentials = new NetworkCredential(SecurelyStoredUserName, SecurelyStoredPassword);
Nota

Le versioni precedenti dell'SDK utilizzavano ProxyUsername e ProxyPassword, ma queste proprietà sono obsolete.