@@ -49,6 +49,25 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
49
49
<td><strong>項目</strong></td>
50
50
<td><strong>ポリシー</strong></td>
51
51
</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>
52
71
<tr>
53
72
<td>ホストのネームスペース</td>
54
73
<td>
@@ -57,7 +76,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
57
76
spec.hostNetwork<br>
58
77
spec.hostPID<br>
59
78
spec.hostIPC<br>
60
- <br><b>認められる値:</b> false<br>
79
+ <br><b>認められる値:</b> false, Undefined/nil <br>
61
80
</td>
62
81
</tr>
63
82
<tr>
@@ -67,6 +86,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
67
86
<br><b>制限されるフィールド:</b><br>
68
87
spec.containers[*].securityContext.privileged<br>
69
88
spec.initContainers[*].securityContext.privileged<br>
89
+ spec.ephemeralContainers[*].securityContext.privileged<br>
70
90
<br><b>認められる値:</b> false, undefined/nil<br>
71
91
</td>
72
92
</tr>
@@ -77,7 +97,22 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
77
97
<br><b>制限されるフィールド:</b><br>
78
98
spec.containers[*].securityContext.capabilities.add<br>
79
99
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>
81
116
</td>
82
117
</tr>
83
118
<tr>
@@ -96,16 +131,17 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
96
131
<br><b>制限されるフィールド:</b><br>
97
132
spec.containers[*].ports[*].hostPort<br>
98
133
spec.initContainers[*].ports[*].hostPort<br>
134
+ spec.ephemeralContainers[*].ports[*].hostPort<br>
99
135
<br><b>認められる値:</b> 0, undefined (または既知のリストに限定)<br>
100
136
</td>
101
137
</tr>
102
138
<tr>
103
- <td>AppArmor <em>(任意)</em></td>
139
+ <td>AppArmor<em>(任意)</em></td>
104
140
<td>
105
141
サポートされるホストでは、AppArmorの'runtime/default'プロファイルがデフォルトで適用されます。デフォルトのポリシーはポリシーの上書きや無効化を防ぎ、許可されたポリシーのセットを上書きできないよう制限すべきです。<br>
106
142
<br><b>制限されるフィールド:</b><br>
107
143
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>
109
145
</td>
110
146
</tr>
111
147
<tr>
@@ -116,7 +152,24 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
116
152
spec.securityContext.seLinuxOptions<br>
117
153
spec.containers[*].securityContext.seLinuxOptions<br>
118
154
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/""
120
173
</td>
121
174
</tr>
122
175
<tr>
@@ -126,9 +179,29 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
126
179
<br><b>制限されるフィールド:</b><br>
127
180
spec.containers[*].securityContext.procMount<br>
128
181
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>
130
184
</td>
131
185
</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 >
132
205
<tr >
133
206
<td >Sysctl</td >
134
207
<td >
@@ -169,27 +242,27 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
169
242
<td>
170
243
HostPathボリュームの制限に加え、制限プロファイルではコアでない種類のボリュームの利用をPersistentVolumeにより定義されたものに限定します。<br>
171
244
<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>
193
266
<br><b>認められる値:</b> undefined/nil<br>
194
267
</td>
195
268
</tr>
@@ -200,6 +273,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
200
273
<br><b>制限されるフィールド:</b><br>
201
274
spec.containers[*].securityContext.allowPrivilegeEscalation<br>
202
275
spec.initContainers[*].securityContext.allowPrivilegeEscalation<br>
276
+ spec.ephemeralContainers[*].securityContext.allowPrivilegeEscalation<br>
203
277
<br><b>認められる値:</b> false<br>
204
278
</td>
205
279
</tr>
@@ -211,6 +285,7 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
211
285
spec.securityContext.runAsNonRoot<br>
212
286
spec.containers[*].securityContext.runAsNonRoot<br>
213
287
spec.initContainers[*].securityContext.runAsNonRoot<br>
288
+ spec.ephemeralContainers[*].securityContext.runAsNonRoot<br>
214
289
<br><b>認められる値:</b> true<br>
215
290
</td>
216
291
</tr>
@@ -242,6 +317,36 @@ _Pod Security Policy_ はクラスターレベルのリソースで、Pod定義
242
317
undefined / nil<br>
243
318
</td>
244
319
</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>
245
350
</tbody>
246
351
</table >
247
352
@@ -284,6 +389,14 @@ Kubernetesでは、Linuxベースのワークロードと比べてWindowsの使
284
389
特に、PodのSecurityContextフィールドは[ Windows環境では効果がありません] ( /ja/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#v1-podsecuritycontext ) 。
285
390
したがって、現段階では標準化されたセキュリティポリシーは存在しません。
286
391
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
+
287
400
### サンドボックス化されたPodはどのように扱えばよいでしょうか?
288
401
289
402
現在のところ、Podがサンドボックス化されていると見なされるかどうかを制御できるAPI標準はありません。
0 commit comments