Amazon SES 535身份验证凭据尝试旋转访问密钥无效

时间:2017-08-12 19:07:10

标签: amazon-web-services email aws-cli amazon-ses

我们有一个运行良好的亚马逊SES设置,每天通过SMTP发送数千封电子邮件。我们试图遵循“旋转”访问键的最佳实践 https://console.aws.amazon.com/iam/home并为用于发送电子邮件的完全相同的用户创建新的访问密钥。新密钥据称是活跃的,但在尝试使用访问密钥发送电子邮件时,我们会继续

535 Authentication Credentials Invalid

切换到旧的访问密钥效果很好,并且会发送电子邮件。尝试了几次删除新的访问密钥并创建其他密钥。同一台机器,相同的软件。我们拥有适当的复制+粘贴技能,以确保我们使用来自亚马逊的CSV中提供的相同ID /密码。来自亚马逊的对话框: Menu on IAM

那是怎么回事?在新密钥激活之前是否有时间限制?某处有其他隐藏的限制吗?

2 个答案:

答案 0 :(得分:9)

您将SMTP凭据与access_keysecret混淆。他们是不同的。

  • access_key / secret - >在SDK和CLI中使用
  • SMTP凭据 - >用于配置SES SMTP

  • 您正在创建新的access_key / secret并将其用作SMTP凭据

  • 而是创建新的SMTP凭据并使用它
  • 密钥轮换与SMTP凭据轮换不同
  • 无需创建新用户

即使您生成另一组access_key/secret,也可能使用的SMTP凭据不会更改。在您的情况下,您似乎使用的是SMTP服务器,而不是SDK。因此,生成一组新的access_key/secret对SMTP凭据没有影响。

如果要创建一组新的SMTP凭据,请转至AWS SES信息中心并创建SMTP凭据。

enter image description here

有关详细信息:Obtaining Your Amazon SES SMTP Credentials

答案 1 :(得分:4)

是的,AWS处理SES的SMTP密码的方式存在一个隐藏的限制。他们正在使用一种非常混乱的方式来处理这些凭据。

answer from helloV处在正确的轨道上,但这并不完全正确。 AWS和他的回答都告诉我们Access_key / Secret_key和SES SMTP凭据是不同的东西,但是:

  • 如果您创建新的SES SMTP凭据,它将创建一个具有访问密钥/密钥对的新IAM用户
  • 访问密钥ID与SMTP的用户名相同
  • 如果删除或禁用此密钥,则将失去SMTP访问权限。因此,它们显然息息相关。
  • SMTP的密码是从秘密密钥派生的

事实证明,现有IAM用户上的新access_key / secret_key对可以用于SMTP,因此可以旋转密钥而无需创建新用户。 AWS将转换秘密访问密钥以生成SMTP密码,如this documentation page中所述:

  

以下伪代码显示了将AWS Secret Access Key转换为Amazon SES SMTP密码的算法。

<div class="container">
        <h2>Test:</h2>
        <div class="row">
            <div class="col-sm-3">
                <div class="card ml-2" style="width: 20rem;">
                    <img class="card-img-top" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS0lnPcJXGCIDU-L8lq6wdfh9vFzaLupc405LLlxlcKqx4zYnnQ" alt="Card image cap">
                    <div class="card-body text-center">
                        <p class="card-text text-center" style="color:black">Dacia Logan</p>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item">
                                <div class="row">
                                    <div class="col-md-6">
                                            <i class="material-icons"></i><span>15800</span>
                                    </div>
                                    <div class="col-md-6">
                                            <i class="material-icons"></i><span>Bucuresti</span>
                                    </div>
                                </div>

                            </li>
                        </ul>
                        <button href="#" class="btn btn-danger">Save</button>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card ml-2" style="width: 20rem;">
                    <img class="card-img-top" src="https://images.pexels.com/photos/170811/pexels-photo-170811.jpeg?auto=compress&amp;cs=tinysrgb&amp;h=350" alt="Card image cap">
                    <div class="card-body text-center">
                        <p class="card-text text-center" style="color:black">Dacia Logan</p>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item">
                                <div class="row">
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>5800</span>
                                    </div>
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>Bucuresti</span>
                                    </div>
                                </div>
                            </li>
                        </ul>
                        <button href="#" class="btn btn-danger">Save</button>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card ml-2" style="width: 20rem;">
                    <img class="card-img-top" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS0lnPcJXGCIDU-L8lq6wdfh9vFzaLupc405LLlxlcKqx4zYnnQ" alt="Card image cap">
                    <div class="card-body text-center">
                        <p class="card-text text-center" style="color:black">Dacia Logan</p>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item">
                                <div class="row">
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>5800</span>
                                    </div>
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>Bucuresti</span>
                                    </div>
                                </div>

                            </li>
                        </ul>
                        <button href="#" class="btn btn-danger">Save</button>
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="card" style="width: 20rem;">
                    <img class="card-img-top" src="https://www.carmag.co.za/wp-content/uploads/2016/11/Golf10.jpg" alt="Card image cap">
                    <div class="card-body text-center">
                        <p class="card-text text-center" style="color:black">Dacia Logan</p>
                        <ul class="list-group list-group-flush">
                            <li class="list-group-item">
                                <div class="row">
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>5800</span>
                                    </div>
                                    <div class="col-sm-6">
                                            <i class="material-icons"></i><span>Bucuresti</span>
                                    </div>
                                </div>

                            </li>
                        </ul>
                        <button href="#" class="btn btn-danger">Save</button>
                    </div>
                </div>
            </div>
        </div>

因此,使用秘密访问密钥可以生成SMTP密码
安装了bash和openssl后,以下命令将输出用于SMTP的密码:

key = AWS Secret Access Key;
message = "SendRawEmail";
versionInBytes = 0x02;
signatureInBytes = HmacSha256(message, key);
signatureAndVer = Concatenate(versionInBytes, signatureInBytes);
smtpPassword = Base64(signatureAndVer);

只需将$ AWS_SECRET_ACCESS_KEY替换为您的密钥,或预先设置变量