【问题标题】:User is not authorized to perform: ses:VerifyEmailAddress用户无权执行:ses:VerifyEmailAddress
【发布时间】:2021-02-25 14:51:06
【问题描述】:

我最近注册了 Amazon SES 服务。我已经生成了我的 SMTP 设置、访问密钥和秘密密钥。另外我现在没有生产访问权限。我是一名 .Net 开发人员,正在尝试通过我的代码验证电子邮件地址。下面是代码sn-p:

var amConfig = new AmazonSimpleEmailServiceConfig {UseSecureStringForAwsSecretKey = false};
var amzClient = new AmazonSimpleEmailServiceClient(_awsAccessKey, _awsSecretKey, amConfig);

var veaRequest = new VerifyEmailAddressRequest {EmailAddress = "myemail@somedomain.com"};
VerifyEmailAddressResponse veaResponse = amzClient.VerifyEmailAddress(veaRequest);
string requestId = veaResponse.ResponseMetadata.RequestId;
return requestId;

但我收到以下错误:

Amazon.SimpleEmail.AmazonSimpleEmailServiceException:用户: myUsername 无权执行:ses:VerifyEmailAddress ----> System.Net.WebException : 远程服务器返回错误:(403) Forbidden。

我还尝试了一些其他操作,例如 ListVerifiedEmailAddresses,但结果相同。

谁能帮我看看这里发生了什么?

在亚马逊开发者论坛上发布问题是没有用的。到现在都没有回复。另外我怀疑我需要具有生产访问权限才能调用此方法。是吗?还记得我可以使用 AWS SMTP 设置成功发送电子邮件。

谢谢。

【问题讨论】:

    标签: c# .net amazon-web-services amazon-ses


    【解决方案1】:

    您是否使用与 IAM 用户关联的凭证?如果是这种情况,您需要向 IAM 用户添加允许在 SES 中执行这些特定操作的策略。像这样的:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "Stmt1402494612000",
          "Effect": "Allow",
          "Action": [
            "ses:ListVerifiedEmailAddresses",
            "ses:VerifyEmailAddress"
          ],
          "Resource": [
            "*"
          ]
        }
      ]
    }
    

    【讨论】:

    • 能否请您更详细一点。我必须在哪里做?
    • 这需要在 AWS 控制台的 IAM 部分完成。您将单击相应的用户,然后单击权限,然后单击“附加用户策略”。
    • 成功了。你比亚马逊支持更可靠:)....但我可以看到我的帐户中有 4 封经过验证的电子邮件。但是,我通过我的代码将计数设为 0。对此有什么想法吗?
    • 很高兴我能帮上忙。对于第二个问题,我需要查看代码。 ListVerifiedEmailAddresses 自 2012 年 5 月 15 日起已弃用。Amazon recommends 使用 ListIdentitiesGetIdentityVerificationAttributes 代替。这不是您问题的解决方案,只是附注!
    猜你喜欢
    • 2018-11-07
    • 2016-03-18
    • 2021-02-26
    • 2016-09-26
    • 2016-02-16
    • 2016-04-19
    • 2019-01-22
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多