Cretae Datasourse машинное обучение AWS через SDK

Я пытаюсь создать источник данных, используя AWS Machine learning SDK. Сначала я загружаю CSV-файл данных в хранилище S3 также через SDK. Затем я обновляю политику для этого файла. Только после того, как я пытаюсь создать источник данных, но я получаю сообщение об ошибке:

ОШИБКИ (1): У вас нет прав доступа к 's3://training-data/input/test-likes.csv'. Свяжитесь с владельцем 's3: //training-data/input/test-likes.csv', чтобы получить доступ для чтения.

Какие разрешения требуются еще?

Это моя политика:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "AmazonML_s3:ListBucket",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::831986290820:user/pavel.emsow",
            "Service": "machinelearning.amazonaws.com"
        },
        "Action": "s3:ListBucket",
        "Resource": "arn:aws:s3:::trainig-data",
        "Condition": {
            "StringLike": {
                "s3:prefix": [
                    "input/common-likes.csv*",
                    "input/test-likes.csv*"
                ]
            }
        }
    },
    {
        "Sid": "AmazonML_s3:GetObject",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::831986290820:user/pavel.emsow",
            "Service": "machinelearning.amazonaws.com"
        },
        "Action": "s3:GetObject",
        "Resource": [
            "arn:aws:s3:::trainig-data/input/common-likes.csv*",
            "arn:aws:s3:::trainig-data/input/test-likes.csv*"
        ]
    }
]
}

1 ответ

Я столкнулся с этой ошибкой при попытке создать модель ML из источника данных S3. В дополнение к моей (аналогичной) политике сегмента я должен был изменить роль IAM, которая использовалась при вызове API машинного обучения. Я прикрепил политику полного доступа S3 к роли IAM, и вызов прошел успешно. Политика полного доступа может быть слишком широкой, и может быть возможно уменьшить ее до S3 только для чтения, и при этом вызов будет успешным.