密碼安全管理
通常我們?cè)谄髽I(yè)內(nèi)部對(duì)平臺(tái)帳號(hào)進(jìn)行管理時(shí),安全團(tuán)隊(duì)都會(huì)對(duì)我們的帳號(hào)體系有一定要求。
通常情況下有以下幾點(diǎn):
l 密碼設(shè)定的要求,比如密碼的長度,復(fù)雜度。
l 密碼管理的要求,如密碼過期時(shí)間,錯(cuò)誤嘗試次數(shù)等等。
l 密碼安全的的要求,比如密碼是否加密。
JFrog Access 服務(wù)
本篇文章就為您介紹一下Artifactory的帳號(hào)管理體系如何設(shè)定以上規(guī)則,對(duì)于使用Artifactory制品庫的公司來說,這是一項(xiàng)必須要了解的內(nèi)容。
那么說到Artifactory的帳號(hào)管理體系,就要給大家介紹一下JFrog Access,它JFrog產(chǎn)品中的一項(xiàng)服務(wù),作用是在后臺(tái)管理所有JFrog服務(wù)的身份驗(yàn)證和授權(quán)的相關(guān)事務(wù)。Artifactory中任何配置的所有用戶,組,權(quán)限和密碼,都有這項(xiàng)服務(wù)來管理和存儲(chǔ)。JFrog Access作為JFrog Artifactory安裝的組成部分,Access服務(wù)將作為單獨(dú)的WAR文件安裝在 $ARTIFACTORY_HOME/webApps 文件夾下。
Access相關(guān)配置
那么根據(jù)對(duì)Access的服務(wù)所承擔(dān)的工作來說,我們的密碼規(guī)則配置,也自然是由這項(xiàng)服務(wù)來管理。
對(duì)我們當(dāng)前已經(jīng)運(yùn)行的服務(wù)來說Access的配置文件,對(duì)于Artifactory 6.x的版本來說,文件存儲(chǔ)在$ARTIFACTORY_HOME/access/etc目錄下,如果是Artifactory 7.x的版本,文件存儲(chǔ)在$JFROG_HOME/artifactory/var/etc/access目錄下,文件名為:access.config.latest.yml
該文件中與密碼安全性相關(guān)的配置項(xiàng)如下:
security:
password-policy: # users' password policy (用戶的密碼策略)
uppercase: 0 # minimum number of uppercase letters that the password must contain (密碼必須包含的最小小寫字母數(shù))
lowercase: 0 # minimum number of lowercase letters that the password must contain (密碼必須包含的最小大寫字母數(shù))
digit: 0 # minimum number of digits that the password must contain (密碼必須包含的最小數(shù)字?jǐn)?shù))
length: 4 # minimum length of the password (密碼最小長度)
not-match-old: true # should access allow setting a new password to the same one currently set for the user (禁止與新舊密碼相同)
user-lock-policy:
attempts: 0 # number of failed login attempts to allow before locking a user. 0 (default) means the feature is disabled (鎖定用戶之前允許的失敗登錄嘗試次數(shù))
seconds-to-unlock: 0 # number of seconds to wait before re-enabling login for a user that has been locked out (為已鎖定的用戶重新啟用登錄之前等待的秒數(shù))
password-expiry-days: 0 # number of days before a password expires. Set by Artifactory (密碼過期)
admin-password-expirable: false # does the access admin password expire (訪問管理員密碼是否過期)
audit:
enabled: true # should access log all requests to a specific file or not (是否應(yīng)訪問將所有請(qǐng)求記錄到指定文件)
password-strength: 8 # bcrypt password strength. A higher value means better security, but password verification will be slower (密碼加密強(qiáng)度,更高的值意味著更好的安全性,但是密碼驗(yàn)證會(huì)慢一些)
local-interfaces-expire-in-seconds: 60 * 10 # number of seconds for which local server ips should be cached for users’ allowed-ips (用戶允許的IP緩存本地服務(wù)器IP的秒數(shù))
encryption-enabled: true # specifies if users’ custom data encryption is allowed (指定是否允許用戶的自定義數(shù)據(jù)加密)
完成配置一個(gè)樣例
僅僅展示參數(shù)可能不是很直觀,我們現(xiàn)在就來定一個(gè)規(guī)則,并且把配置內(nèi)容完成一遍。
要求密碼長度大于12位,包含大小寫字母與數(shù)字,新舊密碼不能相同。登錄5次失敗后鎖定,鎖定時(shí)間30秒,密碼到期時(shí)間90天。具體配置如下圖所示:
更多Access文件的相關(guān)配置可以參考我們JFrog官方Wiki鏈接。
https://www.jfrog.com/confluence/display/ACC1X/YAML+Configuration+File