-
Notifications
You must be signed in to change notification settings - Fork 9.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
provider: Adds support for IAM role chaining #39255
Conversation
Community NoteVoting for Prioritization
For Submitters
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🚀.
% make testacc TESTARGS='-run=TestProviderConfig_' PKG_NAME=internal/provider ACCTEST_PARALLELISM=3
make: Verifying source code with gofmt...
==> Checking that code complies with gofmt requirements...
TF_ACC=1 go1.22.6 test ./internal/provider/... -v -count 1 -parallel 3 -run=TestProviderConfig_ -timeout 360m
? github.com/hashicorp/terraform-provider-aws/internal/provider/fwprovider [no test files]
=== RUN TestProviderConfig_Authentication_SSO
=== RUN TestProviderConfig_Authentication_SSO/shared_configuration_file
=== RUN TestProviderConfig_Authentication_SSO/use_FIPS
--- PASS: TestProviderConfig_Authentication_SSO (0.20s)
--- PASS: TestProviderConfig_Authentication_SSO/shared_configuration_file (0.10s)
--- PASS: TestProviderConfig_Authentication_SSO/use_FIPS (0.10s)
=== RUN TestProviderConfig_Authentication_LegacySSO
=== RUN TestProviderConfig_Authentication_LegacySSO/shared_configuration_file
=== RUN TestProviderConfig_Authentication_LegacySSO/use_FIPS
--- PASS: TestProviderConfig_Authentication_LegacySSO (0.20s)
--- PASS: TestProviderConfig_Authentication_LegacySSO/shared_configuration_file (0.10s)
--- PASS: TestProviderConfig_Authentication_LegacySSO/use_FIPS (0.10s)
=== RUN TestProviderConfig_AssumeRole
=== RUN TestProviderConfig_AssumeRole/config_multiple_first_empty
=== RUN TestProviderConfig_AssumeRole/config_multiple_last_empty
=== RUN TestProviderConfig_AssumeRole/config_single
2024/09/11 15:20:00 [DEBUG] Received STS API "POST" request to "/": Action=AssumeRole&DurationSeconds=900&RoleArn=arn%3Aaws%3Aiam%3A%3A555555555555%3Arole%2FAssumeRole&RoleSessionName=AssumeRoleSessionName&Version=2011-06-15
2024/09/11 15:20:00 [DEBUG] Mocked STS API responding with 200: <AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<AssumedRoleUser>
<Arn>arn:aws:sts::555555555555:assumed-role/role/AssumeRoleSessionName</Arn>
<AssumedRoleId>ARO123EXAMPLE123:AssumeRoleSessionName</AssumedRoleId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>AssumeRoleAccessKey</AccessKeyId>
<SecretAccessKey>AssumeRoleSecretKey</SecretAccessKey>
<SessionToken>AssumeRoleSessionToken</SessionToken>
<Expiration>2099-12-31T23:59:59Z</Expiration>
</Credentials>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>01234567-89ab-cdef-0123-456789abcdef</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
=== RUN TestProviderConfig_AssumeRole/config_multiple
2024/09/11 15:20:00 [DEBUG] Received STS API "POST" request to "/": Action=AssumeRole&DurationSeconds=900&RoleArn=arn%3Aaws%3Aiam%3A%3A555555555555%3Arole%2FAssumeRole&RoleSessionName=AssumeRoleSessionName&Version=2011-06-15
2024/09/11 15:20:00 [DEBUG] Mocked STS API responding with 200: <AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<AssumedRoleUser>
<Arn>arn:aws:sts::555555555555:assumed-role/role/AssumeRoleSessionName</Arn>
<AssumedRoleId>ARO123EXAMPLE123:AssumeRoleSessionName</AssumedRoleId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>AssumeRoleAccessKey</AccessKeyId>
<SecretAccessKey>AssumeRoleSecretKey</SecretAccessKey>
<SessionToken>AssumeRoleSessionToken</SessionToken>
<Expiration>2099-12-31T23:59:59Z</Expiration>
</Credentials>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>01234567-89ab-cdef-0123-456789abcdef</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
2024/09/11 15:20:00 [DEBUG] Received STS API "POST" request to "/": Action=AssumeRole&DurationSeconds=900&RoleArn=arn%3Aaws%3Aiam%3A%3A555555555555%3Arole%2FAssumeRole&RoleSessionName=AssumeRoleSessionName&Version=2011-06-15
2024/09/11 15:20:00 [DEBUG] Mocked STS API responding with 200: <AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<AssumedRoleUser>
<Arn>arn:aws:sts::555555555555:assumed-role/role/AssumeRoleSessionName</Arn>
<AssumedRoleId>ARO123EXAMPLE123:AssumeRoleSessionName</AssumedRoleId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>AssumeRoleAccessKey</AccessKeyId>
<SecretAccessKey>AssumeRoleSecretKey</SecretAccessKey>
<SessionToken>AssumeRoleSessionToken</SessionToken>
<Expiration>2099-12-31T23:59:59Z</Expiration>
</Credentials>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>01234567-89ab-cdef-0123-456789abcdef</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
2024/09/11 15:20:00 [DEBUG] Received STS API "POST" request to "/": Action=AssumeRole&DurationSeconds=900&RoleArn=arn%3Aaws%3Aiam%3A%3A555555555555%3Arole%2FAssumeRole2&RoleSessionName=AssumeRoleSessionName2&Version=2011-06-15
2024/09/11 15:20:00 [DEBUG] Mocked STS API responding with 200: <AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
<AssumeRoleResult>
<AssumedRoleUser>
<Arn>arn:aws:sts::555555555555:assumed-role/role/AssumeRoleSessionName</Arn>
<AssumedRoleId>ARO123EXAMPLE123:AssumeRoleSessionName</AssumedRoleId>
</AssumedRoleUser>
<Credentials>
<AccessKeyId>AssumeRoleAccessKey</AccessKeyId>
<SecretAccessKey>AssumeRoleSecretKey</SecretAccessKey>
<SessionToken>AssumeRoleSessionToken</SessionToken>
<Expiration>2099-12-31T23:59:59Z</Expiration>
</Credentials>
</AssumeRoleResult>
<ResponseMetadata>
<RequestId>01234567-89ab-cdef-0123-456789abcdef</RequestId>
</ResponseMetadata>
</AssumeRoleResponse>
=== RUN TestProviderConfig_AssumeRole/config_empty
--- PASS: TestProviderConfig_AssumeRole (0.48s)
--- PASS: TestProviderConfig_AssumeRole/config_multiple_first_empty (0.09s)
--- PASS: TestProviderConfig_AssumeRole/config_multiple_last_empty (0.09s)
--- PASS: TestProviderConfig_AssumeRole/config_single (0.10s)
--- PASS: TestProviderConfig_AssumeRole/config_multiple (0.10s)
--- PASS: TestProviderConfig_AssumeRole/config_empty (0.10s)
PASS
ok github.com/hashicorp/terraform-provider-aws/internal/provider 5.945s
This functionality has been released in v5.67.0 of the Terraform AWS Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you! |
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. |
Description
Adds IAM role chaining when authenticating the provider
Relations
Closes #22728
Depends on hashicorp/aws-sdk-go-base#1170
References
Output from Acceptance Testing