iam-system-user

cloudposse/iam-system-user/aws

Terraform Module HCL AWS

Terraform Module to Provision a Basic IAM System User Suitable for CI/CD Systems (E.g. TravisCI, CircleCI)

Install
module "iam-system-user" {
source = "cloudposse/iam-system-user/aws"
version = "1.2.1"
}
plain text: /constructs/tfmod-cloudposse-iam-system-user-aws/install.txt
⭐ Source on GitHub 📦 Registry page
README

terraform-aws-iam-system-user Terraform Module to provision a basic IAM system user suitable for CI/CD Systems (_e.g._ TravisCI, CircleCI) or systems which are external to AWS that cannot leverage AWS IAM Instance Profiles or AWS OIDC. We do not recommend creating IAM users this way for any other purpose. By default, IAM users, groups, and roles have no access to AWS resources. IAM policies are the means by which privileges are granted to users, groups, or roles. It is recommended that IAM policies be applied directly to groups and roles but not users. This module intentionally attaches an IAM policy directly to the user and does not use groups The IAM user name is constructed using terraform-null-label and some input is required. The simplest input is name. By default the name will be con

Inputs (29)
NameTypeDescriptionDefault
tenantstringID element _(Rarely used, not included by default)_. A customer identifier, indinull
environmentstringID element. Usually used for region e.g. 'uw2', 'us-west-2', OR role 'prod', 'stnull
inline_policieslist(string)Inline policies to attach to our created user[]
policy_arns_mapmap(string)Policy ARNs to attach (descriptive key => arn){}
enabledboolSet to false to prevent the module from creating any resourcesnull
tagsmap(string)Additional tags (e.g. `{'BusinessUnit': 'XYZ'}`). Neither the tag keys nor the t{}
inline_policies_mapmap(string)Inline policies to attach (descriptive key => policy){}
policy_arnslist(string)Policy ARNs to attach to our created user[]
ssm_ses_smtp_password_enabledboolWhether or not to create an SES SMTP passwordfalse
ssm_base_pathstringThe base path for SSM parameters where secrets are stored"/system_user/"
contextanySingle object for setting entire context at once. See description of individual { "additional_tag_map": {}, "attribu
namespacestringID element. Usually an abbreviation of your organization name, e.g. 'eg' or 'cp'null
attributeslist(string)ID element. Additional attributes (e.g. `workers` or `cluster`) to add to `id`, []
label_orderlist(string)The order in which the labels (ID elements) appear in the `id`. Defaults to ["nanull
label_value_casestringControls the letter case of ID elements (labels) as included in `id`, set as tagnull
labels_as_tagsset(string)Set of labels (ID elements) to include as tags in the `tags` output. Default is [ "default" ]
descriptor_formatsanyDescribe additional descriptors to be output in the `descriptors` output map. Ma{}
force_destroyboolDestroy the user even if it has non-Terraform-managed IAM access keys, login profalse
ssm_enabledboolSet `true` to store secrets in SSM Parameter Store, ` false` to store secrets intrue
stagestringID element. Usually used to indicate role, e.g. 'prod', 'staging', 'source', 'bunull
Outputs (10)
user_name — Normalized IAM user name
ssm_enabled — `true` when secrets are stored in SSM Parameter store, `false` when secrets are stored in Terraform
access_key_id — The access key ID
ses_smtp_password_v4 — When `ssm_enabled` is false, this is the secret access key converted into an SES SMTP password by ap
secret_access_key_ssm_path — The SSM Path under which the IAM User's secret access key is stored
ses_smtp_password_v4_ssm_path — The SSM Path under which the IAM User's SES SMTP password is stored
user_arn — The ARN assigned by AWS for this user
user_unique_id — The unique ID assigned by AWS
secret_access_key — When `ssm_enabled` is `false`, this is the secret access key for the IAM user. This will be written
access_key_id_ssm_path — The SSM Path under which the IAM User's access key ID is stored
Resources (4)
aws_iam_access_keyaws_iam_useraws_iam_user_policyaws_iam_user_policy_attachment
Details
FrameworkTerraform Module
LanguageHCL
Version1.2.1
Cloud AWS
★ Stars81
Forks56
Total downloads21.5M
Inputs29
Outputs10
Resources4
Examples1
LicenseApache-2.0
Namespacecloudposse
Updated