
Pesquisa de Conta S3
Esta ferramenta permite encontrar o ID da conta a que um bucket S3 pertence.
Para que isso funcione, você precisa ter pelo menos uma destas permissões:
s3:getObject).s3:ListBucket).Além disso, você precisará de uma função que possa assumir com (uma dessas) permissões no bucket que está examinando
Mais informações podem ser encontradas no Blog da Cloudar
Este pacote está disponível no pypi. Você pode, por exemplo, usar um destes comandos (pipx é recomendado)
pipx install s3-account-search
pip install s3-account-search
# with a bucket
s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket
# with an object
s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext
# You can also leave out the s3://
s3-account-search arn:aws:iam::123456789012:role/s3_read my-bucket
# Or start from a specified source profile
s3-account-search --profile source_profile arn:aws:iam::123456789012:role/s3_read s3://my-bucket
Existe uma condição de política IAM s3:ResourceAccount, que se destina a ser usada para fornecer acesso ao S3 em um conjunto específico de contas, mas também suporta curingas. Construindo os padrões corretos e vendo quais levarão a uma Negativa (Deny) ou uma Permissão (Allow), podemos determinar o ID da conta descobrindo-o um dígito de cada vez.
0. Se nosso acesso for permitido, sabemos que o ID da conta deve começar com 0. Se a solicitação for negada, tentamos novamente com 1 como primeiro dígito. Continuamos incrementando até que nossa solicitação seja permitida e encontramos o primeiro dígito8, testamos IDs de conta começando com 80, 81, 82, etc.Usamos poetry para gerenciar este projeto
poetry installpoetry shell (você também pode usar poetry run $command)poetry publish --builds3:ResourceAccount < 500000000000
"Condition": {
"StringLike": {"s3:ResourceAccount": [
"0*", "1*", "2*", "3*", "4*",
]},
},
Na prática, esta ferramenta deve ser rápida o suficiente na maioria dos casos.