博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nomad添加acl认证
阅读量:5891 次
发布时间:2019-06-19

本文共 1829 字,大约阅读时间需要 6 分钟。

1、在server节点的配置文件/etc/nomad/server.hcl添加启用acl,如下:

server {
enabled = true
bootstrap_expect = 1
}
acl {
enabled = true
token_ttl = "30s"
policy_ttl = "60s"
}
配置添加完成后重启nomad服务:service nomad restart

2、生成初始令牌

启用ACL系统后,我们需要生成初始令牌。第一个令牌用于引导系统,应注意不要丢失它。启用ACL系统后,我们使用Bootstrap CLI
nomad acl bootstrap
Accessor ID = 5b7fd453-d3f7-6814-81dc-fcfe6daedea5
Secret ID = 9184ec35-65d4-9258-61e3-0c066d0a45c5
Name = Bootstrap Token
Type = management
Global = true
Policies = n/a
Create Time = 2017-09-11 17:38:10.999089612 +0000 UTC
Create Index = 7
Modify Index = 7
执行初始引导后,除非重置,否则无法再次执行。确保保存此AccessorID和SecretID。引导令牌是management类型令牌,这意味着它可以执行任何操作。它应该用于设置ACL策略并创建其他ACL令牌。引导令牌可以删除,就像任何其他令牌一样,因此应注意不要撤销所有管理令牌。

3、设置匿名策略

Store our token secret ID
export NOMAD_TOKEN="BOOTSTRAP_SECRET_ID"

Write out the payload

cat > payload.json <<EOF
{
"Name": "anonymous",
"Description": "Allow read-only access for anonymous requests",
"Rules": "
namespace \"default\" {
policy = \"read\"
}
agent {
policy = \"read\"
}
node {
policy = \"read\"
}
"
}
EOF

Install the policy

curl --request POST \
--data @payload.json \
-H "X-Nomad-Token: $NOMAD_TOKEN" \

Verify anonymous request works

curl

4、规则规范

ACL系统的核心部分是规则语言,用于描述必须强制执行的策略。我们使用HashiCorp配置语言(HCL)来指定规则。这种语言是人类可读的并且可与JSON互操作,因此可以轻松地生成机器。策略可以包含任意数量的规则。

政策通常有几种处置方式:

read:允许读取资源但不修改资源

write:允许读取和修改资源
deny:不允许读取或修改资源。当多个策略与令牌关联时,拒绝优先。
HCL格式的规范如下:

Allow read only access to the default namespace

namespace "default" {

policy = "read"
}

Allow writing to the foo namespace

namespace "foo" {

policy = "write"
}

agent {

policy = "read"
}

node {

policy = "read"
}

quota {

policy = "read"
}
这相当于以下JSON输入:

{

"namespace": {
"default": {
"policy": "read"
},
"foo": {
"policy": "write"
}
},
"agent": {
"policy": "read"
},
"node": {
"policy": "read"
},
"quota": {
"policy": "read"
}
}

转载于:https://blog.51cto.com/aaronsa/2151006

你可能感兴趣的文章
企业实践用户邮箱导入/导出(第2部分)
查看>>
我的友情链接
查看>>
nagios搭建(五):nagios监控mysql
查看>>
AIX ftp 530 User root access denied
查看>>
【Java记录】try-with-resources的一个坑
查看>>
如何学习Linux命令-初级篇
查看>>
从Oracle Public Yum为Oracle Linux建立本地的Yum源
查看>>
PHP数据类型
查看>>
MySQL utf8mb4 字符集:支持 emoji 表情符号
查看>>
IOS开发-如何debug及处理闪退,My App Crashed,Now What? - P...
查看>>
马云_拥抱敏捷-----华为的SDN实践
查看>>
Cocos2d-x 3移动游戏编程
查看>>
Android开发——09Google I/O之让Android UI性能更高效(1)
查看>>
广度优先搜索知识总结
查看>>
Java多线程机制详解(转)
查看>>
在 SELECT 查询中使用表表达式
查看>>
我的友情链接
查看>>
(二) php if语句,switch语句,continue语句,return语句,for 、while、do while 循环
查看>>
Hadoop集群(第7期)_Eclipse开发环境设置
查看>>
ARC 下两种释放对象的方法
查看>>