Consul 入门实战(4)-
Consul 使用访问控制列表 (ACL) 来保护 UI、API、CLI、服务通信和 agent 通信,本文主要介绍 Consul ACL 的基本概念及使用,文中所使用到的软件版本:Consul 1.11.1。
1、Consul ACL 概述
ACL 的核心是将规则分组到策略中,然后将一个或多个策略与令牌相关联。
在最高级别,ACL 系统有两个主要组件:
ACL Policies:策略允许将一组规则分组到一个逻辑单元中,该逻辑单元可以重用并与许多令牌关联。
ACL Tokens:访问 Consul 需要携带 Token 进行认证;每个 ACL Token 对应一个 Accessor ID 和一个 Secret ID。Accessor ID 被用来命名 Token,Secret ID 被作为 Token 用于与 Consul 的通信。
在多数情况下,Policies 和 Tokens 足够了;但其他组件可用于更高级的设置:
ACL Roles:角色允许将一组策略和服务标识分组到可应用于多个令牌的可重用的高级实体中。(1.5.0 中新增)
ACL Service Identities:服务标识是一个策略模板,表示一个策略链接。(1.5.0 中新增)
ACL Node Identities:节点标识是一个策略模板,表示一个策略链接。(1.5.0 中新增)
ACL Auth Methods and Binding Rules:身份验证方法针对受信任的外部方执行身份验证,以授权创建可在本地数据中心内使用的 ACL 令牌。。(1.8.1 中新增)
1.1、ACL Policies
ACL policies 包含如下属性:
Attribute | Description | Required | Default |
---|---|---|---|
ID |
The policy”s auto-generated public identifier. | N/A | N/A |
name |
Unique name for the policy. | Required | none |
description |
Human readable description of the policy. | Optional | none |
rules |
Set of rules granting or denying permissions. See the Rule Specification documentation for more details. | Optional | none |
datacenter |
Datacenter in which the policy is valid. More than one datacenter can be specified. | Optional | none |
namespace |
ENTERPRISE |