Skip to content

Commit f396c81

Browse files
authored
Merge pull request #31436 from KobayashiD27/translate-concepts/storage/projected-volumes
[ja]Translate concepts/storage/projected-volumes into Japanese
2 parents 4da4bd4 + 96d8314 commit f396c81

File tree

5 files changed

+175
-1
lines changed

5 files changed

+175
-1
lines changed
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
title: 投影ボリューム
3+
content_type: concept
4+
weight: 21 # just after persistent volumes
5+
---
6+
7+
<!-- overview -->
8+
9+
このドキュメントでは、Kubernetesの*投影ボリューム*について説明します。[ボリューム](/docs/concepts/storage/volumes/)に精通していることをお勧めします。
10+
11+
<!-- body -->
12+
13+
## 概要
14+
15+
ボリュームは、いくつかの既存の`投影`ボリュームソースを同じディレクトリにマップします。
16+
17+
現在、次のタイプのボリュームソースを投影できます。
18+
19+
* [`secret`](/docs/concepts/storage/volumes/#secret)
20+
* [`downwardAPI`](/docs/concepts/storage/volumes/#downwardapi)
21+
* [`configMap`](/docs/concepts/storage/volumes/#configmap)
22+
* `serviceAccountToken`
23+
24+
すべてのソースは、Podと同じnamespaceにある必要があります。詳細は[all-in-one volume](https://github.com/kubernetes/design-proposals-archive/blob/main/node/all-in-one-volume.md)デザインドキュメントを参照してください。
25+
26+
### secret、downwardAPI、およびconfigMapを使用した構成例 {#example-configuration-secret-downwardapi-configmap}
27+
28+
{{< codenew file="pods/storage/projected-secret-downwardapi-configmap.yaml" >}}
29+
30+
### 構成例:デフォルト以外のアクセス許可モードが設定されたsecret {#example-configuration-secrets-nondefault-permission-mode}
31+
32+
{{< codenew file="pods/storage/projected-secrets-nondefault-permission-mode.yaml" >}}
33+
34+
各投影ボリュームソースは、specの`sources`にリストされています。パラメーターは、2つの例外を除いてほぼ同じです。
35+
36+
* secretについて、ConfigMapの命名と一致するように`secretName`フィールドが`name`に変更されました。
37+
* `defaultMode`はprojectedレベルでのみ指定でき、各ボリュームソースには指定できません。ただし上に示したように、個々の投影ごとに`mode`を明示的に設定できます。
38+
39+
`TokenRequestProjection`機能が有効になっている場合、現在の[サービスアカウントトークン](/ja/docs/reference/access-authn-authz/authentication/#service-account-token)を指定されたパスのPodに挿入できます。例えば:
40+
41+
{{< codenew file="pods/storage/projected-service-account-token.yaml" >}}
42+
43+
この例のPodには、挿入されたサービスアカウントトークンを含む投影ボリュームがあります。このトークンはPodのコンテナがKubernetes APIサーバーにアクセスするために使用できます。この`audience`フィールドにはトークンの受信対象者が含まれています。トークンの受信者は、トークンの`audience`フィールドで指定された識別子で自分自身であるかを識別します。そうでない場合はトークンを拒否します。このフィールドはオプションで、デフォルトではAPIサーバーの識別子が指定されます。
44+
45+
`expirationSeconds`はサービスアカウントトークンが有効であると予想される期間です。
46+
デフォルトは1時間で、最低でも10分(600秒)でなければなりません。
47+
管理者は、APIサーバーに`--service-account-max-token-expiration`オプションを指定することで、その最大値を制限することも可能です。
48+
`path`フィールドは、投影ボリュームのマウントポイントへの相対パスを指定します。
49+
50+
51+
{{< note >}}
52+
投影ボリュームソースを[`subPath`](/docs/concepts/storage/volumes/#using-subpath)ボリュームマウントとして使用しているコンテナは、それらのボリュームソースの更新を受信しません。
53+
{{< /note >}}
54+
55+
## SecurityContextの相互作用
56+
57+
サービスアカウントの投影ボリューム拡張でのファイル権限処理の[提案](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2451-service-account-token-volumes#proposal)により、正しい所有者権限が設定された投影ファイルが導入されました。
58+
59+
### Linux
60+
61+
投影ボリュームがあり、Podの[`SecurityContext`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context)`RunAsUser`が設定されているLinux Podでは、投影されたファイルには、コンテナユーザーの所有権を含む正しい所有権が設定されます。
62+
63+
### Windows
64+
65+
投影ボリュームを持ち、Podの`SecurityContext``RunAsUsername`を設定したWindows Podでは、Windowsのユーザーアカウント管理方法により所有権が強制されません。
66+
Windowsは、ローカルユーザーとグループアカウントをセキュリティアカウントマネージャー(SAM)と呼ばれるデータベースファイルに保存し、管理します。
67+
各コンテナはSAMデータベースの独自のインスタンスを維持し、コンテナの実行中はホストはそのインスタンスを見ることができません。
68+
Windowsコンテナは、OSのユーザーモード部分をホストから分離して実行するように設計されており、そのため仮想SAMデータベースを維持することになります。
69+
そのため、ホスト上で動作するkubeletには、仮想化されたコンテナアカウントのホストファイル所有権を動的に設定する機能がありません。
70+
ホストマシン上のファイルをコンテナと共有する場合は、`C:\`以外の独自のボリュームマウントに配置することをお勧めします。
71+
72+
デフォルトでは、投影ボリュームファイルの例に示されているように、投影されたファイルには次の所有権があります。
73+
```powershell
74+
PS C:\> Get-Acl C:\var\run\secrets\kubernetes.io\serviceaccount\..2021_08_31_22_22_18.318230061\ca.crt | Format-List
75+
76+
Path : Microsoft.PowerShell.Core\FileSystem::C:\var\run\secrets\kubernetes.io\serviceaccount\..2021_08_31_22_22_18.318230061\ca.crt
77+
Owner : BUILTIN\Administrators
78+
Group : NT AUTHORITY\SYSTEM
79+
Access : NT AUTHORITY\SYSTEM Allow FullControl
80+
BUILTIN\Administrators Allow FullControl
81+
BUILTIN\Users Allow ReadAndExecute, Synchronize
82+
Audit :
83+
Sddl : O:BAG:SYD:AI(A;ID;FA;;;SY)(A;ID;FA;;;BA)(A;ID;0x1200a9;;;BU)
84+
```
85+
これは、`ContainerAdministrator`のようなすべての管理者ユーザーが読み取り、書き込み、および実行アクセス権を持ち、非管理者ユーザーが読み取りおよび実行アクセス権を持つことを意味します。
86+
87+
{{< note >}}
88+
一般に、コンテナにホストへのアクセスを許可することは、潜在的なセキュリティの悪用への扉を開く可能性があるため、お勧めできません。
89+
90+
Windows Podの`SecurityContext``RunAsUser`を指定して作成すると、Podは`ContainerCreating`で永久に固まります。したがって、Windows PodでLinux専用の`RunAsUser`オプションを使用しないことをお勧めします。
91+
{{< /note >}}

content/ja/docs/reference/access-authn-authz/authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ APIサーバーの`--enable-bootstrap-token-auth`フラグで、Bootstrap Token
105105

106106
ブートストラップトークンの認証機能やコントローラーについての詳細な説明、`kubeadm`でこれらのトークンを管理する方法については、[ブートストラップトークン](/docs/reference/access-authn-authz/bootstrap-tokens/)を参照してください。
107107

108-
### サービスアカウントトークン
108+
### サービスアカウントトークン {#service-account-token}
109109

110110
サービスアカウントは、自動的に有効化される認証機能で、署名されたBearerトークンを使ってリクエストを検証します。このプラグインは、オプションとして2つのフラグを取ります。
111111

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: volume-test
5+
spec:
6+
containers:
7+
- name: container-test
8+
image: busybox
9+
volumeMounts:
10+
- name: all-in-one
11+
mountPath: "/projected-volume"
12+
readOnly: true
13+
volumes:
14+
- name: all-in-one
15+
projected:
16+
sources:
17+
- secret:
18+
name: mysecret
19+
items:
20+
- key: username
21+
path: my-group/my-username
22+
- downwardAPI:
23+
items:
24+
- path: "labels"
25+
fieldRef:
26+
fieldPath: metadata.labels
27+
- path: "cpu_limit"
28+
resourceFieldRef:
29+
containerName: container-test
30+
resource: limits.cpu
31+
- configMap:
32+
name: myconfigmap
33+
items:
34+
- key: config
35+
path: my-group/my-config
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: volume-test
5+
spec:
6+
containers:
7+
- name: container-test
8+
image: busybox
9+
volumeMounts:
10+
- name: all-in-one
11+
mountPath: "/projected-volume"
12+
readOnly: true
13+
volumes:
14+
- name: all-in-one
15+
projected:
16+
sources:
17+
- secret:
18+
name: mysecret
19+
items:
20+
- key: username
21+
path: my-group/my-username
22+
- secret:
23+
name: mysecret2
24+
items:
25+
- key: password
26+
path: my-group/my-password
27+
mode: 511
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: sa-token-test
5+
spec:
6+
containers:
7+
- name: container-test
8+
image: busybox
9+
volumeMounts:
10+
- name: token-vol
11+
mountPath: "/service-account"
12+
readOnly: true
13+
serviceAccountName: default
14+
volumes:
15+
- name: token-vol
16+
projected:
17+
sources:
18+
- serviceAccountToken:
19+
audience: api
20+
expirationSeconds: 3600
21+
path: token

0 commit comments

Comments
 (0)