Dependendo de quantos usuários do IAM você tem na conta, você pode especificar as contas em ambas as declarações da seguinte forma (tente um ou dois apenas como um teste para ver se funciona). Eu tive problemas no passado com arn: aws: iam :: XXXXXXXXXXXX: root para realmente cobrir todas as contas do IAM. Você também pode tentar apenas especificar os usuários do IAM e remover a entrada raiz.
{
"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/*"
}
]
}