Я хочу два идентификатора доступа источника для фронта облака (и s3). Один, который может просто просматривать контент, и другой, который может просто поместить контент (и, может быть, другой, который может просто удалить)
Я знаю, что могу создать идентификатор доступа к источнику, и в моей политике сегмента 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
]);
Как можно сказать, кто подписывается от имени?
Я создал пару ключей для облачного фронта http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html#private-content-creating-cloudfront-key-pairs.
Ваша пара ключей назначена пользователю IAM. Это подписи личности.
Других решений пока нет …