STS相关接口 STS即Secure Token Service 是一种安全凭证服务,可以使用STS来完成对于临时用户的访问授权。对于跨用户短期访问对象存储资源时,可以使用STS服务。这样就不需要透露主账号AK/SK,只需要生成一个短期访问凭证给需要的用户使用即可,避免主账号AK/SK泄露带来的安全风险。 初始化STS服务 python accesskey ' ' secretkey ' ' endpoint ' ' region 'cn' self.stsclient boto3.client( 'sts', awsaccesskeyidaccesskey, awssecretaccesskeysecretkey, endpointurlendpoint, regionnameregion) 获取临时token python def assumerole(self): print('assumerole') bucket ' ' policy r'{"Version":"20121017","Statement":{"Effect":"Allow","Action":["s3:"]' r',"Resource":["arn:aws:s3:::%s","arn:aws:s3:::%s/"]}}' % (bucket, bucket) rolearn "arn:aws:iam:::role/ " rolesessionname " " print('policy: %s' % policy) response self.stsclient.assumerole( Policypolicy, RoleArnrolearn, RoleSessionNamerolesessionname, ) print('ak %s' % response['Credentials']['AccessKeyId']) print('sk %s' % response['Credentials']['SecretAccessKey']) print('token %s' % response['Credentials']['SessionToken']) 请求参数 参数 类型 描述 是否必要 RoleArn String 角色的ARN,在控制台创建角色后可以查看 是 Policy String 角色的policy,需要是json格式,限制长度1~2048 是 RoleSessionName String 角色会话名称,此字段为用户自定义,限制长度2~64 是 DurationSeconds Integer 会话有效期时间,默认为3600s,范围15分钟至12小时 否