Verwenden Sie temporäre Anmeldeinformationen von AWS STS - AWS SDK for PHP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie temporäre Anmeldeinformationen von AWS STS

AWS Security Token Service (AWS STS) ermöglicht es Ihnen, eingeschränkte Rechte und temporäre Anmeldeinformationen für IAM-Benutzer oder für Benutzer, die Sie über einen Identitätsverbund authentifizieren, anzufordern. Weitere Informationen finden Sie unter Temporäre Sicherheitsanmeldedaten im IAM-Benutzerhandbuch. Für den Zugriff auf die meisten AWS Dienste können Sie temporäre Sicherheitsanmeldedaten verwenden. Eine Liste der Dienste, die temporäre Sicherheitsanmeldedaten akzeptieren, finden Sie im IAM-Benutzerhandbuch unter AWS Dienste, die mit IAM funktionieren.

Ein häufiger Anwendungsfall für temporäre Anmeldeinformationen besteht darin, mobilen oder clientseitigen Anwendungen Zugriff auf AWS Ressourcen zu gewähren, indem Benutzer über externe Identitätsanbieter authentifiziert werden (siehe Web Identity Federation).

Abrufen temporärer Anmeldeinformationen

AWS STS hat mehrere Operationen, die temporäre Anmeldeinformationen zurückgeben, aber der GetSessionToken Vorgang ist am einfachsten zu demonstrieren. Das folgende Snippet ruft temporäre Anmeldeinformationen ab, indem es die getSessionToken Methode des STS-Clients des PHP-SDK aufruft.

$sdk = new Aws\Sdk([ 'region' => 'us-east-1', ]); $stsClient = $sdk->createSts(); $result = $stsClient->getSessionToken();

Das Ergebnis für GetSessionToken und die anderen AWS STS Operationen enthält immer einen Wert. 'Credentials' Wenn Sie das drucken $result (zum Beispiel mitprint_r($result)), sieht es wie folgt aus.

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

Bereitstellung temporärer Anmeldeinformationen für die AWS SDK for PHP

Sie können temporäre Anmeldeinformationen mit einem anderen AWS Client verwenden, indem Sie den Client instanziieren und die von AWS STS diesem empfangenen Werte direkt übergeben.

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'] ] ]);

Sie können auch ein Aws\Credentials\Credentials-Objekt konstruieren und es bei der Instanziierung des Clients verwenden.

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 ]);

Allerdings ist die beste Möglichkeit, temporäre Anmeldeinformationen bereitzustellen, die Verwendung der createCredentials() Hilfsmethode aus dem StsClient. Diese Methode extrahiert die Daten aus einem AWS STS Ergebnis und erstellt das Credentials Objekt für Sie.

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

Weitere Informationen darüber, warum Sie möglicherweise temporäre Anmeldeinformationen in Ihrer Anwendung oder Ihrem Projekt verwenden müssen, finden Sie in der AWS STS Dokumentation unter Szenarien für die Gewährung temporären Zugriffs.