
S3 계정 검색
이 도구는 S3 버킷이 속한 계정 ID를 찾을 수 있게 해줍니다.
이 도구를 사용하려면 다음 권한 중 하나 이상이 필요합니다:
s3:getObject).s3:ListBucket).또한, 검사 중인 버킷에 대해 이러한 권한(중 하나)을 가지고 역할을 맡을 수 있는 역할이 필요합니다.
더 자세한 배경은 Cloudar 블로그에서 확인할 수 있습니다.
이 패키지는 pypi에서 사용할 수 있습니다. 예를 들어 다음 명령어 중 하나를 사용할 수 있습니다 (pipx 권장):
pipx install s3-account-search
pip install s3-account-search
# 버킷 사용 시
s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket
# 객체 사용 시
s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/object.ext
# s3://를 생략할 수도 있습니다
s3-account-search arn:aws:iam::123456789012:role/s3_read my-bucket
# 또는 지정된 소스 프로필에서 시작
s3-account-search --profile source_profile arn:aws:iam::123456789012:role/s3_read s3://my-bucket
IAM 정책 조건 s3:ResourceAccount가 있습니다. 이 조건은 특정 계정(들)에 S3 액세스 권한을 부여하는 데 사용되며, 와일드카드도 지원합니다. 올바른 패턴을 구성하고 어떤 패턴이 Deny 또는 Allow로 이어지는지 확인함으로써, 한 자리씩 계정 ID를 알아낼 수 있습니다.
0으로 시작하는 계정에 존재하는 S3 버킷에 대한 액세스를 제한하는 정책을 추가합니다. 액세스가 허용되면 계정 ID가 0으로 시작해야 한다는 것을 알 수 있습니다. 요청이 거부되면 첫 번째 자리로 1을 사용하여 다시 시도합니다. 요청이 허용될 때까지 계속 증가시켜 첫 번째 자리를 찾습니다.8이었다면 80, 81, 82 등으로 시작하는 계정 ID를 테스트합니다.이 프로젝트는 poetry로 관리됩니다.
poetry install을 실행합니다.poetry shell로 가상 환경을 활성화합니다 (poetry run $command를 사용할 수도 있습니다).poetry publish --build를 실행합니다.s3:ResourceAccount < 500000000000과 동일합니다.
"Condition": {
"StringLike": {"s3:ResourceAccount": [
"0*", "1*", "2*", "3*", "4*",
]},
},
실제로 이 도구는 대부분의 경우 충분히 빠릅니다.