![](/img/trans.png)
[英]How do I access servlets after deploying to AWS Elastic Beanstalk?
[英]How do I pass AWS_ACCESS_KEY_ID for Amazon SES on Elastic Beanstalk?
我在本地計算機中將AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
設置為環境變量,並且工作正常。 當我部署到Elastic Beanstalk時,我設置了“環境屬性”,但是它們以-D
Java系統屬性而不是設置為環境變量的形式傳遞,並且會產生錯誤。
而Tomcat平台設置使用System.getProperty檢索的Java系統屬性。
2018-08-03 02:34:37.001信息32073-[nio-8080-exec-9] csxxxxx.apis.XxxxxxxApiController:未發送電子郵件。 錯誤:用戶'arn:aws:sts :: 849611986161:assumed-role / aws-elasticbeanstalk-ec2-role / i-0f447c52c84e1fd93'無權對資源'arn:aws:ses:us-執行'ses:SendEmail' east-1:849611986161:identity/xxxxxx@xxxxx.com'(服務:AmazonSimpleEmailService;狀態代碼:403;錯誤代碼:AccessDenied;請求ID:c3835dda-96c5-11e8-8a21-67774160691b)
Amazon SES僅需要環境變量(或主目錄中的“共享證書文件”)。 那么,如何使用該環境將AWS密鑰傳遞給用於Java Spring Boot應用程序的Elastic Beanstalk中的Amazon SES?
您可以使用SSM(系統管理員服務)參數存儲來保留環境變量,並通過具有IAM權限的任何服務對其進行訪問。 在這種情況下,由於您需要訪問鍵,因此不需要保留任何環境變量。 您可以只在彈性beantalk中使用實例配置文件,它將為彈性beantalk提供您分配的IAM的訪問密鑰和秘密訪問密鑰。 請參閱本文檔 。
根據https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html#credentials-default
Java系統屬性-aws.accessKeyId和aws.secretKey。 適用於Java的AWS開發工具包使用SystemPropertiesCredentialsProvider加載這些憑證。
因此,而不是AWS_ACCESS_KEY_ID
,而是設置aws.accessKeyId
,然后在命令行aws.accessKeyId
其設置為Java系統屬性,該屬性由Amazon SES SDK提取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.