【问题标题】:setting up cloudfront with php sdk使用 php sdk 设置云端
【发布时间】:2015-10-22 00:07:46
【问题描述】:

我正在尝试配置亚马逊云前端,我已成功创建 clouldflayer url 并通过控制台从中访问私有 s3 存储桶。现在我正在尝试通过 php-sdk 来做到这一点,因为我尝试了以下代码

use Aws\CloudFront\CloudFrontClient;
$cle = new CloudFrontClient([
    'version' => 'latest',
    'region' => 'us-west-2',
    'credentials.ini' => [
        'key' => 'credentials\pk-myKey.pem',
        'secret' => 'secret',
    ],

]);


$result = $cle->getCloudFrontOriginAccessIdentity([
    'Id' => '****', // REQUIRED
]);
print_r($result);

但我收到错误

致命错误:未捕获异常 'Aws\CloudFront\Exception\CloudFrontException' 并带有消息“在“https://cloudfront.amazonaws.com/2015-04-17/origin-access-identity/cloudfront/SDF345G”上执行“GetCloudFrontOriginAccessIdentity”时出错;

AWS HTTP 错误:客户端错误:403 SignatureDoesNotMatch(客户端):凭证的范围应为有效区域,而不是“us-west-2”。 -

我已经一一尝试了所有原因,但它不起作用

【问题讨论】:

  • 没有 PHP 经验,但 key 和 secret 往往是实际的 access-key 和 secret,而不是指向密钥文件的指针。此外,credentials.ini 可能不正确(同样,没有 PHP 经验)

标签: php amazon-web-services


【解决方案1】:

Credential should be scoped to a valid region, not 'us-west-2'.

与大多数 AWS 不同,CloudFront 不是区域服务,而是全球服务,通过 us-east-1 进行配置和管理,无论部署任何相关服务(S3、EC2 等)的区域如何.

'region' => 'us-east-1',

【讨论】:

  • amazon aws 文档真的很烂,谢谢它解决了我的问题
猜你喜欢
  • 1970-01-01
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
相关资源
最近更新 更多