STS相关接口 STS即Secure Token Service 是一种安全凭证服务,可以使用STS来完成对于临时用户的访问授权。对于跨用户短期访问对象存储资源时,可以使用STS服务。这样就不需要透露主账号AK/SK,只需要生成一个短期访问凭证给需要的用户使用即可,避免主账号AK/SK泄露带来的安全风险。 初始化STS服务 plaintext ak : " " sk : " " endpoint : " " config : &aws.Config{ Credentials: credentials.NewStaticCredentials(ak, sk, ""), Endpoint: aws.String(endpoint), S3ForcePathStyle: aws.Bool(true), DisableSSL: aws.Bool(true), LogLevel: aws.LogLevel(aws.LogDebug), } sess : session.Must(session.NewSession(config)) svc : sts.New(sess) 获取临时token plaintext bucket : " " roleSessionName : " " arn : "arn:aws:iam:::role/xxxxxx" policy : {"Version":"20121017","Statement":{"Effect":"Allow","Action":["s3:"],"Resource":["arn:aws:s3:::%s","arn:aws:s3:::%s/"]}} policy fmt.Sprintf(policy, bucket, bucket) fmt.Println("policy: ", policy) out, err : svc.AssumeRole(&sts.AssumeRoleInput{ Policy: aws.String(policy), RoleArn: aws.String(arn), RoleSessionName: aws.String(roleSessionName), }) if err ! nil { fmt.Println("err, ", err) return } fmt.Println("assumeRole success, ", out) 请求参数 参数 类型 描述 是否必要 RoleArn string 角色的ARN,在控制台创建角色后可以查看 是 Policy string 角色的policy,需要是json格式,限制长度1~2048 是 RoleSessionName string 角色会话名称,此字段为用户自定义,限制长度2~64 是 DurationSeconds Integer 会话有效期时间,默认为3600s 否