AWS:如何检查凭据是否正确?

时间:2016-09-27 15:35:13

标签: amazon-web-services amazon-s3 aws-sdk

以下函数(在Javascript中)应该接受accessKey和secretKey并检查它们是否正确:

function checkKeys(accessKey, secretKey) {
    var cred = new AWS.Credentials(accessKey, secretKey, null);
    cred.get(function(err) {
        if (err) {
            console.log("ERROR!")
        } else {
            console.log("Keys are OK")
        }
    })
}

我希望get()方法在凭据不正确的情况下返回错误。我不知道为什么,但是我给出了什么凭据并不重要,我从来没有得到过错误,而且控制台总是打印出“按键没问题”。

2 个答案:

答案 0 :(得分:0)

您只是将凭据存储在本地对象中,然后检索它们。您需要触发实际的AWS API调用,以验证凭据是否有效。

答案 1 :(得分:0)

您不能真正检查凭据是否“正确”。考虑用户角色。用户可能被授权进行一个API调用,但没有另一个权限。您唯一可以做的一般事情是确保您拥有的ID +密钥对是带有STS.getCallerIdentity()的有效AWS凭证(有关详细信息,请参见SDK docs)。请注意,即使该呼叫者无权访问任何服务,它也将返回呼叫者详细信息,因此请一筹莫展。