适用于 PHP 的 AWS 开发工具包
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用AWS SDK for PHP版本 3 管理 IAM 访问密钥

用户需要自己的访问密钥以编程方式调用 AWS。要满足这一需要,您可以创建、修改、查看或轮换 IAM 用户的访问密钥 (访问密钥 ID 和秘密访问密钥)。默认情况下,当您创建访问密钥时,其状态为“Active”(活动)。这表示用户可以将访问密钥用于 API 调用。

以下示例演示如何:

  • 使用 CreateAccessKey 创建秘密访问密钥和相应的访问密钥 ID。

  • 使用 ListAccessKeys 返回有关与 IAM 用户关联的访问密钥 ID 的信息。

  • 使用 GetAccessKeyLastUsed 检索有关上次使用访问密钥的时间的信息。

  • 使用 UpdateAccessKey 将访问密钥的状态从“Active”更改为“Inactive”或相反。

  • 使用 DeleteAccessKey 删除与 IAM 用户关联的访问密钥对。

GitHub 上的此处提供了AWS SDK for PHP版本 3 的所有示例代码。

凭证

在运行示例代码之前,您需要配置 AWS 凭证,如适用于 PHP 的 AWS 开发工具包版本 3 的凭证中所述。然后导入AWS SDK for PHP,如适用于 PHP 的 AWS 开发工具包版本 3 的基本使用模式中所述。

创建访问密钥

导入

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

示例代码

$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\Iam\IamClient; use Aws\Exception\AwsException;

示例代码

$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\Iam\IamClient; use Aws\Exception\AwsException;

示例代码

$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\Iam\IamClient; use Aws\Exception\AwsException;

示例代码

$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\Iam\IamClient; use Aws\Exception\AwsException;

示例代码

$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()); }