Skip to content

Commit f569402

Browse files
authored
Merge pull request #211 from bytedance/update-docs
Update the documentation for version 0.8
2 parents e538d98 + 37b28ad commit f569402

File tree

95 files changed

+9993
-2764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+9993
-2764
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ vArmor is a cloud-native container sandbox system. It leverages Linux's [AppArmo
2626
**vArmor Features:**
2727
* **Cloud-Native**. vArmor follows the Kubernetes Operator design pattern, allowing users to harden specific workloads by manipulating the [CRD API](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). This approach enables sandboxing of containerized microservices from a perspective closely aligned with business needs.
2828
* **Multiple Enforcers**. vArmor abstracts AppArmor, BPF, and Seccomp as enforcers, supporting their use individually or in combination. This enables enforcing access control on container file access, process execution, network outbound, syscalls, and more.
29-
* **Allow-by-Default**. vArmor currently focuses on supporting this model, where only explicitly declared behaviors will be blocked, which effectively minimizes performance impact and enhances usability. Besides, it supports auditing behaviors that violate the access control rules, and the violation behaviors can also be allowed instead of being blocked.
29+
* **Allow-by-Default**. vArmor currently focuses on supporting this model, where only explicitly declared behaviors will be blocked, which effectively minimizes performance impact and enhances usability. Besides, it supports auditing violations, and these violations can also be allowed rather than blocked.
3030
* **Built-in Rules**. vArmor features a range of built-in rules ready to use out of the box. They are designed for the Allow-by-Default security model, eliminating the need for expertise in security profile creation.
31-
* **Behavior Modeling**. vArmor supports behavior modeling for workloads. This can be used for developing an allowlist profile, analyze which built-in rules can harden the application, or guide the configuration of workloads to adhere to the principle of least privilege.
32-
* **Deny-by-Default**. vArmor is capable of creating an allowlist profile from behavior models and ensuring that only explicitly declared behaviors are permitted.
31+
* **Behavior Modeling**. vArmor features a range of built-in rules ready to use out of the box. They are designed for the Allow-by-Default security model, eliminating the need for expertise in security profile creation.
32+
* **Deny-by-Default**. vArmor is capable of using allowlist profiles to harden workloads and provide a more user-friendly approach to develop and manage profiles.
3333

3434

3535
vArmor was created by the **Elkeid Team** of the endpoint security department at ByteDance. And the project is still in active development.

README.zh_CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ vArmor 是一个云原生容器沙箱系统,它借助 Linux 的 [AppArmor LSM]
3232
* **Multiple Enforcers**. vArmor 将 AppArmor、BPF、Seccomp 抽象为 Enforcer,并支持单独或组合使用,从而对容器的文件访问、进程执行、网络外联、系统调用等进行访问控制。
3333
* **Allow-by-Default**. vArmor 当前重点支持此安全模型,即只有显式声明的行为会被阻断,从而减少性能损失和增加易用性。vArmor 支持对违反访问控制规则的行为进行审计,并支持放行违反访问控制规则的行为。
3434
* **Built-in Rules**. vArmor 提供了一系列开箱即用的内置规则。这些规则为 Allow-by-Default 安全模型设计,从而极大降低对用户专业知识的要求。
35-
* **Behavior Modeling**. vArmor 支持对工作负载进行行为建模。这可用于开发白名单安全策略、分析哪些内置规则可用于加固应用、指导工作负载的配置遵循权限最小化原则
36-
* **Deny-by-Default**. vArmor 可以基于行为模型创建白名单安全策略,从而确保仅显式声明的行为被允许
35+
* **Behavior Modeling**. vArmor 支持对工作负载进行行为建模。这对于制定白名单安全策略、分析哪些内置规则可用于加固应用,或指导工作负载的配置以遵循最小权限原则非常有用
36+
* **Deny-by-Default**. vArmor 可以使用白名单安全策略来加固工作负载,并提供一种更便于用户使用的方式来开发和管理安全策略
3737

3838
vArmor 由字节跳动终端安全团队的 **Elkeid Team** 研发,目前该项目仍在积极迭代中。
3939

docs/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ vArmor is a cloud-native container sandbox system. It leverages Linux's [AppArmo
1717
**vArmor Features:**
1818
* Cloud-Native. vArmor follows the Kubernetes Operator design pattern, allowing users to harden specific workloads by manipulating the [CRD API](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). This approach enables sandboxing of containerized microservices from a perspective closely aligned with business needs.
1919
* Multiple Enforcers. vArmor abstracts AppArmor, BPF, and Seccomp as enforcers, supporting their use individually or in combination. This enables enforcing access control on container file access, process execution, network outbound, syscalls, and more.
20-
* Allow-by-Default. vArmor currently focuses on supporting this model, where only explicitly declared behaviors will be blocked, which effectively minimizes performance impact and enhances usability. Besides, it supports auditing behaviors that violate the access control rules, and the violation behaviors can also be allowed instead of being blocked.
20+
* Allow-by-Default. vArmor currently focuses on supporting this model, where only explicitly declared behaviors will be blocked, which effectively minimizes performance impact and enhances usability. Besides, it supports auditing violations, and these violations can also be allowed rather than blocked.
2121
* Built-in Rules. vArmor features a range of built-in rules ready to use out of the box. They are designed for the Allow-by-Default security model, eliminating the need for expertise in security profile creation.
22-
* Behavior Modeling. vArmor supports behavior modeling for workloads. This can be used for developing an allowlist profile, analyze which built-in rules can harden the application, or guide the configuration of workloads to adhere to the principle of least privilege.
23-
* Deny-by-Default. vArmor is capable of creating an allowlist profile from behavior models and ensuring that only explicitly declared behaviors are permitted.
22+
* Behavior Modeling. vArmor features a range of built-in rules ready to use out of the box. They are designed for the Allow-by-Default security model, eliminating the need for expertise in security profile creation.
23+
* Deny-by-Default. vArmor is capable of using allowlist profiles to harden workloads and provide a more user-friendly approach to develop and manage profiles.
2424

2525
vArmor was created by the **Elkeid Team** of the endpoint security department at ByteDance. And the project is still in active development.
2626

docs/README.zh_CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ vArmor 是一个云原生容器沙箱系统,它借助 Linux 的 [AppArmor LSM]
2222
* **Multiple Enforcers**. vArmor 将 AppArmor、BPF、Seccomp 抽象为 Enforcer,并支持单独或组合使用,从而对容器的文件访问、进程执行、网络外联、系统调用等进行访问控制。
2323
* **Allow-by-Default**. vArmor 当前重点支持此安全模型,即只有显式声明的行为会被阻断,从而减少性能损失和增加易用性。vArmor 支持对违反访问控制规则的行为进行审计,并支持放行违反访问控制规则的行为。
2424
* **Built-in Rules**. vArmor 提供了一系列开箱即用的内置规则。这些规则为 Allow-by-Default 安全模型设计,从而极大降低对用户专业知识的要求。
25-
* **Behavior Modeling**. vArmor 支持对工作负载进行行为建模。这可用于开发白名单安全策略、分析哪些内置规则可用于加固应用、指导工作负载的配置遵循权限最小化原则
26-
* **Deny-by-Default**. vArmor 可以基于行为模型创建白名单安全策略,从而确保仅显式声明的行为被允许
25+
* **Behavior Modeling**. vArmor 支持对工作负载进行行为建模。这对于制定白名单安全策略、分析哪些内置规则可用于加固应用,或指导工作负载的配置以遵循最小权限原则非常有用
26+
* **Deny-by-Default**. vArmor 可以使用白名单安全策略来加固工作负载,并提供一种更便于用户使用的方式来开发和管理安全策略
2727

2828
vArmor 项目由字节跳动终端安全团队的 **Elkeid Team** 创建,目前该项目仍在积极迭代中。
2929

docs/getting_started/installation.md

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,37 +36,37 @@ helm install varmor varmor-0.7.1.tgz \
3636
vArmor allows you to configure its functionality during installation using the helm command.
3737

3838
### General Options
39-
#### Disable AppArmor enforcer
39+
#### Disable AppArmor Enforcer
4040
The AppArmor enforcer should be disabled when the system doesn't support AppArmor LSM. Default: enabled.
4141

4242
```bash
4343
--set appArmorLsmEnforcer.enabled=false
4444
```
4545

46-
#### Enable BPF enforcer
46+
#### Enable BPF Enforcer
4747
The BPF enforcer can be enabled when the system supports BPF LSM. Default: disabled.
4848

4949
```bash
5050
--set bpfLsmEnforcer.enabled=true
5151
```
5252

53-
#### Enable the BehaviorModeling mode
53+
#### Enable the BehaviorModeling Mode
5454
This is an experimental feature. Currently, only the AppArmor and Seccomp enforcers support the BehaviorModeling mode. Please refer to the [BehaviorModeling Mode](../guides/policies_and_rules/policy_modes/behavior_modeling.md) for more details. Default: disabled.
5555

5656
```bash
5757
--set behaviorModeling.enabled=true
5858
```
5959

60-
#### Configure the search list of audit logs
61-
vArmor sequentially checks whether the audit logs exist and monitors the first valid file to consume AppArmor and Seccomp audit events for the violation auditing and behavioral modeling features. If you are using *auditd*, the audit events of AppArmor and Seccomp will be stored by default in `/var/log/audit/audit.log`. Otherwise they will be stored in `/var/log/kern.log`.
60+
#### Configure the Search List for System Audit Logs
61+
vArmor sequentially checks whether the system audit logs exist and monitors the first valid file to consume AppArmor and Seccomp audit events for the violation auditing and behavioral modeling features. If you are using *auditd*, the audit events of AppArmor and Seccomp will be stored by default in `/var/log/audit/audit.log`. Otherwise they will be stored in `/var/log/kern.log`.
6262

6363
You can use the option to specify the audit logs or determine the search order yourself. Please use a vertical bar to separate file paths. Default: `/var/log/audit/audit.log|/var/log/kern.log`.
6464

6565
```bash
6666
--set "agent.args={--auditLogPaths=FILE_PATH|FILE_PATH}"
6767
```
6868

69-
#### Configure metrics
69+
#### Configure Metrics
7070
You can enable metrics to monitor the operation of vArmor. All metrics are exposed at the `/metric` endpoint on port `8081` of every manager instance. Default: disabled.
7171

7272
```bash
@@ -79,53 +79,73 @@ You can use the following command to create a `ServiceMonitor` object in the nam
7979
--set metrics.serviceMonitorEnabled=true
8080
```
8181

82-
#### Set the log output format to JSON
82+
#### Set the Log Output Format to JSON
8383
The default format of agent and manager is TEXT. You can use the following command to set it to JSON.
8484

8585
```bash
8686
--set jsonLogFormat.enabled=true
8787
```
8888

89+
#### Inject Metadata into Violation Events
90+
This feature enables you to inject custom metadata into violation events. It enhances the observability of vArmor's audit logs by associating violation events with environment-specific context. Default: No custom metadata.
91+
92+
You can add key-value pairs of metadata using commands similar to the following.
93+
94+
```bash
95+
--set auditEventMetadata.clusterID="ID" \
96+
--set auditEventMetadata.clusterName="NAME" \
97+
--set auditEventMetadata.region="REGION"
98+
```
99+
89100
### Advanced Options
90-
#### Set the match label of webhook
101+
#### Set the Match Label of Webhook
91102
vArmor will only enable sandbox protection for workloads that contain a specific label. You can set the label you want or disable this feature by using `--set 'manager.args={--webhookMatchLabel=}'`. Default: `sandbox.varmor.org/enable=true`.
92103

93104
```bash
94105
--set "manager.args={--webhookMatchLabel=KEY=VALUE}"
95106
```
96107

97-
#### Disallow restarting the existing workloads
108+
#### Disallow Restarting the Existing Workloads
98109
vArmor allows users to decide whether to perform a rolling restart on all target workloads or not, when creating or deleting a policy with the `.spec.updateExistingWorkloads` field. You can disable this feature with following option. Default: enabled.
99110

100111
```bash
101112
--set restartExistWorkloads.enabled=false
102113
```
103114

104-
#### Run Agent in hostNetwork mode
115+
#### Disable Pod and Service Egress Control
116+
The feature extends network access control to restrict container access to specific Pods and Services. You can use the following option to disable it. Default: enabled.
117+
118+
```bash
119+
--set podServiceEgressControl.enabled=false
120+
```
121+
122+
The feature is currently only supported by the BPF enforcer and requires Kubernetes v1.21 or higher.
123+
124+
#### Run Agent in HostNetwork Mode
105125
The agent runs in its own network namespace and exposes the readinessProbe on port `6080` by default. If you want to run it in the host's network namespace, you can use following options.
106126

107127
```bash
108128
--set agent.network.hostNetwork=true \
109129
--set agent.network.readinessPort=HOSTPORT
110130
```
111131

112-
#### Enable exclusive mode for BPF enforcer
132+
#### Enable Exclusive Mode for BPF Enforcer
113133
If your system supports AppArmor LSM, the default AppArmor profile of container runtime will be applied to the workloads which don't have an AppArmor setting explicitly.
114134
You can use this option to disable the default AppArmor profile if a policy with a BPF enforcer is applied to the workload. Default: disabled.
115135

116136
```bash
117137
--set bpfExclusiveMode.enabled=true
118138
```
119139

120-
#### Unload all AppArmor profiles
140+
#### Unload All AppArmor Profiles
121141
All AppArmor profiles managed by vArmor will not be unloaded when the Agent exits or vArmor is uninstalled.
122142
You can use the following option to change this behavior. Default: disabled.
123143

124144
```bash
125145
--set unloadAllAaProfiles.enabled=true
126146
```
127147

128-
#### Remove all Seccomp profiles
148+
#### Remove All Seccomp Profiles
129149
All Seccomp profiles managed by vArmor will not be removed when the Agent exits or vArmor is uninstalled.
130150
You can use the following option to change this behavior. Default: disabled.
131151

docs/getting_started/installation.zh_CN.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ helm install varmor varmor-0.7.1.tgz \
5656
--set behaviorModeling.enabled=true
5757
```
5858

59-
#### 配置审计日志的搜索列表
60-
vArmor 顺序检查对应的审计日志是否存在,并通过监控第一个有效的文件来获取 AppArmor 和 Seccomp 的审计事件,从而用于违规审计和行为建模功能。当您使用 *auditd* 时,AppArmor 和 Seccomp 的审计事件会默认保存在 `/var/log/audit/audit.log` 文件中。否则,他们通常会被保存在 `/var/log/kern.log` 文件中。
59+
#### 配置系统审计日志的搜索列表
60+
vArmor 顺序检查系统的审计日志是否存在,并通过监控第一个有效的文件来获取 AppArmor 和 Seccomp 的审计事件,从而用于违规审计和行为建模功能。当您使用 *auditd* 时,AppArmor 和 Seccomp 的审计事件会默认保存在 `/var/log/audit/audit.log` 文件中。否则,他们通常会被保存在 `/var/log/kern.log` 文件中。
6161

6262
你可以使用这个选项来配置审计日志、文件搜索顺序。请使用`|`来分割文件。默认值:`/var/log/audit/audit.log|/var/log/kern.log`
6363

@@ -85,6 +85,17 @@ Agent 和 Manager 的日志格式默认为文本格式,您可以使用下面
8585
--set jsonLogFormat.enabled=true
8686
```
8787

88+
#### 注入元数据到违规事件
89+
此功能使您能够将自定义元数据注入到违规事件。它通过将违规事件与特定于环境的上下文相关联来增强 vArmor 审计日志的可观测性。默认值为空。
90+
91+
您可以使用类似下面的选项来添加元数据的键值对。
92+
93+
```bash
94+
--set auditEventMetadata.clusterID="ID" \
95+
--set auditEventMetadata.clusterName="NAME" \
96+
--set auditEventMetadata.region="REGION"
97+
```
98+
8899
### 高级选项
89100

90101
#### 设置 Webhook 的匹配标签
@@ -101,6 +112,15 @@ vArmor 只会对包含此 label 的 Workloads 开启沙箱防护。你可以使
101112
--set restartExistWorkloads.enabled=false
102113
```
103114

115+
#### 关闭 Pod 和 Service 出口控制
116+
此功能扩展了网络访问控制,以限制容器对特定 Pod 和 Service 的访问。您可以使用下面的选项关闭它。默认值:开启。
117+
118+
```bash
119+
--set podServiceEgressControl.enabled=false
120+
```
121+
122+
当前仅 BPF enforcer 支持此功能,并且需要 Kubernetes v1.21 及以上版本。
123+
104124
#### 在宿主机网络命名空间中运行 Agent
105125
vArmor 的 Agent 默认运行在独立的网络命名空间中,并在端口 `6080` 暴露就绪探针。如果您想将其部署在宿主网络命名空间中,那么可以使用下面的选项进行配置。
106126

0 commit comments

Comments
 (0)