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 IAM pengguna, atau untuk pengguna yang Anda autentikasi melalui federasi identitas. Untuk pemahaman yang lebih dalam, lihat Kredensial Keamanan Sementara di IAMPanduan Pengguna. Anda dapat menggunakan kredensi keamanan sementara untuk mengakses sebagian besar AWS layanan. Untuk daftar layanan yang menerima kredensi keamanan sementara, lihat AWS layanan yang berfungsi IAM di IAMPanduan Pengguna.
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. PHP SDK STS
$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