Denegar descargas anónimas en AWS S3

Denegar descargas anónimas en AWS S3

Tengo un depósito con varios archivos descargables públicamente. Quiero establecer una política de depósito después de la cual solo mis usuarios de IAM deberían poder descargar estos archivos. La política que tengo hasta ahora es esta:

{
    "Version": "2008-10-17",
    "Id": "Policy1424952346041",
    "Statement": [
        {
            "Sid": "Stmt1424958477350",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::777777777777:root"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        },
        {
            "Sid": "Stmt1424958477351",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::777777777777:root"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        }
    ]
}

Sin embargo, se lo niega a todos, incluidos los usuarios de IAM. ¿Alguien puede señalar qué está mal aquí?

Respuesta1

Dependiendo de cuántos usuarios de IAM tenga en la cuenta, puede especificar las cuentas en ambos extractos de la siguiente manera (pruebe con uno o dos solo como prueba para ver si funciona). He tenido problemas en el pasado para que arn:aws:iam::XXXXXXXXXXXX:root cubra todas las cuentas de IAM. También puede intentar simplemente especificar los usuarios de IAM y eliminar la entrada raíz.

{
    "Version": "2008-10-17",
    "Id": "Policy1424952346041",
    "Statement": [
        {
            "Sid": "Stmt1424958477350",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                        "arn:aws:iam::777777777777:root",
                        "arn:aws:iam::777777777777:user/user1", 
                        "arn:aws:iam::777777777777:user/user2" ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        },
        {
            "Sid": "Stmt1424958477351",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                        "arn:aws:iam::777777777777:root",
                        "arn:aws:iam::777777777777:user/user1",
                        "arn:aws:iam::777777777777:user/user2" ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::test/*"
        }
    ]
}

información relacionada