STS相关接口 STS即Secure Token Service 是一种安全凭证服务,可以使用STS来完成对于临时用户的访问授权。对于跨用户短期访问对象存储资源时,可以使用STS服务。这样就不需要透露主账号AK/SK,只需要生成一个短期访问凭证给需要的用户使用即可,避免主账号AK/SK泄露带来的安全风险。 初始化STS服务 php require '/path/to/autoload.php'; use AwsStsStsClient; use AwsExceptionAwsException; use AwsCredentialsCredentials; const endpoint ' '; // e.g. or const accesskey ' '; const secretkey ' '; $credentials new Credentials(accesskey, secretkey); $this>stsClient new StsClient([ 'region' > 'ctyun', // region固定填ctyun 'version' > '20110615', // sts接口版本号,固定填20110615 'credentials' > $credentials, 'endpoint' > endpoint, ]); 获取临时token php public function AssumeRole() { $bucket ' '; $arn ' '; $roleSessionName ' '; $roleArn "arn:aws:iam:::role/$arn"; $policy "{"Version":"20121017","Statement":{"Effect":"Allow","Action":["s3:"],"Resource":["arn:aws:s3:::$bucket","arn:aws:s3:::$bucket/"]}}"; try { $res $this>stsClient>assumeRole([ 'Policy' > $policy, 'RoleArn' > $roleArn, 'RoleSessionName' > $roleSessionName, ]); vardump($res>get('Credentials')); } catch (AwsStsExceptionStsException $e) { echo "Exception: $e"; } } 参数说明: 参数 类型 描述 是否必要 RoleArn String 角色的ARN,在控制台创建角色后可以查看 是 Policy String 角色的policy,需要是json格式,限制长度1~2048 是 RoleSessionName String 角色会话名称,此字段为用户自定义,限制长度2~64 是 DurationSeconds Integer 会话有效期时间,默认为3600s 否