Skip to content

Commit b37a9ca

Browse files
authored
Update secret.md
1 parent 368dd8d commit b37a9ca

File tree

1 file changed

+41
-15
lines changed
  • content/ja/docs/concepts/configuration

1 file changed

+41
-15
lines changed

content/ja/docs/concepts/configuration/secret.md

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,31 @@ weight: 30
1010

1111
<!-- overview -->
1212

13-
KubernetesのSecretはパスワード、OAuthトークン、SSHキーのような機密情報を保存し、管理できるようにします。
14-
Secretに機密情報を保存することは、それらを{{< glossary_tooltip text="Pod" term_id="pod" >}}の定義や{{< glossary_tooltip text="コンテナイメージ" term_id="image" >}}に直接記載するより、安全で柔軟です。
15-
詳しくは[Secretの設計文書](https://git.k8s.io/community/contributors/design-proposals/auth/secrets.md)を参照してください。
1613

17-
Secretはパスワード、トークン、キーのような小容量の機密データを含むオブジェクトです。
18-
他の方法としては、そのような情報はPodの定義やイメージに含めることができます。
19-
ユーザーはSecretを作ることができ、またシステムが作るSecretもあります。
14+
Secretとは、パスワードやトークン、キーなどの少量の機密データを含むオブジェクトのことです。
15+
このような情報は、Secretを用いないと {{< glossary_tooltip term_id="pod" >}} の定義や
16+
{{< glossary_tooltip text="コンテナイメージ" term_id="image" >}}に直接記載することになってしまうかもしれません。
17+
シークレットを使用すれば、アプリケーションコードに機密データを含める必要がなくなります。
2018

19+
なぜなら、シークレットは、それを使用するポッドとは独立して作成することができ、
20+
ポッドの作成、閲覧、編集といったワークフローの中でシークレット(およびそのデータ)が漏洩する危険性が低くなるためです。
21+
また、Kubernetesやクラスタ内で動作するアプリケーションは、不揮発性ストレージに機密データを書き込まないようにするなど、Secretsで追加の予防措置を取ることができます。
22+
23+
Secretsは、{{< glossary_tooltip text="ConfigMaps" term_id="configmap" >}}
24+
に似ていますが、機密データを保持するために用います。
25+
26+
27+
{{< caution >}}
28+
KubernetesのSecretは、デフォルトでは、APIサーバーの基礎となるデータストア(etcd)に暗号化されずに保存されます。APIにアクセスできる人は誰でもSecretを取得または変更でき、etcdにアクセスできる人も同様です。
29+
さらに、名前空間でPodを作成する権限を持つ人は、そのアクセスを使用して、その名前空間のあらゆるSecretを読むことができます。これには、Deploymentを作成する能力などの間接的なアクセスも含まれます。
30+
31+
Secretsを安全に使用するには、以下の手順を推奨します。
32+
33+
1. Secretsを[安全に暗号化する](/docs/tasks/administer-cluster/encrypt-data/)
34+
2. Secretsのデータの読み取りを制限する[RBACルール](/docs/reference/access-authn-authz/authorization/)の有効化または設定
35+
3. 適切な場合には、RBACなどのメカニズムを使用して、どの原則が新しいSecretの作成や既存のSecretの置き換えを許可されるかを制限します。
36+
37+
{{< /caution >}}
2138

2239
<!-- body -->
2340

@@ -30,6 +47,7 @@ PodがSecretを使う方法は3種類あります。
3047
- [コンテナの環境変数](#using-secrets-as-environment-variables)として利用する
3148
- Podを生成するために[kubeletがイメージをpullする](#using-imagepullsecrets)ときに使用する
3249

50+
KubernetesのコントロールプレーンでもSecretsは使われています。例えば、[bootstrap token Secrets](#bootstrap-token-secrets)は、ノード登録を自動化するための仕組みです。
3351

3452
Secretオブジェクトの名称は正当な[DNSサブドメイン名](/ja/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names)である必要があります。
3553
シークレットの構成ファイルを作成するときに、`data`および/または`stringData`フィールドを指定できます。`data`フィールドと`stringData`フィールドはオプションです。
@@ -145,23 +163,30 @@ Docker configファイルがない場合、または`kubectl`を使用してDock
145163
kubectl create secret docker-registry secret-tiger-docker \
146164
--docker-username=tiger \
147165
--docker-password=pass113 \
148-
166+
167+
--docker-server=my-registry.example:5000
149168
```
150169

151170
このコマンドは、`kubernetes.io/dockerconfigjson`型のSecretを作成します。
152171
`data`フィールドから`.dockerconfigjson`コンテンツをダンプすると、その場で作成された有効なDocker configである次のJSONコンテンツを取得します。
153172

154173
```json
155174
{
156-
"auths": {
157-
"https://index.docker.io/v1/": {
158-
"username": "tiger",
159-
"password": "pass113",
160-
"email": "[email protected]",
161-
"auth": "dGlnZXI6cGFzczExMw=="
162-
}
163-
}
175+
"apiVersion": "v1",
176+
"data": {
177+
".dockerconfigjson": "eyJhdXRocyI6eyJteS1yZWdpc3RyeTo1MDAwIjp7InVzZXJuYW1lIjoidGlnZXIiLCJwYXNzd29yZCI6InBhc3MxMTMiLCJlbWFpbCI6InRpZ2VyQGFjbWUuY29tIiwiYXV0aCI6ImRHbG5aWEk2Y0dGemN6RXhNdz09In19fQ=="
178+
},
179+
"kind": "Secret",
180+
"metadata": {
181+
"creationTimestamp": "2021-07-01T07:30:59Z",
182+
"name": "secret-tiger-docker",
183+
"namespace": "default",
184+
"resourceVersion": "566718",
185+
"uid": "e15c1d7b-9071-4100-8681-f3a7a2ce89ca"
186+
},
187+
"type": "kubernetes.io/dockerconfigjson"
164188
}
189+
165190
```
166191

167192
### Basic authentication Secret
@@ -1062,3 +1087,4 @@ Podに複数のコンテナが含まれることもあります。しかし、Po
10621087
- [`kubectl`を使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kubectl/)方法を学ぶ
10631088
- [config fileを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-config-file/)方法を学ぶ
10641089
- [kustomizeを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kustomize/)方法を学ぶ
1090+
- [SecretのAPIリファレンス](/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/)を読む

0 commit comments

Comments
 (0)