【发布时间】:2016-02-25 22:50:53
【问题描述】:
我在尝试使用 Amazon 的 PHP 开发工具包和 changeresourceRecordSets 进行身份验证和创建新的 Route53 记录集时遇到错误。到目前为止,这是我尝试过的:
- 为 Laravel 安装了 AWS SDK
- 使用 Amazon 的 IAM 创建新用户和组,并将 FullAdministrator 策略应用于组。
- 在我的 .env 文件中存储了新的用户凭证和其他 AWS 变量,如下所示:
代码如下:
AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=XXYYZZ
AWS_SECRET_ACCESS_KEY=112233
AWS_ZONE_ID=UHUHUHUH
- 通过以下测试确认我的 Laravel 环境配置正确并且我的控制器工作正常:
代码如下:
$s3 = AWS::createClient('s3');
$s3->putObject(array(
'Bucket' => 'mydomain.com',
'Key' => 'new.pdf',
'SourceFile' => storage_path('app/old.pdf'),
));
- 一旦我确认我的凭据对 S3 有效,我就密切关注这个 SO answer and code 创建一个新的 Route53 客户端并在我的 Route53 托管区域中创建一个新的记录集。这是我稍作修改的代码:
代码如下:
$client = AWS::createClient('Route53');
//dd($client); $client object returned, this works
$result = $client->changeResourceRecordSets(array(
'HostedZoneId' => env('AWS_ZONE_ID'),
'ChangeBatch' => array(
'Comment' => 'just testing',
'Changes' => array(
array(
'Action' => 'CREATE',
'ResourceRecordSet' => array(
'Name' => 'test.mydomain.com.',
'Type' => 'A',
'TTL' => 600,
'ResourceRecords' => array(
array(
'Value' => '52.52.52.52',//my AWS IP address
),
),
),
),
),
),
));
- 产生的错误如下:
客户端错误:
POST https://route53.amazonaws.com/2013-04-01/hostedzone/MYZONE/rrset/导致403 Forbidden响应: 发件人
还有更多来自错误...
SignatureDoesNotMatch(客户端):签名已过期:20160225T215502Z 现在早于 20160225T220842Z(20160225T221342Z - 5 分钟)
欢迎提出任何建议。
【问题讨论】:
-
该错误表明您的系统时钟不同步。如果您运行 NTP 更新,错误是否仍然出现?
标签: php laravel amazon-route53 aws-php-sdk