tl; dr實例獲取了假設角色,而不是我在配置中設置的角色。爲.ebextensions中的實例分配角色
我在docker中將java應用程序部署到elastic-beanstalk中;其實,我設定我的自定義策略的特定角色在.ebextensions/instance.config
:
- namespace: aws:autoscaling:launchconfiguration
option_name: IamInstanceProfile
value: custom-profile
當我部署與eb init && eb create --tier worker
一切正常。然後應用程序試圖訪問的東西,這是允許在自定義配置文件,但它失敗:
Exception in thread "main" com.amazonaws.AmazonServiceException: User: arn:aws:sts::***:assumed-role/aws-elasticbeanstalk-ec2-role/*** is not authorized to perform: ...
它甚至沒有提到爲什麼它使用的是「假設的作用」的原因。有趣的是,當我在Web控制檯中手動設置角色並上傳壓縮文件時,它起作用。
我試過使用SingleInstance和LoadBalanced,兩者都是相同的結果。我已閱讀docs和谷歌搜索,但沒有發現任何可行的。我已將PassRole權限添加到我的控制檯用戶,但我甚至不知道它是否有用。配置被認爲是有效的,但是當EC2實例被創建時,我沒有任何關於爲什麼沒有分配正確角色的信息。
我會感謝您的建議。
備註:new InstanceProfileCredentialsProvider()
用於Java。
博客文章幫了很多!我保存了配置,現在我可以運行'eb init && eb create --cfg config',它的工作原理:)如果在全局部分和這些文件中有任何文檔,我會很高興,但我沒有找到任何東西。例如,將「config」保存的配置設置爲.elasticbeanstalk/config.yml中的默認配置將很方便。 我得到了它的工作,所以非常感謝! – pkopac
您可以通過在創建時將配置命名爲「default」來設置默認配置,或將該文件重命名爲default.cfg.yml。在config.yml中沒有任何你沒有看到的「全局」設置 –