Skip to content

Commit 705040a

Browse files
feat: Support IAM access key status (#315)
* support iam access key status * revert test * Apply suggestions from code review Co-authored-by: magreenbaum <magreenbaum> Co-authored-by: Bryant Biggs <[email protected]>
1 parent 2984b29 commit 705040a

File tree

5 files changed

+24
-1
lines changed

5 files changed

+24
-1
lines changed

examples/iam-user/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ No providers.
3333
|------|--------|---------|
3434
| <a name="module_iam_user"></a> [iam\_user](#module\_iam\_user) | ../../modules/iam-user | n/a |
3535
| <a name="module_iam_user2"></a> [iam\_user2](#module\_iam\_user2) | ../../modules/iam-user | n/a |
36+
| <a name="module_iam_user3"></a> [iam\_user3](#module\_iam\_user3) | ../../modules/iam-user | n/a |
3637

3738
## Resources
3839

examples/iam-user/main.tf

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,16 @@ module "iam_user2" {
3333
create_iam_user_login_profile = false
3434
create_iam_access_key = true
3535
}
36+
37+
###################################################################
38+
# IAM user with inactive IAM access key
39+
###################################################################
40+
module "iam_user3" {
41+
source = "../../modules/iam-user"
42+
43+
name = "vasya.pupkin5"
44+
45+
create_iam_user_login_profile = false
46+
create_iam_access_key = true
47+
iam_access_key_status = "Inactive"
48+
}

modules/iam-user/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ No modules.
5656
| <a name="input_create_iam_user_login_profile"></a> [create\_iam\_user\_login\_profile](#input\_create\_iam\_user\_login\_profile) | Whether to create IAM user login profile | `bool` | `true` | no |
5757
| <a name="input_create_user"></a> [create\_user](#input\_create\_user) | Whether to create the IAM user | `bool` | `true` | no |
5858
| <a name="input_force_destroy"></a> [force\_destroy](#input\_force\_destroy) | When destroying this user, destroy even if it has non-Terraform-managed IAM access keys, login profile or MFA devices. Without force\_destroy a user with non-Terraform-managed access keys and login profile will fail to be destroyed. | `bool` | `false` | no |
59+
| <a name="input_iam_access_key_status"></a> [iam\_access\_key\_status](#input\_iam\_access\_key\_status) | Access key status to apply. | `string` | `null` | no |
5960
| <a name="input_name"></a> [name](#input\_name) | Desired name for the IAM user | `string` | n/a | yes |
6061
| <a name="input_password_length"></a> [password\_length](#input\_password\_length) | The length of the generated password | `number` | `20` | no |
6162
| <a name="input_password_reset_required"></a> [password\_reset\_required](#input\_password\_reset\_required) | Whether the user should be forced to reset the generated password on first login. | `bool` | `true` | no |

modules/iam-user/main.tf

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ resource "aws_iam_access_key" "this" {
2828

2929
user = aws_iam_user.this[0].name
3030
pgp_key = var.pgp_key
31+
status = var.iam_access_key_status
3132
}
3233

3334
resource "aws_iam_access_key" "this_no_pgp" {
3435
count = var.create_user && var.create_iam_access_key && var.pgp_key == "" ? 1 : 0
3536

36-
user = aws_iam_user.this[0].name
37+
user = aws_iam_user.this[0].name
38+
status = var.iam_access_key_status
3739
}
3840

3941
resource "aws_iam_user_ssh_key" "this" {

modules/iam-user/variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ variable "pgp_key" {
3939
default = ""
4040
}
4141

42+
variable "iam_access_key_status" {
43+
description = "Access key status to apply."
44+
type = string
45+
default = null
46+
}
47+
4248
variable "password_reset_required" {
4349
description = "Whether the user should be forced to reset the generated password on first login."
4450
type = bool

0 commit comments

Comments
 (0)