Назад | Перейти на главную страницу

Как подписать URL-адрес от имени определенного удостоверения доступа к источнику (облачный фронт)

Мне нужны два удостоверения доступа к источнику для облачного фронта (и s3). Один, который может просто просматривать контент, а другой, который может просто помещать контент (и, возможно, другой, который может просто удалять)

Я знаю, что могу создать идентификатор доступа Origin, и в моей политике корзины s3 я могу указать, какой идентификатор имеет какой доступ.

Но при подписании URL-адресов я не вижу возможности выбрать этот идентификатор. Используемый мной php-код:

        $customPolicy = <<<POLICY
{
   "Version":"2012-10-17",
   "Statement":[
      {
         "Sid":"statement1",
         "Effect":"Allow",
         "Action":[
            "s3:CreateBucket", "s3:ListAllMyBuckets", "s3:GetBucketLocation"  
         ],
         "Resource":[
            "arn:aws:s3:::*"
         ]
       }
    ]
}

POLICY;



// Create a signed URL for the resource using the canned policy
        $signedUrlCannedPolicy = $cloudFront->getSignedUrl([
            'url'         => $streamHostUrl . '/' . $resourceKey,
            'private_key' => base_path().'/'.'cloudfront.pem',
            'key_pair_id' => 'my key pair id',
            'policy' => $customPolicy

        ]);

Как указать AWS, от имени кого подписывать? Я создал пару ключей для облачного фронта после http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html#private-content-creating-cloudfront-key-pairs.