Skip to main content

Module: iam-account-settings

Terraform module to provision general IAM account settings. It will create the IAM account alias for pretty login URLs and set the account password policy."

Usage

module "account_settings" {
source = "cloudposse/iam-account-settings/aws"
# Cloud Posse recommends pinning every module to a specific version
# version = "x.x.x"

namespace = "eg"
stage = "prod"
name = "account"

allow_users_to_change_password = true
minimum_password_length = 20
password_reuse_prevention = 30
}

output "account_alias" {
value = "${module.account_settings.account_alias}"
}

output "signin_url" {
value = "${module.account_settings.signin_url}"
}

Security Info

For better compliance with modern security best practices the following rules are enabled for the AWS account:

Initial password creation (upon user creation) requires password to be reset on first login

  • Minimum password length: 16 chars
  • Requires at least one upper case letter
  • Requires at least one lower case letter
  • Requires at least one number
  • Requires at least one alphanumeric character
  • Passwords expire after 90 days
  • Passwords may not be repeated more than every 5th time you reset a password
  • Furthermore, MFA is required to assume a role (access to dev/staging/prod accounts), which is how access is granted to any and all AWS resources for staging/production.

These password requirements are a best effort to meet PCI DSS v3.2.1 regulations for passwords and MFA, as published in May 2018 (in this instance, only for AWS)

https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf

Source Sections (starting on page 72):

  • 8.2.3
  • 8.2.4
  • 8.2.5
  • 8.2.6
  • 8.4 (documentation only)