** Steps Performed **
** cloudlaunch-site-bucket-1
** Enabled static website hosting.
** Configured public read-only access for the website content using a policy named '-s3-site-bucket-policy.json'
** Uploaded a basic HTML/CSS/JS page.
** Private bucket, no public access this will store internal documents.
** Private bucket, no public access to contents.
** IAM user can only list this bucket.
** Allowed anonymous read-only access for cloudlaunch-site-bucket-1.
** Denied all public access for other buckets.
## Created IAM User
** Username: cloudlaunch-user
** Attached custom policy with: --ListBucket on all three buckets. --GetObject + PutObject only on cloudlaunch-private-bucket-2. --GetObject on cloudlaunch-site-bucket-1.
--No delete permissions.
--No access to cloudlaunch-visible-only-bucket contents.
Enabled Programmatic Access (Access Keys).
--Enforced change password on first login.
View policy file: ~/cloudlaunch/policies/cloudlaunch-user.json, ~/cloudlaunch/policies/AmazonVPCReadOnly.json, ~/cloudlaunch/policies/s3-site-bucket-policy.json, ~/cloudlaunch/policies/IAMUserChangePassword.json
S3 Static Site URL: (https://cloudlaunch-site-bucket-1.s3.eu-west-1.amazonaws.com/index.html)
** VPC Details **
--Name: cloudlaunch-vpc
--CIDR: 10.0.0.0/16
--Public Subnet: 10.0.1.0/24
--Intended for load balancers or public-facing services.
--Private subnet for app servers.
--Private subnet for database services.
--Created cloudlaunch-igw.
--Attached to cloudlaunch-vpc.
--Associated with public subnet.
--Added route to 0.0.0.0/0 via Internet Gateway.
--cloudlaunch-app-rt (for app subnet).
--cloudlaunch-db-rt (for DB subnet).
--No internet routes, fully private.
created the following security groups and allowed the following inbound rules
--Allows HTTP (port 80) access within the VPC only.
--Allows MySQL (port 3306) access from the app subnet only.
employed the AmazonVPCReadOnly.json policy to ensure cloudlaunch-user has read-only access to: --VPC, --Subnets, --Route tables, --Security groups