Merge pull request #43898 from my-git9/patch-16849
[zh-cn] sync security.md jsonpath.mdpull/43963/head^2
commit
56ad8a6eca
|
@ -31,9 +31,11 @@ This page describes Kubernetes security and disclosure information.
|
|||
## 安全公告 {#security-announcements}
|
||||
|
||||
<!--
|
||||
Join the [kubernetes-security-announce](https://groups.google.com/forum/#!forum/kubernetes-security-announce) group for emails about security and major API announcements.
|
||||
Join the [kubernetes-security-announce](https://groups.google.com/forum/#!forum/kubernetes-security-announce)
|
||||
group for emails about security and major API announcements.
|
||||
-->
|
||||
加入 [kubernetes-security-announce](https://groups.google.com/forum/#!forum/kubernetes-security-announce) 组,以获取关于安全性和主要 API 公告的电子邮件。
|
||||
加入 [kubernetes-security-announce](https://groups.google.com/forum/#!forum/kubernetes-security-announce)
|
||||
组,以获取关于安全性和主要 API 公告的电子邮件。
|
||||
|
||||
<!--
|
||||
## Report a Vulnerability
|
||||
|
@ -41,19 +43,23 @@ Join the [kubernetes-security-announce](https://groups.google.com/forum/#!forum/
|
|||
## 报告一个漏洞 {#report-a-vulnerability}
|
||||
|
||||
<!--
|
||||
We're extremely grateful for security researchers and users that report vulnerabilities to the Kubernetes Open Source Community. All reports are thoroughly investigated by a set of community volunteers.
|
||||
We're extremely grateful for security researchers and users that report vulnerabilities to
|
||||
the Kubernetes Open Source Community. All reports are thoroughly investigated by a set of community volunteers.
|
||||
-->
|
||||
我们非常感谢向 Kubernetes 开源社区报告漏洞的安全研究人员和用户。
|
||||
所有的报告都由社区志愿者进行彻底调查。
|
||||
|
||||
<!--
|
||||
To make a report, submit your vulnerability to the [Kubernetes bug bounty program](https://hackerone.com/kubernetes). This allows triage and handling of the vulnerability with standardized response times.
|
||||
To make a report, submit your vulnerability to the [Kubernetes bug bounty program](https://hackerone.com/kubernetes).
|
||||
This allows triage and handling of the vulnerability with standardized response times.
|
||||
-->
|
||||
如需报告,请将你的漏洞提交给 [Kubernetes 漏洞赏金计划](https://hackerone.com/kubernetes)。
|
||||
这样做可以使得社区能够在标准化的响应时间内对漏洞进行分类和处理。
|
||||
|
||||
<!--
|
||||
You can also email the private [security@kubernetes.io](mailto:security@kubernetes.io) list with the security details and the details expected for [all Kubernetes bug reports](https://github.com/kubernetes/kubernetes/blob/master/.github/ISSUE_TEMPLATE/bug-report.yaml).
|
||||
You can also email the private [security@kubernetes.io](mailto:security@kubernetes.io)
|
||||
list with the security details and the details expected for
|
||||
[all Kubernetes bug reports](https://github.com/kubernetes/kubernetes/blob/master/.github/ISSUE_TEMPLATE/bug-report.yaml).
|
||||
-->
|
||||
你还可以通过电子邮件向私有 [security@kubernetes.io](mailto:security@kubernetes.io)
|
||||
列表发送电子邮件,邮件中应该包含
|
||||
|
@ -61,7 +67,9 @@ You can also email the private [security@kubernetes.io](mailto:security@kubernet
|
|||
所需的详细信息。
|
||||
|
||||
<!--
|
||||
You may encrypt your email to this list using the GPG keys of the [Security Response Committee members](https://git.k8s.io/security/README.md#product-security-committee-psc). Encryption using GPG is NOT required to make a disclosure.
|
||||
You may encrypt your email to this list using the GPG keys of the
|
||||
[Security Response Committee members](https://git.k8s.io/security/README.md#product-security-committee-psc).
|
||||
Encryption using GPG is NOT required to make a disclosure.
|
||||
-->
|
||||
你可以使用[安全响应委员会成员](https://git.k8s.io/security/README.md#product-security-committee-psc)的
|
||||
GPG 密钥加密你的发往邮件列表的邮件。揭示问题时不需要使用 GPG 来加密。
|
||||
|
@ -102,12 +110,15 @@ GPG 密钥加密你的发往邮件列表的邮件。揭示问题时不需要使
|
|||
## 安全漏洞响应 {#security-vulnerability-response}
|
||||
|
||||
<!--
|
||||
Each report is acknowledged and analyzed by Security Response Committee members within 3 working days. This will set off the [Security Release Process](https://git.k8s.io/security/security-release-process.md#disclosures).
|
||||
Each report is acknowledged and analyzed by Security Response Committee members within 3 working days.
|
||||
This will set off the [Security Release Process](https://git.k8s.io/security/security-release-process.md#disclosures).
|
||||
-->
|
||||
每个报告在 3 个工作日内由安全响应委员会成员确认和分析,这将启动[安全发布过程](https://git.k8s.io/sig-release/security-release-process-documentation/security-release-process.md#disclosures)。
|
||||
每个报告在 3 个工作日内由安全响应委员会成员确认和分析,
|
||||
这将启动[安全发布过程](https://git.k8s.io/sig-release/security-release-process-documentation/security-release-process.md#disclosures)。
|
||||
|
||||
<!--
|
||||
Any vulnerability information shared with Security Response Committee stays within Kubernetes project and will not be disseminated to other projects unless it is necessary to get the issue fixed.
|
||||
Any vulnerability information shared with Security Response Committee stays within Kubernetes project
|
||||
and will not be disseminated to other projects unless it is necessary to get the issue fixed.
|
||||
-->
|
||||
与安全响应委员会共享的任何漏洞信息都保留在 Kubernetes 项目中,除非有必要修复该问题,否则不会传播到其他项目。
|
||||
|
||||
|
@ -122,18 +133,23 @@ As the security issue moves from triage, to identified fix, to release planning
|
|||
## 公开披露时间 {#public-disclosure-timing}
|
||||
|
||||
<!--
|
||||
A public disclosure date is negotiated by the Kubernetes Security Response Committee and the bug submitter. We prefer to fully disclose the bug as soon as possible once a user mitigation is available.
|
||||
A public disclosure date is negotiated by the Kubernetes Security Response Committee and the bug submitter.
|
||||
We prefer to fully disclose the bug as soon as possible once a user mitigation is available.
|
||||
-->
|
||||
公开披露日期由 Kubernetes 安全响应委员会和 bug 提交者协商。
|
||||
我们倾向于在能够为用户提供缓解措施之后尽快完全披露该 bug。
|
||||
|
||||
<!--
|
||||
It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination.
|
||||
It is reasonable to delay disclosure when the bug or the fix is not yet fully understood,
|
||||
the solution is not well-tested, or for vendor coordination.
|
||||
-->
|
||||
当 bug 或其修复还没有被完全理解,解决方案没有经过良好的测试,或者为了处理供应商协调问题时,延迟披露是合理的。
|
||||
|
||||
<!--
|
||||
The timeframe for disclosure is from immediate (especially if it's already publicly known) to a few weeks. For a vulnerability with a straightforward mitigation, we expect report date to disclosure date to be on the order of 7 days. The Kubernetes Security Response Committee holds the final say when setting a disclosure date.
|
||||
The timeframe for disclosure is from immediate (especially if it's already publicly known)
|
||||
to a few weeks. For a vulnerability with a straightforward mitigation, we expect report date
|
||||
to disclosure date to be on the order of 7 days. The Kubernetes Security Response Committee
|
||||
holds the final say when setting a disclosure date.
|
||||
-->
|
||||
信息披露的时间范围从即时(尤其是已经公开的)到几周不等。
|
||||
对于具有直接缓解措施的漏洞,我们希望报告日期到披露日期的间隔是 7 天。
|
||||
|
|
|
@ -58,7 +58,12 @@ Given the JSON input:
|
|||
"items":[
|
||||
{
|
||||
"kind":"None",
|
||||
"metadata":{"name":"127.0.0.1"},
|
||||
"metadata":{
|
||||
"name":"127.0.0.1",
|
||||
"labels":{
|
||||
"kubernetes.io/hostname":"127.0.0.1"
|
||||
}
|
||||
},
|
||||
"status":{
|
||||
"capacity":{"cpu":"4"},
|
||||
"addresses":[{"type": "LegacyHostIP", "address":"127.0.0.1"}]
|
||||
|
@ -90,36 +95,38 @@ Given the JSON input:
|
|||
```
|
||||
|
||||
<!--
|
||||
Function | Description | Example | Result
|
||||
--------------------|---------------------------|-----------------------------------------------------------------|------------------
|
||||
`text` | the plain text | `kind is {.kind}` | `kind is List`
|
||||
`@` | the current object | `{@}` | the same as input
|
||||
`.` or `[]` | child operator | `{.kind}`, `{['kind']}` or `{['name\.type']}` | `List`
|
||||
`..` | recursive descent | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
|
||||
`*` | wildcard. Get all objects | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
|
||||
`[start:end:step]` | subscript operator | `{.users[0].name}` | `myself`
|
||||
`[,]` | union operator | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
|
||||
`?()` | filter | `{.users[?(@.name=="e2e")].user.password}` | `secret`
|
||||
`range`, `end` | iterate list | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
|
||||
`''` | quote interpreted string | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
|
||||
Function | Description | Example | Result
|
||||
--------------------|------------------------------|-----------------------------------------------------------------|------------------
|
||||
`text` | the plain text | `kind is {.kind}` | `kind is List`
|
||||
`@` | the current object | `{@}` | the same as input
|
||||
`.` or `[]` | child operator | `{.kind}`, `{['kind']}` or `{['name\.type']}` | `List`
|
||||
`..` | recursive descent | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
|
||||
`*` | wildcard. Get all objects | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
|
||||
`[start:end:step]` | subscript operator | `{.users[0].name}` | `myself`
|
||||
`[,]` | union operator | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
|
||||
`?()` | filter | `{.users[?(@.name=="e2e")].user.password}` | `secret`
|
||||
`range`, `end` | iterate list | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
|
||||
`''` | quote interpreted string | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
|
||||
`\` | escape termination character | `{.items[0].metadata.labels.kubernetes\.io/hostname}` | `127.0.0.1`
|
||||
-->
|
||||
函数 | 描述 | 示例 | 结果
|
||||
--------------------|---------------------------|-----------------------------------------------------------------|------------------
|
||||
`text` | 纯文本 | `kind is {.kind}` | `kind is List`
|
||||
`@` | 当前对象 | `{@}` | 与输入相同
|
||||
`.` or `[]` | 子运算符 | `{.kind}`, `{['kind']}` or `{['name\.type']}` | `List`
|
||||
`..` | 递归下降 | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
|
||||
`*` | 通配符。获取所有对象 | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
|
||||
`[start:end:step]` | 下标运算符 | `{.users[0].name}` | `myself`
|
||||
`[,]` | 并集运算符 | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
|
||||
`?()` | 过滤 | `{.users[?(@.name=="e2e")].user.password}` | `secret`
|
||||
`range`, `end` | 迭代列表 | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
|
||||
`''` | 引用解释执行字符串 | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
|
||||
函数 | 描述 | 示例 | 结果
|
||||
--------------------|--------------------------|-----------------------------------------------------------------|------------------
|
||||
`text` | 纯文本 | `kind is {.kind}` | `kind is List`
|
||||
`@` | 当前对象 | `{@}` | 与输入相同
|
||||
`.` 或 `[]` | 子运算符 | `{.kind}`、`{['kind']}` 或 `{['name\.type']}` | `List`
|
||||
`..` | 递归下降 | `{..name}` | `127.0.0.1 127.0.0.2 myself e2e`
|
||||
`*` | 通配符。获取所有对象 | `{.items[*].metadata.name}` | `[127.0.0.1 127.0.0.2]`
|
||||
`[start:end:step]` | 下标运算符 | `{.users[0].name}` | `myself`
|
||||
`[,]` | 并集运算符 | `{.items[*]['metadata.name', 'status.capacity']}` | `127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]`
|
||||
`?()` | 过滤 | `{.users[?(@.name=="e2e")].user.password}` | `secret`
|
||||
`range`,`end` | 迭代列表 | `{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}` | `[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]`
|
||||
`''` | 引用解释执行字符串 | `{range .items[*]}{.metadata.name}{'\t'}{end}` | `127.0.0.1 127.0.0.2`
|
||||
`\` | 转义终止符 | `{.items[0].metadata.labels.kubernetes\.io/hostname}` | `127.0.0.1`
|
||||
|
||||
<!--
|
||||
Examples using `kubectl` and JSONPath expressions:
|
||||
-->
|
||||
使用 `kubectl` 和 JSONPath 表达式的示例:
|
||||
使用 `kubectl` 和 JSONPath 表达式的示例:
|
||||
|
||||
```shell
|
||||
kubectl get pods -o json
|
||||
|
@ -128,22 +135,21 @@ kubectl get pods -o=jsonpath='{.items[0]}'
|
|||
kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
|
||||
kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
|
||||
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'
|
||||
kubectl get pods -o=jsonpath='{.items[0].metadata.labels.kubernetes\.io/hostname}'
|
||||
```
|
||||
|
||||
<!--
|
||||
{{< note >}}
|
||||
On Windows, you must _double_ quote any JSONPath template that contains spaces (not single quote as shown above for bash). This in turn means that you must use a single quote or escaped double quote around any literals in the template. For example:
|
||||
<!--
|
||||
On Windows, you must _double_ quote any JSONPath template that contains spaces (not single quote as shown above for bash).
|
||||
This in turn means that you must use a single quote or escaped double quote around any literals in the template. For example:
|
||||
|
||||
```cmd
|
||||
kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.startTime}{'\n'}{end}"
|
||||
kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{\"\t\"}{.status.startTime}{\"\n\"}{end}"
|
||||
```
|
||||
{{< /note >}}
|
||||
-->
|
||||
{{< note >}}
|
||||
在 Windows 上,对于任何包含空格的 JSONPath 模板,你必须使用双引号(不是上面 bash 所示的单引号)。
|
||||
反过来,这意味着你必须在模板中的所有文字周围使用单引号或转义的双引号。
|
||||
例如:
|
||||
反过来,这意味着你必须在模板中的所有文字周围使用单引号或转义的双引号。例如:
|
||||
|
||||
```cmd
|
||||
C:\> kubectl get pods -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.startTime}{'\n'}{end}"
|
||||
|
|
Loading…
Reference in New Issue