Política de usuário do bucket s3/IAM "Negar tem prioridade acima de todos os outros acessos"?

Política de usuário do bucket s3/IAM "Negar tem prioridade acima de todos os outros acessos"?

Duas políticas, tenho uma "Negar", não devo conseguir realizar nenhuma operação no bucket, mas ainda posso listar e visualizar objetos do bucket. Por que? Obrigado

Política de intervalo S3

{
    "Sid": "S3DenyAccess",
    "Effect": "Deny",
    "Principal": "*",
    "Action": "*",
    "Resource": "arn:aws:s3:::<YOURBUCKETHERE>/*"
}

Política de usuário do IAM

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowConsoleAccess",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        }
    ]
}

Responder1

Tente mudar oRecursonoPolítica de intervalopara incluir o bucket sozinho e o bucket com objetos:

"Resource": [
    "arn:aws:s3:::<YOURBUCKETHERE>",
    "arn:aws:s3:::<YOURBUCKETHERE>/*"
]

Espero que ajude :)

Responder2

Lógica de avaliação de políticas da AWSseria uma leitura útil. Em suma, uma negação explícita vence. Porém, não é relevante aqui.

EU SOU

Sua política de usuário do IAM está dizendo "este usuário pode listar todos os buckets e obter locais de bucket".

Política de intervalo

Sua política de bucket para um bucket específico diz "negar explicitamente permissões para qualquer pessoa fazer qualquer coisa para se opordentroo bucket". O "/*" no final do recurso significa que a política se aplica "dentro do bucket", enquanto se você omiti-los, significa que a política se aplica ao próprio bucket.

Combinado

Portanto, suas políticas combinadas dizem que todos os usuários podem listar buckets e obter localizações de buckets, mas não podem fazer nada com objetos dentro do bucket. Estou surpreso que você possa listar objetos no bucket e visualizá-los. Suspeito que outra política esteja em jogo aqui, porque a negação padrão da AWS diz que não deveria mostrar nada a você.

Outras opiniões

Se alguém puder identificar algo que perdi, por favor indique :)

informação relacionada