PHP에서 제한된 권한으로 클라우드 프론트 (내 s3 버킷을 가리킴)에 대한 서명 된 URL을 만들려고 시도했지만 계속 잘못된 정책 오류가 발생합니다.Aws CloudFront Malformed Policy
내가 사용하고 :
$customPolicy = '{"Id":"Policy1319566876317","Statement":[{"Sid":"Stmt1319566860498","Action":["s3:GetObject"],"Effect":"Allow","Resource":"arn:aws:s3:::my-bucket/*","Principal":{"CanonicalUser":["92cd670939a0460a1b48cbbfedcb5178139bcb315881d9ec3833e497a9e62959762d560feec321a749217754e5d02e5f"]}}]}';
// Create a signed URL for the resource using the canned policy
$signedUrlCannedPolicy = $cloudFront->getSignedUrl([
'url' => $streamHostUrl . '/' . $resourceKey,
'private_key' => base_path().'/'.'mypem file',
'key_pair_id' => 'myid',
'policy' => $customPolicy
]);
를 기본적으로 내가이의 수신기가 나는 위의 코드에서 (지정 만 S3 객체 권한으로 getObject에 그 설정을 가지고 URL을 체결하고자, 때로는 될 수있다 개체 넣기, 때때로 개체 삭제 될 수 있음 클라우드에서이를 달성하려면 어떻게합니까?
오! 그래서 당신이 말한 것을 이해한다면, 클라우드 프론트를 사용하여 get 및 head를 허용하는 배포판을 가져야하며, 추가적으로 s3 전송 가속화를 허용합니다 (가장자리 위치를 프록시로 사용하려는 경우). –
그것은 가장 간단한 해결책이 될 것입니다. –