我已经设置了跨账户读取运动流,但是当运动客户端读取记录时我收到安全令牌过期错误。我使用 sts assume role 在 accountA 中代入 roleA,然后使用 roleA 凭据代入 roleB,最后返回 kinesis 客户端,因此没有应用刷新功能,客户端默认在 1 小时后过期。我查看了 stscreds AssumeRoleProvider 并且文档说它将刷新凭据。但我不知道如何刷新假定角色 A 的第一个凭据,然后刷新假定角色 B 的第二个凭据。还是调用重新初始化kinesis客户端的方法更好?
这是代码块。
cfg, err := config.LoadDefaultConfig(
context.TODO(),
config.WithRegion("us-west-2"),
)
if err != nil {
return nil, err
}
stsclient := sts.NewFromConfig(cfg)
assumingcnf, err := config.LoadDefaultConfig(
context.TODO(),
config.WithRegion("us-west-2"),
config.WithCredentialsProvider(aws.NewCredentialsCache(
stscreds.NewAssumeRoleProvider(
stsclient,
roleToAssumeArn1,
)),
),
)
if err != nil {
return nil, err
}
stsclient = sts.NewFromConfig(assumingcnf)
cnf, err := config.LoadDefaultConfig(
context.TODO(),
config.WithRegion("us-west-2"),
config.WithCredentialsProvider(aws.NewCredentialsCache(
stscreds.NewAssumeRoleProvider(
stsclient,
roleToAssumeArn2,
)),
),
)
if err != nil {
return nil, err
}
kClient := kinesis.NewFromConfig(cnf)
return kClient
慕莱坞森
相关分类