我要如何解決在 Amazon SES 中傳送電子郵件時,發生的「未經授權」錯誤?

2 分的閱讀內容
0

我嘗試使用 Amazon Simple Email Service (Amazon SES) 傳送電子郵件,但一直收到「未經授權」的錯誤。

簡短描述

由於以下原因,可能會出現「未經授權」錯誤:

  • 您使用不正確的 AWS Identity and Access Management (IAM) 使用者或角色傳送電子郵件。
  • 您使用的 IAM 身分沒有 ses:SendEmailses:SendRawEmail 許可。
  • IAM 政策或授權政策拒絕您對 ses:SendEmailses:SendRawEmail 操作的 IAM 身分許可。
  • IAM 許可邊界不允許存取 Amazon SES。
  • AWS Organizations 服務控制政策 (SCP) 不允許 Amazon SES 存取。
  • 對於跨帳戶傳送:傳送身分的授權政策不允許 IAM 身分傳送電子郵件。

若要解決授權錯誤,請按照以下步驟操作:

  • 確認您使用正確的 IAM 身分傳送電子郵件。
  • 確認 IAM 身分具有 ses:SendEmailses:SendRawEmail 許可以傳送電子郵件。
  • 檢查 IAM 政策或授權政策中是否有任何封鎖存取的拒絕陳述式。
  • 檢查是否某個動作在您的 IAM 政策中得到允許,而在許可界限中未得到允許。
  • 使用 IAM 主控台在許可界限內包含所有必需的動作。
  • 如果您使用 AWS Organizations,請確認您沒有任何明確拒絕 Amazon SES 操作的 SCP。
  • 對於跨帳戶傳送,請檢查傳送身分的授權政策是否有授予 IAM 身分所需的許可。

解決方案

檢查 IAM 身分是否具有 ses:SendEmail 和 ses:SendRawEmail 許可

確認您的 IAM 身分具有傳送電子郵件的正確許可。

請按照以下步驟操作:

  1. 開啟 IAM 主控台
  2. 選取用於傳送電子郵件的 IAM 使用者或角色。
  3. 選取用於傳送電子郵件的 IAM 身分名稱。
  4. 在您的 IAM 身分的 Permissions (許可) 標籤,展開每個政策以檢視其 JSON 政策文件。
  5. 搜尋與 Amazon SES 存取相關的政策。然後,確認您具有 ses:SendEmailses:SendRawEmail 操作的許可。

下列 IAM 政策範例可讓 IAM 身分傳送電子郵件:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ses:SendEmail",
        "ses:SendRawEmail"
      ],
      "Resource": "*"
    }
  ]
}

**注意:**請檢閱 SendEmailSendRawEmail,了解您分別可以用其來執行哪個傳送操作。如果 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。如需詳細資訊,請參閱使用許可邊界將責任委派給其他人

檢查是否有任何不允許 Amazon SES 存取的 AWS Organizations SCP

如果您使用 AWS Organizations,請檢查 SPC 是否有任何明確拒絕 ses:SendEmail 和 ses:SendRawEmail 或任何其他 Amazon SES 操作的陳述式。依照組織的安全政策,刪除明確拒絕 Amazon SES 操作的服務控制政策

例如,下列政策拒絕存取所有 Amazon SES 操作:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Action": “ses:*”,
      "Resource": "*"
    }
  ]
}

檢查 Amazon SES 中的傳送授權政策是否授予委派寄件者許可

當您授權其他使用者從您擁有的身分傳送電子郵件,請檢查授權政策是否具有正確的許可。此外,請檢查是否有任何明確拒絕的陳述式。請確認寄件者在 AWS 區域中使用的 Amazon SES 端點,與您用於驗證身分的端點相同。您必須從沙盒中刪除自己 (身分擁有者) 和委派寄件者,以將電子郵件傳送到未驗證的地址。若要檢視、編輯或移除政策,請參閱管理您的傳送授權政策


AWS 官方
AWS 官方已更新 2 年前