本指南不再进行更新。有关当前信息和说明,请参阅新的 Amazon S3 用户指南。
使用 AWS 账户或 IAM 用户临时凭证发出请求 – 适用于 PHP 的 AWS 开发工具包
本主题介绍如何使用版本 3 的适用于 PHP 的 AWS 开发工具包中的类请求临时安全凭证并使用这些凭证访问 Amazon S3。此部分假定您已按照使用适用于 PHP 的 AWS 开发工具包和运行 PHP 示例中的说明执行操作,并正确安装了适用于 PHP 的 AWS 开发工具包。
IAM 用户或 AWS 账户可使用版本 3 的适用于 PHP 的 AWS 开发工具包请求临时安全凭证。之后,它可使用临时凭证访问 Amazon S3。这些凭证将在会话持续时间结束时到期。
默认情况下,会话的持续时间为一个小时。如果您使用了 IAM 用户凭证,则可在请求临时安全凭证时指定持续时间(15 分钟到角色的最长会话持续时间)。有关临时安全凭证的更多信息,请参阅《IAM
用户指南》中的临时安全凭证。有关发出请求的更多信息,请参阅提出请求。
注意
如果您使用 AWS 账户安全凭证获取临时安全凭证,则临时安全凭证的有效期仅为一个小时。只有当您使用 IAM 用户证书来请求会话时,您才可以指定会话持续时间。
以下 PHP 示例使用临时安全凭证列出指定存储桶中的对象键。该示例将为默认一小时的会话获取临时安全凭证,然后使用这些凭证向 Amazon S3 发送经身份验证的请求。有关运行本指南中的
PHP 示例的信息,请参阅运行 PHP 示例。
如果要使用 IAM 用户凭证测试示例,则需要在 AWS 账户下创建一个 IAM 用户。有关如何创建 IAM 用户的信息,请参阅《IAM 用户指南》中的创建您的第一个 IAM 用户和管理员组。有关在使用 IAM 用户凭证请求会话时设置会话持续时间的示例,请参阅使用联合身份用户临时凭证发出请求 – 适用于 PHP 的 AWS 开发工具包。require 'vendor/autoload.php';
use Aws\Sts\StsClient;
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = '*** Your Bucket Name ***';
$sts = new StsClient([
'version' => 'latest',
'region' => 'us-east-1'
]);
$sessionToken = $sts->getSessionToken();
$s3 = new S3Client([
'region' => 'us-east-1',
'version' => 'latest',
'credentials' => [
'key' => $sessionToken['Credentials']['AccessKeyId'],
'secret' => $sessionToken['Credentials']['SecretAccessKey'],
'token' => $sessionToken['Credentials']['SessionToken']
]
]);
$result = $s3->listBuckets();
try {
// Retrieve a paginator for listing objects.
$objects = $s3->getPaginator('ListObjects', [
'Bucket' => $bucket
]);
echo "Keys retrieved!" . PHP_EOL;
// List objects
foreach ($objects as $object) {
echo $object['Key'] . PHP_EOL;
}
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
相关资源