0

我正在尝试使用 AWS 机器学习 SDK 创建数据源。首先,我也通过 SDK 将 csv 数据文件上传到 S3 存储。然后我更新此文件的存储桶策略。毕竟我正在尝试创建数据源但我收到错误:

失败 (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*"
        ]
    }
]
}
4

1 回答 1

0

我在尝试从 S3 数据源创建 ML 模型时遇到了这个错误。除了我的(类似)存储桶策略之外,我还必须修改调用机器学习 API 时使用的 IAM 角色。我将完全访问 S3 策略附加到 IAM 角色并且调用成功。完全访问策略可能过于宽泛,有可能将其缩减为 S3 只读,但仍然可以成功调用。

于 2017-07-16T18:34:39.023 回答