首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在调用SES列表联系人时修复AWS 403错误“检查您的AWS秘密访问密钥和签名方法”

如何在调用SES列表联系人时修复AWS 403错误“检查您的AWS秘密访问密钥和签名方法”
EN

Stack Overflow用户
提问于 2022-07-20 23:58:25
回答 2查看 284关注 0票数 0

我已经被困了大约6个小时,在这一点上,我认为唯一合理的解释是,这是一个AWS错误,或错误消息是错误的。

我在一个JAVA SpringBoot应用程序中使用AWS中的SESv2类,并试图管理我的SES (简单电子邮件服务)帐户的各种细节。

代码语言:javascript
运行
复制
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sesv2.SesV2Client;
import software.amazon.awssdk.services.sesv2.model.*;

我已经创建了一个IAM用户,创建了安全凭据,并使用多个不同的方法设置了它们,如这里所描述的,我已经为这个IAM角色用户提供了对SES的完全访问。然后,我编写了一些代码,并能够完成以下所有操作,

  • 创建联系人列表
  • 删除联系人列表
  • 创建触点
  • 在联系人列表中创建一个主题
  • 发电子邮件

但是,由于一些未知的原因,当我去测试一个函数时,我编写了一个联系人列表,这样我就可以测试向多个联系人发送电子邮件时,我会得到以下403条错误消息,

我们计算的请求签名与您提供的签名不匹配。检查您的AWS秘密访问密钥和签名方法。有关详细信息,请参阅服务文档。

我已经证实证件是正确的。我创建了一组新的凭据,并使旧的集合无效。没有骰子,上面列出的所有函数仍然可以工作,但是listContacts类中的SesV2Client仍然失败,但同样的错误。正如您在下面看到的,我甚至绕过env变量,硬编码键和秘密来提取所有的止损,仍然失败。在失败的函数中,我反复检查了传入的值,它们是有效的,并且是100%存在的,因为正如我所说的,我可以在上面的列表中进行其他调用来验证主题和联系人列表的存在。

代码语言:javascript
运行
复制
private List<Contact> listContactsForSiteUpdatesMailingList() {
try (SesV2Client client = SesV2Client.builder()
            .region(Region.US_EAST_1)
            .credentialsProvider(StaticCredentialsProvider.create(awsCreds))
            .build()){

        TopicFilter topicFilter = TopicFilter.builder().topicName(TOPIC_SITE_UPDATES).useDefaultIfPreferenceUnavailable(true).build();
        ListContactsFilter listContactsFilter = ListContactsFilter.builder().topicFilter(topicFilter).filteredStatus(SubscriptionStatus.OPT_IN).build();
        ListContactsRequest listContactsRequest = ListContactsRequest.builder()
                .contactListName(CONTACT_LIST).filter(listContactsFilter).build();

        ListContactsResponse listContactsResponse = client.listContacts(listContactsRequest);

        return listContactsResponse.contacts();

    } catch (Exception ex) {
        System.out.println("The email was not sent. Error message: "
                + ex.getMessage());
        return null;
    }
}

这里发生了什么,我如何才能找到这个错误的根源?

编辑:查看AWS控制台Users>Access管理,然后查看创建的用户,我甚至可以验证是否存在“编程访问”

一个无问题访问ContactList的示例

编辑2:我的SES帐户目前是沙箱。我只想提个问题,这可能是因为这个原因吗?在这里抓吸管。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73059306

复制
相关文章

相似问题

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