Отказано в доступе при загрузке на AWS S3 через PHP; но работает через CLI - PullRequest
0 голосов
/ 10 апреля 2020

CLI

Когда я загружаю файл в хранилище через интерфейс командной строки, загрузка работает без проблем:

aws s3api put-object --bucket <mybucket> --key <myfile> --body <sourcefile>

PHP (с aws -sdk- php)

Но попытка выполнить то же самое через PHP, с теми же учетными данными в том же сегменте, завершается неудачно с:


NOTICE: PHP message: [ERROR] Error executing "PutObject" on "https://mybucket.s3.eu-central-1.amazonaws.com/myfile";
AWS HTTP error: Client error: `PUT https://mybucket.s3.eu-central-1.amazonaws.com/myfile` resulted in a `403 Forbidden` response:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>F58846A9008809CA</RequestId> 
    <HostId>cDK3h9Lu0TzafGLJ5N2UwSCWnuRxQIYRDfybqlZ8VyX7mm6xJNvLTWq9sa3T0LHk89J4vymgxr4=</HostId>
</Error>


Ведро личное (по умолчанию), и у пользователя есть полный контроль . Запуск aws s3api get-object-acl --bucket <mybucket> --key <myfile> возвращает:

{
    "Owner": {
        "ID": "87ff093h31e67fc19f4108d84a001b2adc06c0ee876c33h77feea701ed6ba"
    },
    "Grants": [
        {
            "Grantee": {
                "ID": "87ff093h31e67fc19f4108d84a001b2adc06c0ee876c33h77feea701ed6ba",
                "Type": "CanonicalUser"
            },
            "Permission": "FULL_CONTROL"
        }
    ]
}

Каковы могут быть причины успеха в оболочке и сбоя с помощью сценария?

...