Utilizzo di credenziali temporanee da AWS STS - AWS SDK for PHP

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 credenziali temporanee da AWS STS

AWS Security Token Service(AWS STS) consente di richiedere privilegi limitati,credenziali temporaneeper utenti IAM o per utenti autenticati tramite la federazione delle identità.

Le credenziali temporanee vengono comunemente usate, ad esempio, per consentire alle applicazioni mobili o lato client di accedere alleAWSrisorse autenticando gli utenti tramite provider di identità di terze parti (vedereFederazione delle identità Web).

Nota

Le credenziali temporanee generate da AWS STS non sono supportate da tutti i servizi. Per scoprire se il servizio che utilizzi supporta questo tipo di credenziali, consulta la pagina relativa alle credenziali di sicurezza temporanee IAM.

Ottenimento di credenziali temporanee

AWS STS dispone di diverse operazioni che restituiscono credenziali temporanee, ma l'operazione GetSessionToken è la più semplice a fini dimostrativi. Presumendo di avere un'istanza di Aws\Sts\StsClient archiviata nella variabile $stsClient, puoi richiamarla come segue.

$result = $stsClient->getSessionToken();

Il risultato per GetSessionToken e per le altre operazioni AWS STS contiene sempre un valore 'Credentials'. Se viene stampato (ad esempio print_r($result)), il risultato è simile a quanto segue.

Array ( ... [Credentials] => Array ( [SessionToken] => '<base64 encoded session token value>' [SecretAccessKey] => '<temporary secret access key value>' [Expiration] => 2013-11-01T01:57:52Z [AccessKeyId] => '<temporary access key value>' ) ... )

Specifica di credenziali temporanee ad AWS SDK for PHP

Puoi utilizzare le credenziali temporanee con un'altraAWSclient creandone un'istanza e passando i valori ricevuti daAWS STSdirettamente.

use Aws\S3\S3Client; $result = $stsClient->getSessionToken(); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => [ 'key' => $result['Credentials']['AccessKeyId'], 'secret' => $result['Credentials']['SecretAccessKey'], 'token' => $result['Credentials']['SessionToken'] ] ]);

Puoi anche costruire un oggetto Aws\Credentials\Credentials e utilizzarlo al momento di creare un'istanza del client.

use Aws\Credentials\Credentials; use Aws\S3\S3Client; $result = $stsClient->getSessionToken(); $credentials = new Credentials( $result['Credentials']['AccessKeyId'], $result['Credentials']['SecretAccessKey'], $result['Credentials']['SessionToken'] ); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => $credentials ]);

Tuttavia, il modo migliore per fornire le credenziali temporanee è utilizzare il metodo helper createCredentials() incluso in StsClient, che estrae i dati da un risultato AWS STS e crea l'oggetto Credentials per te.

$result = $stsClient->getSessionToken(); $credentials = $stsClient->createCredentials($result); $s3Client = new S3Client([ 'version' => '2006-03-01', 'region' => 'us-west-2', 'credentials' => $credentials ]);

Per maggiori informazioni sui motivi per cui potresti dover utilizzare credenziali temporanee nella tua applicazione o nel tuo progetto, consulta la sezione relativa agli scenari per la concessione dell'accesso temporaneo nella documentazione di AWS STS.