How adamarkon/okta-asa-terraform-webinar works
This Terraform example provisions an AWS network with a public bastion and private Linux targets, while creating an Okta Advanced Server Access project and assigning existing groups. User-data scripts install the Server Agent so instances enroll in the project; authorized users can then reach targets through the bastion using the Okta client and short-lived certificates. The README documents these relationships, but no Terraform source excerpts were provided, so internal resource-level calls and dependencies are not asserted.
Main entry points: main.tf Deployment configuration · instances.tf Bastion instance · okta.tf Group assignments · ubuntu-userdata-sftd.sh Target user data
Components 20
AWS infrastructure
- Deployment configuration
main.tf - Deployment inputs
input.tf - VPC and subnets
instances/instances.tf - Bastion instance
instances/instances.tf - Private instances
instances/instances.tf - Instance settings
instances/input.tf - Instance outputs
instances/output.tf - AWS
Okta access
- ASA project
okta/okta.tf - Group assignments
okta/okta.tf - Okta settings
okta/input.tf - Okta outputs
okta/output.tf - Okta ASA backend
Instance enrollment
- Target user data
instances/userdata-scripts/ubuntu-userdata-sftd.sh - Bastion user data
instances/userdata-scripts/ubuntu-bastion-userdata-sftd.sh - Server Agent
SSH access
- Authorized user
- ASA client
- Short-lived certificate
Other components
- Terraform operator
Connections 18
- Terraform operator → Deployment configuration: applies configuration
README.md - Deployment configuration → AWS: provisions infrastructure
README.md - Deployment configuration → Okta ASA backend: creates project
README.md - Deployment configuration → Group assignments: assigns groups
README.md - Deployment configuration → Private instances: deploys instances
README.md - Deployment configuration → Bastion instance: deploys bastion
README.md - Deployment configuration → VPC and subnets: creates network
README.md - Private instances → Target user data: installs via
README.md - Bastion instance → Bastion user data: installs via
README.md - Target user data → Server Agent: installs agent
README.md - Bastion user data → Server Agent: installs agent
README.md - Server Agent → ASA project: enrolls with
README.md - Server Agent → Okta ASA backend: communicates changes
README.md - Authorized user → ASA client: uses
README.md - ASA client → Short-lived certificate: requests certificate
README.md - ASA client → Bastion instance: connects through
README.md - ASA client → Private instances: SSH connects
README.md - Group assignments → ASA project: assigns groups to
README.md