Gunakan kredensi sementara dari AWS STS - AWS SDK for PHP

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan kredensi sementara dari AWS STS

AWS Security Token Service (AWS STS) memungkinkan Anda untuk meminta hak istimewa terbatas, kredensi sementara untuk pengguna IAM, atau untuk pengguna yang Anda autentikasi melalui federasi identitas. Untuk pemahaman yang lebih dalam, lihat Kredensial Keamanan Sementara di Panduan Pengguna IAM. Anda dapat menggunakan kredensi keamanan sementara untuk mengakses sebagian besar AWS layanan. Untuk daftar layanan yang menerima kredenal keamanan sementara, lihat AWS layanan yang bekerja dengan IAM di Panduan Pengguna IAM.

Salah satu kasus penggunaan umum untuk kredensi sementara adalah memberikan akses aplikasi seluler atau sisi klien ke AWS sumber daya dengan mengautentikasi pengguna melalui penyedia identitas pihak ketiga (lihat Federasi Identitas Web).

Mendapatkan kredensi sementara

AWS STS memiliki beberapa operasi yang mengembalikan kredensi sementara, tetapi GetSessionToken operasi ini adalah yang paling sederhana untuk ditunjukkan. Cuplikan berikut mengambil kredensi sementara dengan memanggil getSessionToken metode klien STS PHP SDK.

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

Hasil untuk GetSessionToken dan AWS STS operasi lainnya selalu mengandung 'Credentials' nilai. Jika Anda mencetak $result (misalnya dengan menggunakanprint_r($result)), terlihat seperti berikut ini.

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

Memberikan kredensi sementara ke AWS SDK for PHP

Anda dapat menggunakan kredensi sementara dengan AWS klien lain dengan membuat instance klien dan meneruskan nilai yang diterima secara langsung. 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'] ] ]);

Anda juga dapat membuat Aws\Credentials\Credentials objek dan menggunakannya saat membuat instance klien.

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

Namun, cara terbaik untuk memberikan kredensi sementara adalah dengan menggunakan metode createCredentials() pembantu yang disertakan dengan. StsClient Metode ini mengekstrak data dari AWS STS hasil dan menciptakan Credentials objek untuk Anda.

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

Untuk informasi selengkapnya tentang alasan Anda mungkin perlu menggunakan kredensial sementara dalam aplikasi atau proyek, lihat Skenario untuk Memberikan Akses Sementara dalam dokumentasi. AWS STS