我使用 Amazon Simple Email Service (Amazon SES) 嘗試傳送電子郵件,但收到「Unauthorized」錯誤。
解決方法
確認 IAM 權限
若要確認您的 AWS Identity and Access Management (IAM) 身分具有傳送電子郵件的正確權限,請完成以下步驟:
-
開啟 IAM 主控台。
-
選取用於傳送電子郵件的 IAM 使用者或角色。
-
選取您用來傳送電子郵件的 IAM 身分名稱。
-
在 IAM 身分的 Permissions (權限) 索引標籤中,展開每個政策以檢視其 JSON 政策文件。
-
搜尋與 Amazon SES 存取相關的政策。然後,確認您具有 ses:SendEmail 或 ses:SendRawEmail 動作的權限。<br id=hardline_break/>
以下 IAM 政策範例允許 IAM 身分傳送電子郵件:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ses:SendEmail",
"ses:SendRawEmail"
],
"Resource": "*"
}
]
}
**注意:**如果 IAM 政策不存在,請建立 IAM 政策,以使用前述範例政策授予您傳送電子郵件的存取權。
檢查是否有任何拒絕陳述式封鎖存取
檢查 IAM 政策中是否有任何可能拒絕傳送電子郵件存取的拒絕陳述式。
如果存在拒絕陳述式,請移除或修改以下限制存取的條件:
- ses:Recipients
- ses:FromAddress
- ses:FromDisplayName
- ses:FeedbackAddress
- aws:CurrentTime
- aws:EpochTime
- aws:SecureTransport
- aws:SourceIp
- aws:UserAgent
確認 IAM 權限界限允許存取 Amazon SES
檢閱嘗試存取 Amazon SES 的 IAM 身分所設定的 IAM 權限界限。請確保 IAM 權限界限允許存取 Amazon SES。如需更多資訊,請參閱使用權限界限委派責任給他人。
確認 AWS Organizations SCP 未拒絕 Amazon SES 存取
如果您使用 AWS Organizations,請檢查服務控制政策 (SCP) 是否包含明確拒絕 ses:SendEmail and ses:SendRawEmail 動作的陳述式。根據您組織的安全政策,刪除明確拒絕 Amazon SES 動作的 SCP。
以下政策範例拒絕所有 Amazon SES 動作的存取:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "ses:*",
"Resource": "*"
}
]
}
確認 Amazon SES 中的寄件者授權政策授予委派寄件者權限
當您授權其他使用者從您擁有的身分傳送電子郵件時,請確認授權政策具有正確的權限。請確保寄件者在您驗證身分的 AWS 區域中使用相同的 Amazon SES 端點。您必須先將委派寄件者的 AWS 帳戶從沙盒中移除,才能使其傳送電子郵件至未驗證地址。如需檢視、編輯或移除政策,請參閱在 Amazon SES 中管理您的身分授權政策。