事前に準備する
環境:Linuxシステム
バージョン:V1.6.2
ダウンロード:https://www.consul.io/downloads.html
構成ファイル:config-acl.json
{
"datacenter":"tencent-datacenter",
"data_dir":"/usr/local/consul-1.6.2/data",
"log_file":"/usr/local/consul-1.6.2/log/",
"log_level":"INFO",
"bind_addr":"0.0.0.0",
"client_addr":"0.0.0.0",
"node_name":"tencent-node",
"ui":true,
"bootstrap_expect":1,
"server":true,
"acl":{
"enabled":true,
"default_policy":"deny",
"enable_token_persistence":true,
"enable_key_list_policy":true
}
}
- acl.enabled:aclを有効にします
- acl.default_policy:ポリシー、デフォルトで拒否-拒否;デフォルトで許可-許可
- acl.enable_token_persistence:永続トークンを許可する
- acl。enable_key_list_policy:KVの再帰的操作を許可する
領事を開始します。./consul agent -config-file=config-acl.json
ACLの使用シナリオ
- エージェントのアクセス制御
- サービス登録/ディスカバリーアクセス制御
- KVアクセス制御
ACLの使用手順
1つは、領事ACLを初期化する
bash:consul acl bootstrap
生成される情報は次のとおりです(情報を保存します):
AccessorID: xxxx-xxxx-xxxx-xxxx-xxxx
SecretID: xxxx-xxxx-xxxx-xxxx-xxxx
Description: Bootstrap Token (Global Management)
Local: false
Create Time: 2019-12-23 12:06:53.799083966 +0800 CST
Policies:
00000000-0000-0000-0000-000000000001 - global-management
このコマンドの実行によって生成されたAccessorIDとSecretIDは、最高の権限を持っています。
2、構成ルール
ブラウザアクセス:localhost:8500
上記の[ACL]タブにSecretIDを入力すると、次のページが表示されます。
デフォルトのポリシー:グローバル管理。これは、スーパー管理者と同等の最高の権限を持つSecretIDです。
AccessorID:アクセスID。トークンは1つだけです。入力するレコードをクリックすると、
スコープ:
役割とポリシー:権限またはポリシーがあります。AccessorIDは、さまざまな役割とポリシーを関連付けることでアクセス権限を制御します。
ここにいくつかのポリシーケースがあります:
1)サービスポリシー
service_prefix "" {
policy = "write"
}
上記の戦略は、すべてのサービスを記述できることを意味します。
具体的な戦略リファレンス:サービスルール
2)KV戦略
key_prefix "" {
policy = "list"
}
key_prefix "" {
policy = "write"
}
key_prefix "config/" {
policy = "read"
}
最初のもの:すべてのKVが再帰的なリスト操作を実行できることを示します。このオプション"enable_key_list_policy":true
は、構成ファイルが指定された後にのみ有効になります。
2つ目:すべてのKVが書き込み操作を実行できます。
3番目:config /で始まるキーを読み取ることができます。
特定の戦略リファレンス:Key-Value-rules