在前幾天的文章裡,透過瀏覽器可以直接看到Nomad的內容等等,安全上有很大的問題,今天要來啟動ACL來限制管理相關資訊的存取。
Nomad ACL由四個元件組成,Rules
, Policies
, Tokens
, Capabilities
,與Consul相比多了一個Capabilities,用意是讓Nomad在控制上顆粒度可以更細,例如: read權限可以給予Capabilities要read-job,read-job-scaling等等。
從下圖可看出這四個元件的關係,user要操作Nomad時必須透過token的驗證,該token在創建時會授予相關的policy,
允許執行相關的操作。
# acl.hcl
acl {
enabled = true
}
登入需要輸入token, 那我們來創建一個。
如同大多數的系統,初始化後一定會有一個最高的帳號權限,Nomad也是相同,現在我們來初始化取得最高權限的token.
$ nomad acl bootstrap
Accessor ID = e93a72be-f2c9-b7f8-d4c5-2623be818870
Secret ID = 57a73bf2-6ae1-6467-701e-58e57e3d4d53
Name = Bootstrap Token
Type = management
Global = true
Policies = n/a
Create Time = 2020-09-15 15:26:23.053919681 +0000 UTC
Create Index = 2012
Modify Index = 2012
Secret ID 即我們的token.
現在可以透過這組token來登入Web UI了。