【问题标题】:Accessing amazon resources using javascript sdk without providing accesskey and secretkey在不提供 accesskey 和 secretkey 的情况下使用 javascript sdk 访问亚马逊资源
【发布时间】:2020-08-17 19:53:31
【问题描述】:

目前我正在使用以下代码访问亚马逊组织服务:

<!DOCTYPE html>
<html>
<head>
    <title>AWS SDK for JavaScript - Sample Application</title>
    <script src="http://localhost:8000/aws-sdk-2.417.0.min.js"></script>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
    <div id="results"></div>
    <script type="text/javascript">
        var params = {}
        AWS.config.update({
                region: 'us-east-1',
                accessKeyId: '***********',
                secretAccessKey: '*************'
            });
        var organizations = new AWS.Organizations();
        organizations.listAccounts(params, function (err, data) {
            if (err) console.log(err, err.stack); // an error occurred
            else            // successful response
                var accts = []
                console.log(data)
                $('#results').append("<ul id='newList'></ul>");
                for(var i = 0; i < data['Accounts'].length; i++) { 
                      $("#newList").append("<li>"+ data['Accounts'][i]['Id'] + ":" + data['Accounts'][i]['Name']+"</li>");

                  accts.push({"id": data['Accounts'][i]['Id'], "name": data['Accounts'][i]['Name']});
                }
              console.log(accts);
});
    </script>
</body>
</html>

在我的生产系统中,有没有一种方法可以让客户使用他们的 AWS 账户登录,然后无需获取访问密钥和密钥?

【问题讨论】:

  • 你必须使用来自服务器的 aws-sdk,这个开发者也有同样的问题.. 这里链接。 stackoverflow.com/questions/54993479/…
  • 我想访问客户的账户,所以访问凭证应该是客户的。它必须在网页上完成。通过提供凭据或通过 sso 等效行为。
  • 你可能想要进入 Assume Role 方向...docs.aws.amazon.com/cli/latest/userguide/…
  • @nishantpathak 您将 AWS 访问密钥和秘密密钥作为您客户的输入并执行此操作

标签: aws-sdk aws-sdk-js aws-organizations


【解决方案1】:

使用 HTML 输入标记从 HTML 标记获取输入,并使用客户输入初始化这些变量。 有一个按钮可以在客户输入值后触发初始化

acesskey : <input type="password" id="acesskey">
secretkey : <input type="password; id="secretkey">
<button type="button" onclick="<jsfunction>" >

在js代码中,可以初始化变量 如下

var acesskey = document.getElementById("acesskey").value;
var secretkey = document.getElementById("secretkey").value;

将这些值传递给 aws.config.update 函数

【讨论】:

  • 我不想要求获取访问密钥和密钥。客户不愿意分享它。
  • 你不接受它。您将从用户输入中获取它并将这些值转发到 aws lib
  • @rohitcoder 您是否在“在我的生产系统中,客户可以使用他们的 aws 帐户登录”的问题中阅读此行
  • @nishantpathak 但您已经写了“有没有一种方法可以让客户使用他们的 AWS 账户登录”。您在寻找 SSO 吗?
猜你喜欢
  • 2019-08-23
  • 2017-01-11
  • 1970-01-01
  • 2016-03-21
  • 2011-12-21
  • 2016-11-20
  • 1970-01-01
  • 1970-01-01
  • 2017-09-02
相关资源
最近更新 更多