2015-10-26 19 views
7

Tôi đã thiết lập lãnh sự trên một cá thể. web-ui đang chạy hoàn hảo nhưng ACL không được bật. Trước đây tôi không có bất kỳ tệp cấu hình nào nhưng bây giờ tôi đã tạo một tệp config.json trong /etc/consul.d/bootstrap/ với nội dung sau.ACL không được kích hoạt trong lãnh sự

{ 
    "bootstrap": true, 
    "server": true, 
    "datacenter": "dc1", 
    "acl_datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "encrypt": "consul keygen output", 
    "ca_file": "/etc/consul.d/ssl/ca.cert", 
    "cert_file": "/etc/consul.d/ssl/consul.cert", 
    "key_file": "/etc/consul.d/ssl/consul.key", 
    "verify_incoming": true, 
    "verify_outgoing": true, 
    "log_level": "INFO", 
    "enable_syslog": true 
} 

Thần I chạy lệnh sau

đại lý lãnh -server -bootstrap -data-dir/tmp/lãnh -ui-dir /home/ubuntu/dist/-Khách hàng = XXXX

nơi X.X.X.X là ip tin sơ thẩm của tôi

Nhưng ACL không nhận được kích hoạt.

/etc/consul.d/server/config.json

{ 
    "bootstrap": false, 
    "server": false, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "ui_dir": "/home/ubuntu/dist", 
    "acl_datacenter": "dc1" 
    "encrypt": "SECRET" 
} 

/etc/consul.d/server/config.json

{ 
    "bootstrap": false, 
    "server": true, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "data_dir": "/var/consul", 
    "acl_datacenter": "dc1", 
    "acl_default_policy": "allow", 
    "encrypt": "SECRET" 
} 

Tệp cấu hình hoạt động

{ 
    "bootstrap": true, 
    "server": true, 
    "log_level": "DEBUG", 
    "enable_syslog": true, 
    "datacenter": "dc1", 
    "addresses" : { 
     "http": "X.X.X.X" 
    }, 
    "bind_addr": "X.X.X.X", 
    "node_name": "X.X.X.X", 
    "data_dir": "/tmp/consul", 
    "ui_dir": "~/dist", 
    "acl_datacenter": "dc1", 
    "acl_master_token": "secret", 
    "encrypt": "secret" 
} 

Bây giờ hãy chạy lệnh sau

consul agent -config-dir ~/server -ui-dir ~/dist -bootstrap true -client=X.X.X.X 
+0

Vì bạn chỉ chạy một cá thể, vui lòng đăng cấu hình 'config.json' trong thư mục'/etc/consul.d/server' và '/ etc/consul.d/client'. –

+0

@AnkitKulkarni Đã thêm nội dung của tệp 'config.json' bắt buộc –

Trả lời

4

Bạn đang thiếu token bậc thầy trong cấu hình của bạn. Nếu bạn thêm mục này,

"acl_master_token": "secret" và sử dụng cùng mã thông báo trong giao diện người dùng của mình, bạn sẽ có thể sử dụng ACL.

Lưu ý: Nếu bạn đang sử dụng một cá thể nút duy nhất, không đặt thuộc tính acl_token giống như mã thông báo chính của bạn. Điều này có nghĩa là bất kỳ ai có quyền truy cập vào giao diện người dùng sẽ có quyền truy cập vào master token, về cơ bản sẽ bỏ qua tất cả các quy tắc ACL của bạn. Thuộc tính này chỉ nên được đặt trên các nút máy chủ.

Sau khi hoạt động tốt, tôi đã tạo một screencast để minh họa cách thiết lập consul trên một máy chủ duy nhất. Here is the link

+0

Tôi không nhận được điểm của bạn, "không đặt thuộc tính acl_token giống như mã thông báo chính" –

+0

'acl_master_token' giống như mã thông báo dự kiến, để chỉnh sửa ACL. Và 'acl_token' là mã thông báo được gửi bởi máy khách/máy chủ đó. Chỉ các máy chủ mới có 'acl_token' giống như' acl_master_token'. Đặt chúng giống nhau trên một ứng dụng khách sẽ vô hiệu hóa ACL của bạn. – cskksc

+0

Tôi đã thêm acl_master_token vào cấu hình bootstrap và tệp cấu hình máy chủ. Cũng đã thêm cùng một mã thông báo cho web-ui trong phần thiết lập. Và bắt đầu lãnh sự bằng lệnh 'đại lý lãnh sự - máy chủ -bootstrap -data-dir/tmp/consul -ui-dir/home/ubuntu/dist/-client = X.X.X.X' vẫn cho thấy ACL bị vô hiệu hóa. –

Các vấn đề liên quan