Usa le credenziali temporanee di 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à.

Usa le credenziali temporanee di AWS STS

AWS Security Token Service(AWS STS) consente di richiedere privilegi limitati e credenziali temporanee per gli utenti IAM o per gli utenti autenticati tramite federazione delle identità. Per una comprensione più approfondita, consulta Temporary Security Credentials nella Guida per l'utente IAM. È possibile utilizzare le credenziali di sicurezza temporanee per accedere alla maggior parte dei servizi AWS. Per un elenco dei servizi che accettano credenziali di sicurezza temporanee, consulta AWSi servizi che funzionano con IAM nella Guida per l'utente IAM.

Un caso d'uso comune per le credenziali temporanee consiste nel concedere alle applicazioni mobili o lato client l'accesso alle AWS risorse autenticando gli utenti tramite provider di identità di terze parti (vedere Web Identity Federation).

Ottenere 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>' ) ... )

Fornire credenziali temporanee al AWS SDK for PHP

È possibile utilizzare credenziali temporanee con un altro AWS client istanziando il client e trasmettendo direttamente i valori ricevuti da. AWS STS

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.