4

Amazon の PHP SDK と changeresourceRecordSets を使用して新しい Route53 レコード セットを認証および作成しようとすると、エラーが発生します。これが私がこれまでに試みたことです:

  1. AWS SDK for Laravel をインストールしました
  2. Amazon の IAM を使用して新しいユーザーとグループを作成し、FullAdministrator ポリシーをグループに適用しました。
  3. 次のように、新しいユーザー認証情報とその他の AWS 変数を .env ファイルに保存しました。

以下のコード:

AWS_REGION=us-east-1
AWS_ACCESS_KEY_ID=XXYYZZ
AWS_SECRET_ACCESS_KEY=112233
AWS_ZONE_ID=UHUHUHUH
  1. 以下をテストして、Laravel 環境が正しく構成され、コントローラーが動作することを確認しました。

以下のコード:

$s3 = AWS::createClient('s3');
$s3->putObject(array(
  'Bucket'     => 'mydomain.com',
  'Key'        => 'new.pdf',
  'SourceFile' => storage_path('app/old.pdf'),
));
  1. 認証情報が S3 に対して機能することを確認したら、この SOの回答とコードに厳密に従って、新しい 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
                        ),
                    ),
                ),
            ),
        ),
    ),
));
  1. 結果のエラーは次のとおりです。

クライアント エラー:応答が返さPOST https://route53.amazonaws.com/2013-04-01/hostedzone/MYZONE/rrset/ れました403 Forbidden: 送信者

そして、エラーからさらに...

SignatureDoesNotMatch (クライアント): 署名の有効期限が切れました: 20160225T215502Z は 20160225T220842Z より前です (20160225T221342Z - 5 分)。

任意の提案をいただければ幸いです。

4

1 に答える 1

0

ホームステッド/仮想ボックス環境で実行していることを追加する必要がありましたが、実際の問題は、VM の日付サービスがひどくオフになっていることでした。

Sudo ntpdate -s time.nist.gov を実行するだけで問題が解決しました。

于 2016-02-26T00:06:44.923 に答える