首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有方法使用aws-sdk-go验证aws帐户的凭据?

是否有方法使用aws-sdk-go验证aws帐户的凭据?
EN

Stack Overflow用户
提问于 2020-04-15 06:20:43
回答 3查看 1.1K关注 0票数 0

我正在使用aws中提供的API创建会话。

问题:如果我提供了错误的凭据,那么它也会创建一个会话。但是当我使用这个sesssion进行其他API调用时,它会引发一个错误。

在创建会话之前,有什么方法可以验证凭据吗?

会话创建方法:

变量credentials.NewStaticCredentials(access_key_id,MyCredentials = secret_access_key,"")

代码语言:javascript
复制
var sess = session.Must(session.NewSession(&aws.Config{
    Credentials: MyCredentials,
    Region:      aws.String(hostRegion),
    MaxRetries:  aws.Int(3),
}))
EN

回答 3

Stack Overflow用户

发布于 2020-04-30 14:21:15

你所说的“错误的证书”是什么意思?如果凭据是伪造的,那么每个电话都会失败。如果您的意思是您有不同的配置文件,那么使用您在~/..aws/凭据中指定的配置文件创建会话。例如,如果我在~/..aws/凭据中有以下内容:

代码语言:javascript
复制
[default]
aws_access_key_id = ...
aws_secret_access_key = ...
[goober]
aws_access_key_id = ...
aws_secret_access_key = ...

在创建会话时,可以通过以下方式使用默认凭据:

代码语言:javascript
复制
sess := session.Must(session.NewSessionWithOptions(session.Options{
    SharedConfigState: session.SharedConfigEnable,
}))

但是,如果我想使用我的goober配置文件(来自https://docs.aws.amazon.com/sdk-for-go/api/aws/session/):

session.NewSessionWithOptions(session.Options{配置文件:"goober",})

票数 1
EN

Stack Overflow用户

发布于 2020-05-05 20:05:54

创建会话时,API不与服务器/服务对话。它所知道的就是你有一些价值观,就像我展示的那样。也许最简单的确认方法是在您知道存在的桶上使用S3 HeadBucket命令,因为它大约是我知道的开销最低的调用。

HTH,

道格

票数 1
EN

Stack Overflow用户

发布于 2021-08-27 07:13:31

要验证凭据,必须调用API。但是,您可以检查是否向应用程序提供了一组凭据,如下所示

代码语言:javascript
复制
// MustHaveCredentials looks for aws credentials using default credential provider chain as
// documented here https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html
func MustHaveCredentials() {
    _, err := defaults.CredChain(defaults.Get().Config, defaults.Get().Handlers).Get()
    if err != nil {
        log.Fatalf("no AWS credentials provided! %v", err)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61222501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档