

You’ll need to plan your control instances carefully based on your needs. For example, a development group may get a control server with an attached profile that enables them to run Terraform plans to create needed resources like Elastic Load Balancers and AWS Auto Scaling groups, but not resources outside the group’s scope like Amazon Redshift clusters or additional IAM roles. Alternatively, you can run Terraform from one or more control servers that use an AWS Identity and Access Management (IAM) instance profile.Įach instance profile should include a policy that provides the appropriate level of permissions for each role and use case. In either scenario, you’ll want to be sure to read our best practices for maintaining good security habits. This prevents you from having to maintain secrets in multiple locations or accidentally committing these secrets to version control. You can provide Terraform with an AWS access key directly through the provider, but we recommend that you use a credential profile already configured by one of the AWS Software Developer Kits (SDKs). Conveniently, their documentation uses AWS as the example cloud infrastructure of choice! Keeping Secrets We recommend that you review the HashiCorp documentation for getting started to understand the basics of Terraform. This article assumes you have some familiarity with Terraform already. The last part of this article goes into this feature in detail.


Friendly custom syntax, but also has support for JSON.Terraform has a great set of features that make it worth adding to your tool belt, including: Terraform by HashiCorp, an AWS Partner Network (APN) Advanced Technology Partner and member of the AWS DevOps Competency, is an “infrastructure as code” tool similar to AWS CloudFormation that allows you to create, update, and version your Amazon Web Services (AWS) infrastructure. Editor’s note: This post was updated in March 2018.īy Josh Campbell and Brandon Chavis, Partner Solutions Architects at AWS
