Code Challenge: Scripts in Python using boto3, pep8 is a plus, each script must have unit test and a short description and usage information. The aim of this exercise is to check general knowledge related to Python, AWS and boto3, those are some examples you could implement: Check if the s3 buckets have public access, if that is the case remove it to avoid undesired access.
- Clone this repository:
git clone https://github.com/miguelangeltm/boto3codechallenge.git
- Navigate to the project directory:
cd boto3codechallenge
- Install the dependencies:
pip install -r requirements.txt
- Just run the main.py file ;)
python main.py
This is an example with three buckets: two have a public access policy, and the third has no policies at all (e.g., the CloudFormation bucket templates cf-templates-13hdy9bp6587g76-eu-west-1).
![image](https://private-user-images.githubusercontent.com/43521047/331082229-8faba723-8f87-4275-98c4-cf7f854349aa.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNTkwNDgsIm5iZiI6MTczOTE1ODc0OCwicGF0aCI6Ii80MzUyMTA0Ny8zMzEwODIyMjktOGZhYmE3MjMtOGY4Ny00Mjc1LTk4YzQtY2Y3Zjg1NDM0OWFhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDAzMzkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM4MDdlMWZiYjE1MDg5NTkwMDMyNWYwOGMzZWNiYzE0OTZkNzk0OWI1ZGFkYjdhMTNlY2JjNzcyMmQ1MjViNTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.vq4NhIJOPWG26kc79erQZQz8COZ9mtSbNc6wOwJNu24)
Public Access policies looks like this:
![image](https://private-user-images.githubusercontent.com/43521047/331102235-c6a996f2-e396-4c3e-8ad3-028bd2b5d95a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNTkwNDgsIm5iZiI6MTczOTE1ODc0OCwicGF0aCI6Ii80MzUyMTA0Ny8zMzExMDIyMzUtYzZhOTk2ZjItZTM5Ni00YzNlLThhZDMtMDI4YmQyYjVkOTVhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDAzMzkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThjNzM5MTU2ZGZjYWYyNTlkODg3NGJiMzZiOTBkM2IwMDQ2ZDIzODNmNWZhNDM2Yjk3ZWFmMDdmZGQwNjg3N2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.lre096mvDbCktEsQ59zrJip2sTeDLAbDaz7itTsqHPg)
![image](https://private-user-images.githubusercontent.com/43521047/331101275-59ffecc4-1a71-494a-b457-976544071fd7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNTkwNDgsIm5iZiI6MTczOTE1ODc0OCwicGF0aCI6Ii80MzUyMTA0Ny8zMzExMDEyNzUtNTlmZmVjYzQtMWE3MS00OTRhLWI0NTctOTc2NTQ0MDcxZmQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDAzMzkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2YjcxZTI3ZWRkMTcyMGU1OGQyNTQ1Zjk5NzY1NDEzOWYwNDQxZGM5OWYwMjAxZDIwNWNjYTJhYzQzNDUyNTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.iIq7AaCXwPiPP-iERWDj4zIAa_jn9whek0y7qM6UeEM)
After script execution:
![image](https://private-user-images.githubusercontent.com/43521047/331101912-1d2dc47a-1410-47b1-96bb-f57331a49a10.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNTkwNDgsIm5iZiI6MTczOTE1ODc0OCwicGF0aCI6Ii80MzUyMTA0Ny8zMzExMDE5MTItMWQyZGM0N2EtMTQxMC00N2IxLTk2YmItZjU3MzMxYTQ5YTEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDAzMzkwOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTkyZjBjNmRiYzY3N2U4NTA3OGIxMWZiZTYxOGJkYmNlOTVlYzRkZmMwZjQ3ODMxZjZhNThlMmRmZWEzMjM0MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._62yKi6EI0gbhMYOVIAlhIFt4X9wlidTB5zUkFq5Q2w)