@@ -10,14 +10,29 @@ weight: 30
10
10
11
11
<!-- overview -->
12
12
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 ) を参照してください。
16
13
17
- Secretはパスワード、トークン、キーのような小容量の機密データを含むオブジェクトです 。
18
- 他の方法としては、そのような情報はPodの定義やイメージに含めることができます 。
19
- ユーザーはSecretを作ることができ、またシステムが作るSecretもあります 。
14
+ Secretとは、パスワードやトークン、キーなどの少量の機密データを含むオブジェクトのことです 。
15
+ このような情報は、Secretを用いないと{{< glossary_tooltip term_id="pod" >}}の定義や{{< glossary_tooltip text="コンテナイメージ" term_id="image" >}}に直接記載することになってしまうかもしれません 。
16
+ Secretを使用すれば、アプリケーションコードに機密データを含める必要がなくなります 。
20
17
18
+ なぜなら、Secretは、それを使用するPodとは独立して作成することができ、
19
+ Podの作成、閲覧、編集といったワークフローの中でSecret(およびそのデータ)が漏洩する危険性が低くなるためです。
20
+ また、Kubernetesやクラスター内で動作するアプリケーションは、不揮発性ストレージに機密データを書き込まないようにするなど、Secretで追加の予防措置を取ることができます。
21
+
22
+ Secretsは、{{< glossary_tooltip text="ConfigMaps" term_id="configmap" >}}に似ていますが、機密データを保持するために用います。
23
+
24
+
25
+ {{< caution >}}
26
+ KubernetesのSecretは、デフォルトでは、APIサーバーの基礎となるデータストア(etcd)に暗号化されずに保存されます。APIにアクセスできる人は誰でもSecretを取得または変更でき、etcdにアクセスできる人も同様です。
27
+ さらに、名前空間でPodを作成する権限を持つ人は、そのアクセスを使用して、その名前空間のあらゆるSecretを読むことができます。これには、Deploymentを作成する能力などの間接的なアクセスも含まれます。
28
+
29
+ Secretsを安全に使用するには、以下の手順を推奨します。
30
+
31
+ 1 . Secretsを[ 安全に暗号化する] ( /docs/tasks/administer-cluster/encrypt-data/ )
32
+ 2 . Secretsのデータの読み取りを制限する[ RBACルール] ( /docs/reference/access-authn-authz/authorization/ ) の有効化または設定
33
+ 3 . 適切な場合には、RBACなどのメカニズムを使用して、どの原則が新しいSecretの作成や既存のSecretの置き換えを許可されるかを制限します。
34
+
35
+ {{< /caution >}}
21
36
22
37
<!-- body -->
23
38
@@ -30,6 +45,7 @@ PodがSecretを使う方法は3種類あります。
30
45
- [ コンテナの環境変数] ( #using-secrets-as-environment-variables ) として利用する
31
46
- Podを生成するために[ kubeletがイメージをpullする] ( #using-imagepullsecrets ) ときに使用する
32
47
48
+ KubernetesのコントロールプレーンでもSecretsは使われています。例えば、[ bootstrap token Secrets] ( #bootstrap-token-secrets ) は、ノード登録を自動化するための仕組みです。
33
49
34
50
Secretオブジェクトの名称は正当な[ DNSサブドメイン名] ( /ja/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names ) である必要があります。
35
51
シークレットの構成ファイルを作成するときに、` data ` および/または` stringData ` フィールドを指定できます。` data ` フィールドと` stringData ` フィールドはオプションです。
@@ -145,23 +161,30 @@ Docker configファイルがない場合、または`kubectl`を使用してDock
145
161
kubectl create secret docker-registry secret-tiger-docker \
146
162
--docker-username=tiger \
147
163
--docker-password=pass113 \
148
-
164
+
165
+ --docker-server=my-registry.example:5000
149
166
` ` `
150
167
151
168
このコマンドは、`kubernetes.io/dockerconfigjson`型のSecretを作成します。
152
169
` data` フィールドから`.dockerconfigjson`コンテンツをダンプすると、その場で作成された有効なDocker configである次のJSONコンテンツを取得します。
153
170
154
171
` ` ` json
155
172
{
156
- "auths": {
157
- "https://index.docker.io/v1/": {
158
- "username": "tiger",
159
- "password": "pass113",
160
-
161
- "auth": "dGlnZXI6cGFzczExMw=="
162
- }
163
- }
173
+ "apiVersion": "v1",
174
+ "data": {
175
+ ".dockerconfigjson": "eyJhdXRocyI6eyJteS1yZWdpc3RyeTo1MDAwIjp7InVzZXJuYW1lIjoidGlnZXIiLCJwYXNzd29yZCI6InBhc3MxMTMiLCJlbWFpbCI6InRpZ2VyQGFjbWUuY29tIiwiYXV0aCI6ImRHbG5aWEk2Y0dGemN6RXhNdz09In19fQ=="
176
+ },
177
+ "kind": "Secret",
178
+ "metadata": {
179
+ "creationTimestamp": "2021-07-01T07:30:59Z",
180
+ "name": "secret-tiger-docker",
181
+ "namespace": "default",
182
+ "resourceVersion": "566718",
183
+ "uid": "e15c1d7b-9071-4100-8681-f3a7a2ce89ca"
184
+ },
185
+ "type": "kubernetes.io/dockerconfigjson"
164
186
}
187
+
165
188
` ` `
166
189
167
190
# ## Basic authentication Secret
@@ -1062,3 +1085,4 @@ Podに複数のコンテナが含まれることもあります。しかし、Po
1062
1085
- [`kubectl`を使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kubectl/)方法を学ぶ
1063
1086
- [config fileを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-config-file/)方法を学ぶ
1064
1087
- [kustomizeを使用してSecretを管理する](/docs/tasks/configmap-secret/managing-secret-using-kustomize/)方法を学ぶ
1088
+ - [SecretのAPIリファレンス](/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/)を読む
0 commit comments