Skip to content

Commit 57fc908

Browse files
authored
Merge pull request #30161 from riita10069/feature/concepts/security/pod-security-standards
[ja]Update pod-security-standards.md
2 parents ca50f67 + 8dd9274 commit 57fc908

File tree

1 file changed

+140
-27
lines changed

1 file changed

+140
-27
lines changed

content/ja/docs/concepts/security/pod-security-standards.md

Lines changed: 140 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,25 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
4949
<td><strong>項目</strong></td>
5050
<td><strong>ポリシー</strong></td>
5151
</tr>
52+
<tr>
53+
<td>ホストのプロセス</td>
54+
<td>
55+
<p>Windows Podは、Windowsノードへの特権的なアクセスを可能にする<a href="/docs/tasks/configure-pod-container/create-hostprocess-pod">HostProcess</a>コンテナ</a>を実行する機能を提供します。ベースラインポリシーでは、ホストへの特権的なアクセスは禁止されています。HostProcess Podは、Kubernetes v1.22時点ではアルファ版の機能です。
56+
ホストのネームスペースの共有は無効化すべきです。</p>
57+
<p><strong>制限されるフィールド</strong></p>
58+
<ul>
59+
<li><code>spec.securityContext.windowsOptions.hostProcess</code></li>
60+
<li><code>spec.containers[*].securityContext.windowsOptions.hostProcess</code></li>
61+
<li><code>spec.initContainers[*].securityContext.windowsOptions.hostProcess</code></li>
62+
<li><code>spec.ephemeralContainers[*].securityContext.windowsOptions.hostProcess</code></li>
63+
</ul>
64+
<p><strong>認められる値</strong></p>
65+
<ul>
66+
<li>Undefined/nil</li>
67+
<li><code>false</code></li>
68+
</ul>
69+
</td>
70+
</tr>
5271
<tr>
5372
<td>ホストのネームスペース</td>
5473
<td>
@@ -57,7 +76,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
5776
spec.hostNetwork<br>
5877
spec.hostPID<br>
5978
spec.hostIPC<br>
60-
<br><b>認められる値:</b> false<br>
79+
<br><b>認められる値:</b> false, Undefined/nil<br>
6180
</td>
6281
</tr>
6382
<tr>
@@ -67,6 +86,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
6786
<br><b>制限されるフィールド:</b><br>
6887
spec.containers[*].securityContext.privileged<br>
6988
spec.initContainers[*].securityContext.privileged<br>
89+
spec.ephemeralContainers[*].securityContext.privileged<br>
7090
<br><b>認められる値:</b> false, undefined/nil<br>
7191
</td>
7292
</tr>
@@ -77,7 +97,22 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
7797
<br><b>制限されるフィールド:</b><br>
7898
spec.containers[*].securityContext.capabilities.add<br>
7999
spec.initContainers[*].securityContext.capabilities.add<br>
80-
<br><b>認められる値:</b> 空 (または既知のリストに限定)<br>
100+
spec.ephemeralContainers[*].securityContext.capabilities.add<br>
101+
<br><b>認められる値:</b>
102+
Undefined/nil<br>
103+
AUDIT_WRITE<br>
104+
CHOWN<br>
105+
DAC_OVERRIDE<br>
106+
FOWNER<br>
107+
FSETID<br>
108+
KILL<br>
109+
MKNOD<br>
110+
NET_BIND_SERVICE<br>
111+
SETFCAP<br>
112+
SETGID<br>
113+
SETPCAP<br>
114+
SETUID<br>
115+
SYS_CHROOT<br>
81116
</td>
82117
</tr>
83118
<tr>
@@ -96,16 +131,17 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
96131
<br><b>制限されるフィールド:</b><br>
97132
spec.containers[*].ports[*].hostPort<br>
98133
spec.initContainers[*].ports[*].hostPort<br>
134+
spec.ephemeralContainers[*].ports[*].hostPort<br>
99135
<br><b>認められる値:</b> 0, undefined (または既知のリストに限定)<br>
100136
</td>
101137
</tr>
102138
<tr>
103-
<td>AppArmor <em>(任意)</em></td>
139+
<td>AppArmor<em>(任意)</em></td>
104140
<td>
105141
サポートされるホストでは、AppArmorの'runtime/default'プロファイルがデフォルトで適用されます。デフォルトのポリシーはポリシーの上書きや無効化を防ぎ、許可されたポリシーのセットを上書きできないよう制限すべきです。<br>
106142
<br><b>制限されるフィールド:</b><br>
107143
metadata.annotations['container.apparmor.security.beta.kubernetes.io/*']<br>
108-
<br><b>認められる値:</b> 'runtime/default', undefined<br>
144+
<br><b>認められる値:</b> 'runtime/default', undefined, localhost/*<br>
109145
</td>
110146
</tr>
111147
<tr>
@@ -116,7 +152,24 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
116152
spec.securityContext.seLinuxOptions<br>
117153
spec.containers[*].securityContext.seLinuxOptions<br>
118154
spec.initContainers[*].securityContext.seLinuxOptions<br>
119-
<br><b>認められる値:</b> undefined/nil<br>
155+
spec.ephemeralContainers[*].securityContext.seLinuxOptions.type<br>
156+
<br><b>認められる値:</b>undefined/nil<br>
157+
Undefined/""<br>
158+
container_t<br>
159+
container_init_t<br>
160+
container_kvm_t<br>
161+
<hr />
162+
<br><b>制限されるフィールド:</b><br>
163+
spec.securityContext.seLinuxOptions.user<br>
164+
spec.containers[*].securityContext.seLinuxOptions.user<br>
165+
spec.initContainers[*].securityContext.seLinuxOptions.user<br>
166+
spec.ephemeralContainers[*].securityContext.seLinuxOptions.user<br>
167+
spec.securityContext.seLinuxOptions.role<br>
168+
spec.containers[*].securityContext.seLinuxOptions.role<br>
169+
spec.initContainers[*].securityContext.seLinuxOptions.role<br>
170+
spec.ephemeralContainers[*].securityContext.seLinuxOptions.role<br>
171+
<br><b>認められる値:</b>undefined/nil<br>
172+
Undefined/""
120173
</td>
121174
</tr>
122175
<tr>
@@ -126,9 +179,29 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
126179
<br><b>制限されるフィールド:</b><br>
127180
spec.containers[*].securityContext.procMount<br>
128181
spec.initContainers[*].securityContext.procMount<br>
129-
<br><b>認められる値:</b> undefined/nil, 'Default'<br>
182+
spec.ephemeralContainers[*].securityContext.procMount<br>
183+
<br><b>認められる値:</b>undefined/nil, 'Default'<br>
130184
</td>
131185
</tr>
186+
<tr>
187+
<td>Seccomp</td>
188+
<td>
189+
<p>Seccompプロファイルを明示的に<code>Unconfined</code>に設定することはできません。</p>
190+
<p><strong>Restricted Fields</strong></p>
191+
<ul>
192+
<li><code>spec.securityContext.seccompProfile.type</code></li>
193+
<li><code>spec.containers[*].securityContext.seccompProfile.type</code></li>
194+
<li><code>spec.initContainers[*].securityContext.seccompProfile.type</code></li>
195+
<li><code>spec.ephemeralContainers[*].securityContext.seccompProfile.type</code></li>
196+
</ul>
197+
<p><strong>Allowed Values</strong></p>
198+
<ul>
199+
<li>Undefined/nil</li>
200+
<li><code>RuntimeDefault</code></li>
201+
<li><code>Localhost</code></li>
202+
</ul>
203+
</td>
204+
</tr>
132205
<tr>
133206
<td>Sysctl</td>
134207
<td>
@@ -169,27 +242,27 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
169242
<td>
170243
HostPathボリュームの制限に加え、制限プロファイルではコアでない種類のボリュームの利用をPersistentVolumeにより定義されたものに限定します。<br>
171244
<br><b>制限されるフィールド:</b><br>
172-
spec.volumes[*].hostPath<br>
173-
spec.volumes[*].gcePersistentDisk<br>
174-
spec.volumes[*].awsElasticBlockStore<br>
175-
spec.volumes[*].gitRepo<br>
176-
spec.volumes[*].nfs<br>
177-
spec.volumes[*].iscsi<br>
178-
spec.volumes[*].glusterfs<br>
179-
spec.volumes[*].rbd<br>
180-
spec.volumes[*].flexVolume<br>
181-
spec.volumes[*].cinder<br>
182-
spec.volumes[*].cephFS<br>
183-
spec.volumes[*].flocker<br>
184-
spec.volumes[*].fc<br>
185-
spec.volumes[*].azureFile<br>
186-
spec.volumes[*].vsphereVolume<br>
187-
spec.volumes[*].quobyte<br>
188-
spec.volumes[*].azureDisk<br>
189-
spec.volumes[*].portworxVolume<br>
190-
spec.volumes[*].scaleIO<br>
191-
spec.volumes[*].storageos<br>
192-
spec.volumes[*].csi<br>
245+
spec.volumes[*].hostPath<br>
246+
spec.volumes[*].gcePersistentDisk<br>
247+
spec.volumes[*].awsElasticBlockStore<br>
248+
spec.volumes[*].gitRepo<br>
249+
spec.volumes[*].nfs<br>
250+
spec.volumes[*].iscsi<br>
251+
spec.volumes[*].glusterfs<br>
252+
spec.volumes[*].rbd<br>
253+
spec.volumes[*].flexVolume<br>
254+
spec.volumes[*].cinder<br>
255+
spec.volumes[*].cephfs<br>
256+
spec.volumes[*].flocker<br>
257+
spec.volumes[*].fc<br>
258+
spec.volumes[*].azureFile<br>
259+
spec.volumes[*].vsphereVolume<br>
260+
spec.volumes[*].quobyte<br>
261+
spec.volumes[*].azureDisk<br>
262+
spec.volumes[*].portworxVolume<br>
263+
spec.volumes[*].scaleIO<br>
264+
spec.volumes[*].storageos<br>
265+
spec.volumes[*].photonPersistentDisk<br>
193266
<br><b>認められる値:</b> undefined/nil<br>
194267
</td>
195268
</tr>
@@ -200,6 +273,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
200273
<br><b>制限されるフィールド:</b><br>
201274
spec.containers[*].securityContext.allowPrivilegeEscalation<br>
202275
spec.initContainers[*].securityContext.allowPrivilegeEscalation<br>
276+
spec.ephemeralContainers[*].securityContext.allowPrivilegeEscalation<br>
203277
<br><b>認められる値:</b> false<br>
204278
</td>
205279
</tr>
@@ -211,6 +285,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
211285
spec.securityContext.runAsNonRoot<br>
212286
spec.containers[*].securityContext.runAsNonRoot<br>
213287
spec.initContainers[*].securityContext.runAsNonRoot<br>
288+
spec.ephemeralContainers[*].securityContext.runAsNonRoot<br>
214289
<br><b>認められる値:</b> true<br>
215290
</td>
216291
</tr>
@@ -242,6 +317,36 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
242317
undefined / nil<br>
243318
</td>
244319
</tr>
320+
<tr>
321+
<td style="white-space: nowrap">Capabilities (v1.22+)</td>
322+
<td>
323+
<p>
324+
コンテナはすべてのケイパビリティを削除する必要があり、<code>NET_BIND_SERVICE</code>ケイパビリティを追加することだけが許可されています。
325+
</p>
326+
<p><strong>Restricted Fields</strong></p>
327+
<ul>
328+
<li><code>spec.containers[*].securityContext.capabilities.drop</code></li>
329+
<li><code>spec.initContainers[*].securityContext.capabilities.drop</code></li>
330+
<li><code>spec.ephemeralContainers[*].securityContext.capabilities.drop</code></li>
331+
</ul>
332+
<p><strong>Allowed Values</strong></p>
333+
<ul>
334+
<li>Any list of capabilities that includes <code>ALL</code></li>
335+
</ul>
336+
<hr />
337+
<p><strong>Restricted Fields</strong></p>
338+
<ul>
339+
<li><code>spec.containers[*].securityContext.capabilities.add</code></li>
340+
<li><code>spec.initContainers[*].securityContext.capabilities.add</code></li>
341+
<li><code>spec.ephemeralContainers[*].securityContext.capabilities.add</code></li>
342+
</ul>
343+
<p><strong>Allowed Values</strong></p>
344+
<ul>
345+
<li>Undefined/nil</li>
346+
<li><code>NET_BIND_SERVICE</code></li>
347+
</ul>
348+
</td>
349+
</tr>
245350
</tbody>
246351
</table>
247352

@@ -284,6 +389,14 @@ Kubernetesでは、Linuxベースのワークロードと比べてWindowsの使
284389
特に、PodのSecurityContextフィールドは[Windows環境では効果がありません](/ja/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#v1-podsecuritycontext)
285390
したがって、現段階では標準化されたセキュリティポリシーは存在しません。
286391

392+
Windows Podに制限付きプロファイルを適用すると、実行時にPodに影響が出る場合があります。
393+
制限付きプロファイルでは、Linux固有の制限(seccompプロファイルや特権昇格の不許可など)を適用する必要があります。
394+
kubeletおよび/またはそのコンテナランタイムがこれらのLinux固有の値を無視した場合、Windows Podは制限付きプロファイル内で正常に動作します。
395+
ただし、強制力がないため、Windows コンテナを使用するPodについては、ベースラインプロファイルと比較して追加の制限はありません。
396+
397+
HostProcess Podを作成するためのHostProcessフラグの使用は、特権的なポリシーに沿ってのみ行われるべきです。
398+
Windows HostProcess Podの作成は、ベースラインおよび制限されたポリシーの下でブロックされているため、いかなるHostProcess Podも特権的であるとみなされるべきです。
399+
287400
### サンドボックス化されたPodはどのように扱えばよいでしょうか?
288401

289402
現在のところ、Podがサンドボックス化されていると見なされるかどうかを制御できるAPI標準はありません。

0 commit comments

Comments
 (0)