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

Java 发送电子邮件时,您如何向Amazon SES服务提供AWS密钥?,java,amazon-web-services,amazon-ses,Java,Amazon Web Services,Amazon Ses,文档中说您需要在主目录中有一个“共享凭证文件”,但这对生产不起作用!那么在发送电子邮件时如何指定AWS密钥呢?它没有给出任何例子 此代码示例假定您已安装AWS SDK for Java,并且已创建共享凭据文件 他们的参考文档甚至不包含AmazonSimpleEmailServiceClientBuilder 如果您正在使用EC2、Lambda或任何受支持的服务,安全的方法是创建一个可以访问SES的角色,并将其附加到资源。您不需要维护任何凭据。 以下链接提供了向java程序提供凭据的不同方法

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

此代码示例假定您已安装AWS SDK for Java,并且已创建共享凭据文件

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


如果您正在使用EC2、Lambda或任何受支持的服务,安全的方法是创建一个可以访问SES的角色,并将其附加到资源。您不需要维护任何凭据。

以下链接提供了向java程序提供凭据的不同方法

如果你想在你的计划中给予

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();

如果您使用的是EC2、Lambda或任何受支持的服务,安全的方法是创建一个可以访问SES的角色,并将其附加到资源。您不需要维护任何凭据。

以下链接提供了向java程序提供凭据的不同方法

如果你想在你的计划中给予

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();

我不明白它在哪里说你“需要”这样做。它提供了一个使用多种方法中的一种方法来提供凭据的示例。假设您使用的是EC2或Lambda,请使用IAM角色。另请参见@jarmod有哪些方法?你能举个例子吗?我正在使用IAM角色,但它仍然使用AWS\u ACCESS\u KEY\u ID和secret。我使用的是弹性豆茎,环境在EB中不起作用。在EC2上使用IAM角色时,将从元数据服务而不是环境变量检索凭据。关于向Elastic Beanstalk提供凭证的众多选项的讨论,请参阅我的答案,我不知道它在哪里说您“需要”这样做。它提供了一个使用多种方法中的一种方法来提供凭据的示例。假设您使用的是EC2或Lambda,请使用IAM角色。另请参见@jarmod有哪些方法?你能举个例子吗?我正在使用IAM角色,但它仍然使用AWS\u ACCESS\u KEY\u ID和secret。我使用的是弹性豆茎,环境在EB中不起作用。在EC2上使用IAM角色时,将从元数据服务而不是环境变量检索凭据。有关向Elastic Beanstalk提供凭据的众多选项的讨论,请参见我的答案“环境变量–AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY”。Elastic Beanstalk没有为Spring Boot/Tomcat设置环境。它设置Java属性。因此:“Java系统属性–
aws.accessKeyId
aws.secretKey
。aws Java SDK使用SystemPropertiesCredentialsProvider加载这些凭据。”“环境变量–aws_访问密钥ID和aws_机密密钥”对此进行了说明。Elastic Beanstalk没有为Spring Boot/Tomcat设置环境。它设置Java属性。因此:“Java系统属性–
aws.accessKeyId
aws.secretKey
。aws Java SDK使用SystemPropertiesCredentialsProvider加载这些凭据。”