【发布时间】:2012-05-04 09:41:32
【问题描述】:
配置 AWS SDK for Java (v1.3.8) 后,我想通过运行他们的 AWSJavaMailSample 来测试所有内容。
在仔细检查以下内容是否正确后:
- 报名参加SES;
- 验证发件人地址并从 AWS 控制台发送测试消息;
- 具有生产访问权限;
- 将
accessKey和secretKey添加到AwsCredentials.properties 文件,来自https://aws-portal.amazon.com/gp/aws/securityCredentials
我收到InvalidClientTokenId:提供的 AWS 访问密钥 ID 不存在于 AWS 记录中。
[AmazonSimpleEmailService]$ java AWSJavaMailSample
Exception in thread "main" Status Code: 403, AWS Service: AmazonSimpleEmailService, AWS Request ID: 6db92cf8-8d69-11e1-b872-d1f99982ef22, AWS Error Code: InvalidClientTokenId, AWS Error Message: The security token included in the request is invalid
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:552)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:289)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:170)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.invoke(AmazonSimpleEmailServiceClient.java:479)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.listVerifiedEmailAddresses(AmazonSimpleEmailServiceClient.java:214)
at com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient.listVerifiedEmailAddresses(AmazonSimpleEmailServiceClient.java:410)
at AWSJavaMailSample.verifyEmailAddress(AWSJavaMailSample.java:155)
at AWSJavaMailSample.main(AWSJavaMailSample.java:75)
其中AWSJavaMailSample.java:75 是verifyEmailAddress(ses, FROM); 调用。
更新#1,关注shashankaholic's comment
我创建了两个新用户:
-
ses-test,附加 AmazonSESFullAccess 用户政策
{"Statement":[{"Effect":"Allow","Action":["ses:*"],"Resource":"*" }]} -
ses-smtp-user,默认为 AmazonSesSendingAccess
{"Statement":[{"Effect":"Allow","Action":"ses:SendRawEmail","Resource":"*"}]}
我得到了同样的回应。
即使将 AdministratorAccess 附加到 ses-smtp-user{"Statement":[{"Effect":"Allow","Action":"*","Resource":"*"}]}
还是一样的回复:
Exception in thread "main" Status Code: 403,
AWS Service: AmazonSimpleEmailService,
AWS Request ID: [...],
AWS Error Code: InvalidClientTokenId,
AWS Error Message: The security token included in the request is invalid
在这种情况下应该使用什么凭据?
或者应如何配置适用于 Java 的 AWS 开发工具包以使 AWSJavaMailSample 正常工作?
更新 #2:
问题是我如何在 .properties 文件中声明凭据
accessKey="ACCESSKEY"; # Java-string-like
我应该有的时候
accessKey=ACCESSKEY
【问题讨论】:
-
您应该添加您的更新 #2 作为答案。这刚刚解决了我的问题。
-
真心希望你能把这个问题说清楚,更好的回答。它不可能理解和使用它。为了清楚起见,请重做。
标签: java amazon-web-services aws-sdk amazon-ses