Estimated time: ~1 hour
Tech: Pulumi (language of your choice)
AWS Services: S3, SNS, IAM, EC2, Eventbridge
Credentials: Read-only AWS access (provided by us)
Your team is beginning to migrate an existing AWS environment into infrastructure-as-code using Pulumi.
You have been provided read-only AWS credentials to a small sandbox account that already contains several deployed resources, including:
- A few S3 buckets
- One or more SNS topics
- Some IAM roles used by application components
- A small number of EC2 instances
- One additional AWS resource type that is not supported by the standard
@pulumi/awsprovider (Hint: you may need theaws-nativeprovider to import it.)
Your goal is to discover the resources and import a reasonable subset of them into a new Pulumi stack.
Use any Pulumi-supported language (TypeScript, Go, Python).
Using the provided read-only credentials (store/aws/playground/candidate1-keys):
- Identify which resources appear to be part of an “active” environment.
- You are not told which ones matter, so you must make reasonable assumptions.
- Some resources may look unused, inconsistent, or legacy.
Document your reasoning in the README.
In your Pulumi program:
- Import one AWS EventBridge schedule
- Import at least another three AWS resources across different services (e.g., one S3 bucket, one IAM role, one EC2 instance).
- For one resource, you may need to use
@pulumi/aws-nativeinstead of@pulumi/aws(e.g., newer AWS services that only exist in CloudControl/Native). - Your code should define the resources and include the
importdirective for each.
You may notice:
- Missing tags
- Unclear naming conventions
- Legacy resources intermixed with active ones
Make reasonable assumptions and document them.
Submit a (tar.gz or zip or Github repository link) containing:
- The Pulumi project (excluding large vendor directories)
- A short README (5–10 sentences) describing:
- Which resources you chose to import
- Any challenges or ambiguities
- Why you selected certain resources and ignored others
- Any assumptions or defaults you applied
- Notes on the one resource that required
aws-native(if applicable)
We are not evaluating perfection or full coverage — only your approach, reasoning, and Pulumi import skills.
- Total expected time: ~1 hour
- AWS permissions are read-only
- You may not create, modify, or tag AWS resources
- You may use Pulumi’s CLI imports, SDK imports, or both