使用第 3 AWS SDK for PHP 版管理 IAM 存取金鑰 - AWS SDK for PHP

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用第 3 AWS SDK for PHP 版管理 IAM 存取金鑰

使用者需要自己的存取金鑰,才能以程式設計方式呼叫。AWS為了滿足這個需求,您可以為 IAM 使用者建立、修改、查看或輪換存取金鑰 (存取金鑰 ID 和私密存取金鑰)。在預設情況下,您建立存取金鑰時,其狀態為「作用中」。這表示使用者可以使用存取金鑰進行 API 呼叫。

下列範例示範如何:

  • 使用創建一個秘密訪問密鑰和相應的訪問密鑰 ID CreateAccessKey

  • 使用傳回與 IAM 使用者關聯之存取金鑰 ID 的相關資訊ListAccessKeys

  • 檢索有關上次使用訪問密鑰何時使用的信息GetAccessKeyLastUsed

  • 使用將存取金鑰的狀態從「作用中」變更為「非作用中」,反之亦然UpdateAccessKey

  • 使用刪除與 IAM 使用者關聯的存取 key pair DeleteAccessKey

所有的範例程式碼都可以AWS SDK for PHP在這裡取得 GitHub。

登入資料

在執行範例程式碼之前,請依照中所述設定您的AWS認證憑證。然後匯入AWS SDK for PHP,如中所述基本使用

建立存取金鑰

匯入

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;

範例程式碼

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->createAccessKey([ 'UserName' => 'IAM_USER_NAME', ]); $keyID = $result['AccessKey']['AccessKeyId']; $createDate = $result['AccessKey']['CreateDate']; $userName = $result['AccessKey']['UserName']; $status = $result['AccessKey']['Status']; // $secretKey = $result['AccessKey']['SecretAccessKey'] echo "<p>AccessKey " . $keyID . " created on " . $createDate . "</p>"; echo "<p>Username: " . $userName . "</p>"; echo "<p>Status: " . $status . "</p>"; } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

列出存取金鑰

匯入

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;

範例程式碼

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->listAccessKeys(); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

獲取有關訪問密鑰上次使用的信息

匯入

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;

範例程式碼

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->getAccessKeyLastUsed([ 'AccessKeyId' => 'ACCESS_KEY_ID', // REQUIRED ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

更新存取金鑰

匯入

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;

範例程式碼

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->updateAccessKey([ 'AccessKeyId' => 'ACCESS_KEY_ID', // REQUIRED 'Status' => 'Inactive', // REQUIRED 'UserName' => 'IAM_USER_NAME', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

刪除存取金鑰

匯入

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Iam\IamClient;

範例程式碼

$client = new IamClient([ 'profile' => 'default', 'region' => 'us-west-2', 'version' => '2010-05-08' ]); try { $result = $client->deleteAccessKey([ 'AccessKeyId' => 'ACCESS_KEY_ID', // REQUIRED 'UserName' => 'IAM_USER_NAME', ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }