O que há de errado com minha política da AWS?

Estou tentando dar a um usuário programático do IAM acesso a um único bucket.

Configurei a seguinte política e a anexei ao usuário:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        }
    ]
}

Tentando carregar programaticamente um arquivo, obtive um 403.

Eu tenho essa política a partir daqui:

Escrevendo diretivas do IAM: como conceder acesso a um bucket do Amazon S3

Verifiquei que todo o resto está funcionando adicionando uma política gerenciada da AWS, AmazonS3FullAccess, após a qual meu upload foi bem-sucedido. Mas prefiro não dar a esse usuário acesso total.

Não há outras políticas anexadas a este usuário.

questionAnswers(2)

yourAnswerToTheQuestion