簡體   English   中英

您可以使用 IAM 策略在 Laravel 應用程序上通過 SES 授權 AWS ECS Fargate 嗎?

[英]Can you authorize AWS ECS Fargate with SES on a Laravel App using an IAM policy?

我正在將 AWS ECS 用於 Laravel 應用程序並嘗試設置 AWS SES。 我收到錯誤

Error retrieving credentials from the instance profile metadata service.

通過讓 Laravel 使用我的默認 aws 配置文件,我讓它在本地工作。 但是在 ECS 上,我想通過將 SES 訪問策略添加到任務角色來進行授權。 我已經將允許 SES 策略添加到任務角色,但我仍然收到上述錯誤。 我是不是錯過了什么。 這不可能嗎?

我已經查看了這個答案,並且基於數字 3 應該是可能的,除非使用 Laravel 這不起作用。

更新:

我認為這個問題與使用www-data作為用戶而不是rootphp-fpm有關(由於安全性而推薦)。 我想知道當 aws 在啟動時使用 IAM 向容器添加憑證時,它是否只為 root 用戶而不是其他用戶添加它。

更新 2:

以上不是問題。 即使以 root 身份運行php-fpm ,我仍然會收到上述錯誤。

更新 3:

我們遇到了一個問題,即未在容器中設置 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI。 這是因為 Docker 文件的CMD是 PID 1 進程,並且該變量不可用於非 PID 1 進程。 這里 解決該問題后,我可以調用aws ses並從容器內的 cli 發送電子郵件,但我仍然無法使用 http 服務器(來自網站)發送電子郵件。

AWS 變量說明

在使用上面的“更新:3”方法在容器內設置變量后,我們需要在 nginx conf 文件中將其設置為fastcgi_param (參見此處),以便 http 服務器可以訪問該變量。 定義變量后需要啟動/重啟 Nginx。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM