Im voraus vorbereiten
Umgebung: Linux-System
Version: V1.6.2
Download: https://www.consul.io/downloads.html
Konfigurationsdatei: 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 aktivieren
- acl.default_policy: Richtlinie, standardmäßig verweigern-verweigern, standardmäßig zulassen-erlauben
- acl.enable_token_persistence: Dauerhaftes Token zulassen
- acl. enable_key_list_policy: Rekursiven Betrieb von KV zulassen
Konsul starten:./consul agent -config-file=config-acl.json
ACL-Verwendungsszenarien
- Zugriffskontrolle des Agenten
- Dienstregistrierung / Discovery-Zugriffskontrolle
- KV-Zugangskontrolle
ACL verwendet Schritte
Erstens: Initialisieren Sie Consul ACL
Bash: Die consul acl bootstrap
generierten Informationen lauten wie folgt (speichern Sie die Informationen):
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
Die AccessorID und SecretID, die durch Ausführen dieses Befehls generiert werden, haben die höchste Berechtigung.
Zwei Konfigurationsregeln
localhost:8500
Browserzugriff : Geben Sie die SecretID oben auf der Registerkarte ACL ein. Daraufhin wird die folgende Seite angezeigt.
Standardrichtlinie: Global-Management, dies ist die SecretID mit der höchsten Berechtigung, die dem Superadministrator entspricht.
AccessorID: Zugriffs-ID. Es gibt nur ein Token. Klicken Sie auf den Datensatz, um ihn einzugeben, und Sie sehen den
Bereich:
Rollen und Richtlinien: Über Berechtigungen oder Richtlinien verfügen. AccessorID steuert die Zugriffsberechtigungen durch Zuordnen verschiedener Rollen und Richtlinien
Hier einige Richtlinienfälle:
1) Servicerichtlinie
service_prefix "" {
policy = "write"
}
Die obige Strategie bedeutet, dass alle Dienste geschrieben werden können.
Spezifische Strategie-Referenz: Dienstregeln
2) KV-Strategie
key_prefix "" {
policy = "list"
}
key_prefix "" {
policy = "write"
}
key_prefix "config/" {
policy = "read"
}
Die erste: Gibt an, dass alle KVs rekursive Listenoperationen ausführen können. Diese Option "enable_key_list_policy":true
kann erst wirksam werden, nachdem die Konfigurationsdatei angegeben wurde .
Der zweite: Alle KVs können Schreibvorgänge ausführen.
Der dritte: Der Schlüssel, der mit config / beginnt, kann gelesen werden.
Spezifische Strategiereferenz: Schlüsselwertregeln