微服务安全:访问控制、XACML 与安全边车模式
1. 访问控制基础
授权是一项业务功能,每个微服务都能自行确定允许访问其操作的标准。在最基本的授权形式中,我们会检查特定用户是否有权限对特定资源执行特定操作。这种操作与资源的组合被称为权限。授权检查的目的是评估用户是否具备访问资源所需的最低权限集。
资源可以明确规定谁能执行操作以及可以执行哪些操作。声明资源所需权限的方式有多种,最常见的是为资源附加策略或访问控制列表(ACL)。目前有多种策略语言可用于表达这些访问控制要求。例如,亚马逊网络服务(AWS)使用的基于 JSON 的策略语言就简单而强大,示例如下:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::example_bucket"
}
}
Open Policy Agent(OPA)引入了另一种策略语言,主要针对云原生环境的基于策略的控制。以下是一个在 OPA 中定义的示例策略,允许所有 HTTP 请求访问:
package http.authz
allow = true
XACML(可扩展访问控制标记语言)则提供了另一种定义访问控制策略的方式,它是目前唯一由 OASIS 制定的策略语言标准。
超级会员免费看
订阅专栏 解锁全文
2935

被折叠的 条评论
为什么被折叠?



