Php AWS:SES不工作的IAM用户策略

Php AWS:SES不工作的IAM用户策略,php,email,amazon-web-services,amazon-ses,amazon-iam,Php,Email,Amazon Web Services,Amazon Ses,Amazon Iam,我正在尝试在我的服务器上运行以下PHP代码: require 'aws_sdk_php/aws-autoloader.php'; use Aws\Ses\SesClient; echo 'teste1'; $client = SesClient::factory(array( 'key' => 'xxxxx', 'secret' => 'yyyyy', 'region' => 'us-east-1' )); echo 'teste2'; echo $c

我正在尝试在我的服务器上运行以下PHP代码:

require 'aws_sdk_php/aws-autoloader.php';
use Aws\Ses\SesClient;

echo 'teste1';
$client = SesClient::factory(array(
    'key' => 'xxxxx',
    'secret' => 'yyyyy',
    'region' => 'us-east-1'
));
echo 'teste2';
echo $client->listIdentities();
echo 'teste3';
echo $client->verifyEmailIdentity(array(
    'EmailAddress' => 'my_email@gmail.com'
));
我创建了一个有权使用SMTP发送电子邮件的用户(ses:sendrawmail),它工作正常。但是,“ListIdentity”和“verifyEmailIdentity”调用仅在我授予SES完全访问权限或使用帐户的完全凭据时有效

如果我只向同一个用户添加“ses:ListIdentity”和“ses:VerifyEmailIdentity”,则会出现403错误,表示签名不匹配。有人知道发生了什么吗?我是否必须添加其他权限/策略才能授予对此呼叫的访问权限

我还在IAM策略模拟器上运行了此权限,设置这些权限时它们通过了,但在删除它们后,我收到了“拒绝”

谢谢


更新:根据这一点,也许修复方法是我应该调整EC2服务器上的时间,但是我怎么才能知道SES服务器上的时间,因为我没有访问权限


更新2:看起来时间不一样,因为我在北弗吉尼亚州的服务器上运行了代码,得到了相同的结果。在模拟器上传递的权限。有什么建议吗

[…]也许修复方法是我应该调整EC2服务器上的时间,但既然我无法访问SES服务器,我如何才能知道它们上的时间

中提到的“时钟偏移”意味着减去时区偏移后,服务器上的时间没有充分同步,也就是说,您实际上不需要知道服务器上的时间(最确定的是UTC),而只是确保您自己的系统也与UTC同步(无论你在哪个时区)-请参阅我的答案,以了解更多关于此主题的详细信息,以及如何解决Debian/GNU resp.Ubuntu系统的问题:

[…]如Debian中所述,通过将守护进程安装到,可以很容易地解决这一问题,这可以归结为sudo apt get install ntp并编辑/etc/ntp.conf以获得最佳结果


这仍然不起作用。试图通过在SES的同一区域(北弗吉尼亚)创建一个实例来确认问题是否确实是时间差,但出于某种奇怪的原因,我没有获得服务器的ssh访问权限。我在尝试ssh时收到一个“超时错误”(是的,我已授予对安全组的ssh访问权限)。在北弗吉尼亚州的EC2服务器上使用了相同的代码,但仍然出现了相同的错误,因此时间差异可能不是错误的原因。权限通过了模拟器上的测试。有人知道发生了什么吗?您使用的版本是什么吗?我使用的版本在SesClient.php文件上有以下内容:const LATEST_API_version = '2010-12-01';