-
Notifications
You must be signed in to change notification settings - Fork 10k
Description
I get it's probably a lot of complexity to add, but it'd be great if Terraform supported using IAM roles in its AWS provider authentication.
This adds a few steps to how API credentials are used – you use your normal AWS access key and secret key to call sts assume-role
in the API, and this responds with a temporary access key, secret key and session token which you use for the rest of the session. An example with AWS's own CLI is here.
The big use case for this is cross-account access. We have lots of AWS accounts to isolate billing to individual projects, and we link these to one parent account with AWS's consolidated billing. The cross-account roles let us have one set of IAM users in the parent account (eg one IAM user for each actual developer using AWS), and then just a single IAM role in each sub-account, which the developers can assume when needed. This saves having to create a new set of IAM users in each sub-account.
I imagine this would involve adding extra AWS provider config fields to describe the role to assume (using an AWS ARN like arn:aws:iam::account-of-role-to-assume:role/name-of-role
), and would also involve changing the AWS API access layer to use the temporary role access/secret keys and a session token.
This should be linked to the AWS meta-issue. I felt the explanation was long enough to warrant a full issue.