В ACL ведра S3 отображается неверный получатель - PullRequest
0 голосов
/ 13 января 2020

Я уже добавил пользователя, упомянутого в этом вопросе , и дал этому пользователю полный контроль (как видно на прилагаемой картинке). Но в ответе на get-bucket-acl упомянутый пользователь не появляется.

Я пытаюсь экспортировать экземпляр Ubuntu EC2 в корзину S3 в виде файла VMDK. Я установил AWS CLI v1 на свою MacOS и настроил его, используя моего пользователя root (поскольку я собираюсь удалить CLI из моей MacOS, как только я закончу с созданием образа). Затем я выполнил следующую команду

aws ec2 create-instance-export-task --instance-id i-<instance-id> --target-environment vmware --export-to-s3-task file://vm-aws.json

Я получил следующую ошибку

An error occurred (AuthFailure) when calling the CreateInstanceExportTask operation: vm-import-export@amazon.com must have WRITE and READ_ACL permission on the S3 bucket.

Получив эту ошибку, я открыл разрешения на ведро, повернул Блок все publi c access to Off . Затем я открыл Список контроля доступа и добавил новую учетную запись с идентификатором электронной почты vm-import-export@amazon.com, как указано в разрешениях на ведро. Я дал этой учетной записи разрешение на Запись объектов и Разрешения на чтение корзины , как упоминалось.

Проблема заключается в том, что первая упомянутая команда по-прежнему выдает ту же ошибку. Я даже попытался установить все 4 разрешения для пользователя vm-import-export@amazon.com безрезультатно.

enter image description here

Я пытался затем получить ACL указанного сегмента, выполнив следующую команду.

aws s3api get-bucket-acl --bucket <bucket-name>

Я получаю следующий ответ

{
    "Owner": {
        "DisplayName": "accounts",
        "ID": "009228***************************************************e141e"
    },
    "Grants": [
        {
            "Grantee": {
                "Type": "CanonicalUser",
                "DisplayName": "accounts",
                "ID": "009228***************************************************e141e"
            },
            "Permission": "FULL_CONTROL"
        },
        {
            "Grantee": {
                "Type": "CanonicalUser",
                "DisplayName": "accounts",
                "ID": "009228***************************************************e141e"
            },
            "Permission": "FULL_CONTROL"
        }
    ]
}

Если вы видите, что есть 2 Получатель гранта , оба с то же DisplayName и ID . Оба они - один и тот же пользователь (root пользователь), который является Владельцем корзины. Поэтому я думаю, что первая команда при получении ACL видит этот ответ и не находит упомянутого пользователя (****) с необходимыми разрешениями. И это не может продолжаться.

Что я здесь не так делаю? Мне кажется, это проблема самого API.

...