安全凭证服务(STS)

STS即Secure Token Service 是一种安全凭证服务,可以使用STS来完成对于临时用户的访问授权。对于跨用户短期访问s3资源时,可以使用STS服务。这样就不需要透露主账号AK/SK,只需要生成一个短期访问凭证给需要的用户使用即可,避免主账号AK/SK泄露带来的安全风险。

获取临时token

在服务器端生成临时token,参考:

安全凭证服务 java

安全凭证服务 python

安全凭证服务 nodejs

使用临时token

使用assumeRole请求申请临时凭证,使用服务端返回的accessKeyId,secretAccessKey和sessionToken来初始化s3对象。使用过程中,需要更新凭证,保证凭证不过期。使用过期凭证的请求,服务端会返回403(AccessDenied)。

let S3Demo = {
    credentials: {
        accessKeyId: S3Config.accessKeyId,
        secretAccessKey: S3Config.secretAccessKey,
        sessionToken: S3Config.sessionToken, // 配置临时token
    },
    s3Client: null,

    // 初始化s3对象
    init: function() {
        let config = {
            credentials: this.credentials,
            endpoint: S3Config.endpoint,
        };
        this.s3Client = new AWS.S3(config);
    },

    // 更新凭证
    updateCredentials: function(ak, sk, token) {
        this.credentials.accessKeyId = ak;
        this.credentials.secretAccessKey = sk;
        this.credentials.sessionToken = token;
    },
}
参数 说明
credentials 用户账号信息,包含accessKeyId和secretAccessKey和sessionToken
endpoint 天翼云资源池的地址,必须指定http或https前缀