繁体   English   中英

发送电子邮件时,如何为Amazon SES服务提供AWS密钥?

[英]How do you provide AWS keys to Amazon SES service when sending emails?

该文档说,您需要在主目录中有一个“共享凭据文件”,但这不适用于生产! 那么,如何在发送电子邮件时指定AWS密钥? 它没有给出任何例子!

https://docs.aws.amazon.com/ses/latest/DeveloperGuide/examples-send-using-sdk.html

此代码示例假设您已经安装了适用于Java的AWS开发工具包,并且已经创建了共享凭证文件。

  AmazonSimpleEmailService client = 
      AmazonSimpleEmailServiceClientBuilder.standard()
      ...
  client.sendEmail(request);

他们的参考文档甚至都不包含AmazonSimpleEmailServiceClientBuilder

https://docs.aws.amazon.com/search/doc-search.html?searchPath=documentation-guide&searchQuery=AmazonSimpleEmailServiceClientBuilder&x=3&y=8&this_doc_product=Amazon+Simple+Email+Service&this_doc_guide=API+Reference&doc_locale=en_us#facet_doc_product=Amazon% 20Simple%20Email%20Service&facet_doc_guide = API%20Reference

如果您使用的是EC2或Lambda或任何AWS IAM角色支持的服务,则安全的方法是创建一个有权访问SES并将其附加到资源的角色。 您将不需要维护任何凭据。 https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role

以下链接提供了为Java程序提供凭据的不同方法:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html

如果您想在程序中付出

AWSCredentialsProvider credentialsProvider = new AWSCredentialsProvider() {
    @Override
    public void refresh() {}
        @Override
        public AWSCredentials getCredentials() {
        return new AWSCredentials() {
            @Override
            public String getAWSSecretKey() {
                return "YOUR_SECRET_KEY";
            }
            @Override
            public String getAWSAccessKeyId() {
                return "YOUR_ACCESS_KEY";
            }
        };
    }
};

AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard()
            .withCredentials(credentialsProvider).build();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM