File: security_compliance.pp

package info (click to toggle)
puppet-module-keystone 27.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,352 kB
  • sloc: ruby: 9,331; pascal: 301; python: 33; sh: 10; makefile: 10
file content (109 lines) | stat: -rw-r--r-- 5,534 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# == Class: keystone::security_compliance
#
# Security compliance features for keystone, specifically to satisfy
# Payment Card Industry - Data Security Standard (PCI-DSS) v3.1 requirements.
#
# === Parameters:
#
# [*change_password_upon_first_use*]
#   (Optional) Enabling this option requires users to change their password
#   when the user is created, or upon administrative reset. (Boolean value)
#   Defaults to $facts['os_service_default']
#
# [*disable_user_account_days_inactive*]
#   (Optional) The maximum number of days a user can go without authenticating 
#   before being considered "inactive" and automatically disabled (locked).
#   (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*lockout_duration*]
#   (Optional) The number of seconds a user account will be locked when the
#   maximum number of failed authentication attempts (as specified by
#   `[security_compliance] lockout_failure_attempts`) is exceeded.
#   (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*lockout_failure_attempts*]
#   (Optional) The maximum number of times that a user can fail to authenticate 
#   before the user account is locked for the number of seconds specified by
#   `[security_compliance] lockout_duration`. (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*minimum_password_age*]
#   (Optional) The number of days that a password must be used before the user
#   can change it. This prevents users from changing their passwords immediately
#   in order to wipe out their password history and reuse an old password.
#   (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*password_expires_days*]
#   (Optional) The number of days for which a password will be considered valid 
#   before requiring it to be changed. (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*password_regex*]
#   (Optional) The regular expression used to validate password strength requirements.
#   By default, the regular expression will match any password. (String value)
#   Defaults to $facts['os_service_default']
#
# [*password_regex_description*]
#   (Optional) Describe your password regular expression here in language for humans.
#   (String value)
#   Defaults to $facts['os_service_default']
#
# [*unique_last_password_count*]
#   (Optional) This controls the number of previous user password iterations to keep
#   in history, in order to enforce that newly created passwords are unique.
#   (Integer value)
#   Defaults to $facts['os_service_default']
#
# [*report_invalid_password_hash*]
#   (Optional) Enriches `identiy.authenticate.failure` event notifications with
#   partial invalid password hash.
#   Defaults to $facts['os_service_default']
#
# [*invalid_password_hash_secret_key*]
#   (Optional) Secret key used when generating password hashes.
#   Defaults to $facts['os_service_default']
#
# [*invalid_password_hash_function*]
#   (Optional) Hash function used when generating password hashes.
#   Defaults to $facts['os_service_default']
#
# [*invalid_password_hash_max_chars*]
#   (Optional) Number of characters of hash of invalid password to be returned.
#   Defaults to $facts['os_service_default']
#
class keystone::security_compliance (
  $change_password_upon_first_use     = $facts['os_service_default'],
  $disable_user_account_days_inactive = $facts['os_service_default'],
  $lockout_duration                   = $facts['os_service_default'],
  $lockout_failure_attempts           = $facts['os_service_default'],
  $minimum_password_age               = $facts['os_service_default'],
  $password_expires_days              = $facts['os_service_default'],
  $password_regex                     = $facts['os_service_default'],
  $password_regex_description         = $facts['os_service_default'],
  $unique_last_password_count         = $facts['os_service_default'],
  $report_invalid_password_hash       = $facts['os_service_default'],
  $invalid_password_hash_secret_key   = $facts['os_service_default'],
  $invalid_password_hash_function     = $facts['os_service_default'],
  $invalid_password_hash_max_chars    = $facts['os_service_default'],
) {
  include keystone::deps

  keystone_config {
    'security_compliance/change_password_upon_first_use':     value => $change_password_upon_first_use;
    'security_compliance/disable_user_account_days_inactive': value => $disable_user_account_days_inactive;
    'security_compliance/lockout_duration':                   value => $lockout_duration;
    'security_compliance/lockout_failure_attempts':           value => $lockout_failure_attempts;
    'security_compliance/minimum_password_age':               value => $minimum_password_age;
    'security_compliance/password_expires_days':              value => $password_expires_days;
    'security_compliance/password_regex':                     value => $password_regex;
    'security_compliance/password_regex_description':         value => $password_regex_description;
    'security_compliance/unique_last_password_count':         value => $unique_last_password_count;
    'security_compliance/report_invalid_password_hash':       value => join(any2array($report_invalid_password_hash), ',');
    'security_compliance/invalid_password_hash_secret_key':   value => $invalid_password_hash_secret_key, secret => true;
    'security_compliance/invalid_password_hash_function':     value => $invalid_password_hash_function;
    'security_compliance/invalid_password_hash_max_chars':    value => $invalid_password_hash_max_chars;
  }
}