
Ricerca Account S3
Questo strumento ti permette di trovare l'ID dell'account a cui appartiene un bucket S3.
Per farlo funzionare devi avere almeno uno di questi permessi:
s3:getObject).s3:ListBucket).Inoltre, avrai bisogno di un ruolo che puoi assumere con (uno di) questi permessi sul bucket che stai esaminando
Maggiori informazioni sono disponibili sul Cloudar Blog
Questo pacchetto è disponibile su pypi, puoi ad esempio usare uno di questi comandi (pipx è consigliato)
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
Esiste una condizione delle policy IAM s3:ResourceAccount, che è pensata per essere utilizzata per concedere accesso a S3 in uno specifico (insieme di) account, ma supporta anche wildcard. Costruendo i pattern giusti e vedendo quali porteranno a un Deny o a un Allow, possiamo determinare l'ID dell'account scoprendolo una cifra alla volta.
0. Se il nostro accesso è consentito, sappiamo che l'ID dell'account deve iniziare con 0. Se la richiesta viene negata, riproviamo con 1 come prima cifra. Continuiamo a incrementare fino a quando la nostra richiesta è consentita e troviamo la prima cifra.8, testiamo ID account che iniziano con 80, 81, 82, ecc.Usiamo poetry per gestire questo progetto
poetry installpoetry shell (puoi anche usare poetry run $command)poetry publish --builds3:ResourceAccount < 500000000000
"Condition": {
"StringLike": {"s3:ResourceAccount": [
"0*", "1*", "2*", "3*", "4*",
]},
},
In pratica questo strumento dovrebbe essere abbastanza veloce nella maggior parte dei casi.