Skip to content

Commit 38eaf3b

Browse files
authored
Merge pull request #22312 from imrenagi/translation/managing-tls
Add Bahasa Indonesia translation for managing tls
2 parents 436afaa + c1a180b commit 38eaf3b

File tree

2 files changed

+219
-0
lines changed

2 files changed

+219
-0
lines changed

content/id/docs/tasks/tls/_index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "TLS"
3+
weight: 100
4+
---
5+
Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
---
2+
title: Kelola Sertifikat TLS Pada Klaster
3+
content_template: templates/task
4+
---
5+
6+
<!-- overview -->
7+
8+
Kubernetes menyediakan API `certificates.k8s.io` yang memungkinkan kamu membuat sertifikat
9+
TLS yang ditandatangani oleh Otoritas Sertifikat (CA) yang kamu kendalikan. CA dan sertifikat ini
10+
bisa digunakan oleh _workload_ untuk membangun kepercayaan.
11+
12+
API `certificates.k8s.io` menggunakan protokol yang mirip dengan [konsep ACME](https://github.com/ietf-wg-acme/acme/).
13+
14+
{{< note >}}
15+
Sertifikat yang dibuat menggunakan API `certificates.k8s.io` ditandatangani oleh CA
16+
khusus. Ini memungkinkan untuk mengkonfigurasi klaster kamu agar menggunakan CA _root_ klaster untuk tujuan ini,
17+
namun jangan pernah mengandalkan ini. Jangan berasumsi bahwa sertifikat ini akan melakukan validasi
18+
dengan CA _root_ klaster
19+
{{< /note >}}
20+
21+
22+
23+
24+
## {{% heading "prerequisites" %}}
25+
26+
27+
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
28+
29+
30+
31+
<!-- steps -->
32+
33+
## Mempercayai TLS dalam Klaster
34+
35+
Mempercayai CA khusus dari aplikasi yang berjalan sebagai Pod biasanya memerlukan
36+
beberapa tambahan konfigurasi aplikasi. Kamu harus menambahkan bundel sertifikat CA
37+
ke daftar sertifikat CA yang dipercaya klien atau server TLS.
38+
Misalnya, kamu akan melakukan ini dengan konfigurasi TLS golang dengan mengurai rantai sertifikat
39+
dan menambahkan sertifikat yang diurai ke `RootCAs` di _struct_
40+
[`tls.Config`](https://godoc.org/crypto/tls#Config).
41+
42+
Kamu bisa mendistribusikan sertifikat CA sebagai sebuah
43+
[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap) yang bisa diakses oleh Pod kamu.
44+
45+
## Meminta Sertifikat
46+
47+
Bagian berikut mendemonstrasikan cara membuat sertifikat TLS untuk sebuah
48+
Service kubernetes yang diakses melalui DNS.
49+
50+
{{< note >}}
51+
Tutorial ini menggunakan CFSSL: PKI dan peralatan TLS dari Cloudflare [klik disini](https://blog.cloudflare.com/introducing-cfssl/) untuk mengetahui lebih jauh.
52+
{{< /note >}}
53+
54+
## Unduh dan Pasang CFSSL
55+
56+
Contoh ini menggunakan cfssl yang dapat diunduh pada
57+
[https://pkg.cfssl.org/](https://pkg.cfssl.org/).
58+
59+
## Membuat CertificateSigningRequest
60+
61+
Buat kunci pribadi dan CertificateSigningRequest (CSR) dengan menggunakan perintah berikut:
62+
63+
```shell
64+
cat <<EOF | cfssl genkey - | cfssljson -bare server
65+
{
66+
"hosts": [
67+
"my-svc.my-namespace.svc.cluster.local",
68+
"my-pod.my-namespace.pod.cluster.local",
69+
"192.0.2.24",
70+
"10.0.34.2"
71+
],
72+
"CN": "my-pod.my-namespace.pod.cluster.local",
73+
"key": {
74+
"algo": "ecdsa",
75+
"size": 256
76+
}
77+
}
78+
EOF
79+
```
80+
81+
`192.0.2.24` adalah klaster IP Service,
82+
`my-svc.my-namespace.svc.cluster.local` adalah nama DNS Service,
83+
`10.0.34.2` adalah IP Pod dan `my-pod.my-namespace.pod.cluster.local`
84+
adalah nama DNS Pod. Kamu akan melihat keluaran berikut:
85+
86+
```
87+
2017/03/21 06:48:17 [INFO] generate received request
88+
2017/03/21 06:48:17 [INFO] received CSR
89+
2017/03/21 06:48:17 [INFO] generating key: ecdsa-256
90+
2017/03/21 06:48:17 [INFO] encoded CSR
91+
```
92+
93+
Perintah ini menghasilkan dua berkas; Ini menghasilkan `server.csr` yang berisi permintaan sertifikasi PEM
94+
tersandi [pkcs#10](https://tools.ietf.org/html/rfc2986),
95+
dan `server-key.pem` yang berisi PEM kunci yang tersandi untuk sertifikat yang
96+
masih harus dibuat.
97+
98+
## Membuat objek CertificateSigningRequest untuk dikirim ke API Kubernetes
99+
Buat sebuah yaml CSR dan kirim ke API Server dengan menggunakan perintah berikut:
100+
101+
```shell
102+
cat <<EOF | kubectl apply -f -
103+
apiVersion: certificates.k8s.io/v1beta1
104+
kind: CertificateSigningRequest
105+
metadata:
106+
name: my-svc.my-namespace
107+
spec:
108+
request: $(cat server.csr | base64 | tr -d '\n')
109+
usages:
110+
- digital signature
111+
- key encipherment
112+
- server auth
113+
EOF
114+
```
115+
116+
Perhatikan bahwa berkas `server.csr` yang dibuat pada langkah 1 merupakan base64 tersandi
117+
dan disimpan di _field_ `.spec.request`. Kami juga meminta
118+
sertifikat dengan penggunaan kunci "_digital signature_", "_key enchiperment_", dan "_server
119+
auth_". Kami mendukung semua penggunaan kunci dan penggunaan kunci yang diperpanjang yang terdaftar
120+
[di sini](https://godoc.org/k8s.io/api/certificates/v1beta1#KeyUsage)
121+
sehingga kamu dapat meminta sertifikat klien dan sertifikat lain menggunakan
122+
API yang sama.
123+
124+
CSR semestinya bisa dilihat dari API pada status _Pending_. Kamu bisa melihatnya dengan menjalankan:
125+
126+
```shell
127+
kubectl describe csr my-svc.my-namespace
128+
```
129+
130+
```none
131+
Name: my-svc.my-namespace
132+
Labels: <none>
133+
Annotations: <none>
134+
CreationTimestamp: Tue, 21 Mar 2017 07:03:51 -0700
135+
Requesting User: [email protected]
136+
Status: Pending
137+
Subject:
138+
Common Name: my-svc.my-namespace.svc.cluster.local
139+
Serial Number:
140+
Subject Alternative Names:
141+
DNS Names: my-svc.my-namespace.svc.cluster.local
142+
IP Addresses: 192.0.2.24
143+
10.0.34.2
144+
Events: <none>
145+
```
146+
147+
## Mendapatkan Persetujuan CertificateSigningRequest
148+
149+
Penyetujuan CertificateSigningRequest dapat dilakukan dengan otomatis
150+
atau dilakukan sekali oleh administrator klaster. Informasi lebih lanjut tentang
151+
apa yang terjadi dibahas dibawah ini.
152+
153+
## Unduh dan Gunakan Sertifikat
154+
155+
Setelah CSR ditandatangani dan disetujui, kamu akan melihat:
156+
157+
```shell
158+
kubectl get csr
159+
```
160+
161+
```none
162+
NAME AGE REQUESTOR CONDITION
163+
my-svc.my-namespace 10m [email protected] Approved,Issued
164+
```
165+
166+
Kamu bisa mengundur sertifikat yang telah diterbitkan dan menyimpannya ke berkas
167+
`server.crt` dengan menggunakan perintah berikut:
168+
169+
```shell
170+
kubectl get csr my-svc.my-namespace -o jsonpath='{.status.certificate}' \
171+
| base64 --decode > server.crt
172+
```
173+
174+
Sekarang kamu bisa menggunakan `server.crt` dan `server-key.pem` sebagai pasangan
175+
kunci untuk memulai server HTTPS kamu.
176+
177+
## Penyetujuan CertificateSigningRequest
178+
179+
Administrator Kubernetes (dengan izin yang cukup) dapat menyetujui secara manual
180+
(atau menolak) Certificate Signing Requests dengan menggunakan perintah `kubectl certificate
181+
approve` dan `kubectl certificate deny`. Namun jika kamu bermaksud
182+
untuk menggunakan API ini secara sering, kamu dapat mempertimbangkan untuk menulis
183+
Certificate _controller_ otomatis.
184+
185+
Baik itu mesin atau manusia yang menggunakan kubectl seperti di atas, peran pemberi persetujuan adalah
186+
untuk memverifikasi bahwa CSR memenuhi dua persyaratan:
187+
1. Subjek CSR mengontrol kunci pribadi yang digunakan untuk menandatangani CSR. Ini
188+
mengatasi ancaman pihak ketiga yang menyamar sebagai subjek resmi.
189+
Pada contoh di atas, langkah ini adalah untuk memverifikasi bahwa Pod mengontrol
190+
kunci pribadi yang digunakan untuk menghasilkan CSR.
191+
2. Subjek CSR berwenang untuk bertindak dalam konteks yang diminta. Ini
192+
mengatasi ancaman subjek yang tidak diinginkan bergabung dengan klaster. Dalam
193+
contoh di atas, langkah ini untuk memverifikasi bahwa Pod diizinkan
194+
berpartisipasi dalam Service yang diminta.
195+
196+
Jika dan hanya jika kedua persyaratan ini dipenuhi, pemberi persetujuan harus menyetujui
197+
CSR dan sebaliknya harus menolak CSR.
198+
199+
## Peringatan tentang Izin Persetujuan
200+
201+
Kemampuan untuk menyetujui CSR menentukan siapa yang mempercayai siapa di dalam lingkungan kamu.
202+
Kemampuan untuk menyetujui CSR tersebut seharusnya tidak diberikan secara luas.
203+
Persyaratan tantangan yang disebutkan di bagian sebelumnya dan
204+
dampak dari mengeluarkan sertifikat khusus, harus sepenuhnya dipahami
205+
sebelum memberikan izin ini.
206+
207+
## Catatan Untuk Administrator Klaster
208+
209+
Tutorial ini mengasumsikan bahwa penanda tangan diatur untuk melayani API sertifikat.
210+
Kubernetes _controller manager_ menyediakan implementasi bawaan dari penanda tangan. Untuk
211+
mengaktifkan, berikan parameter `--cluster-signed-cert-file` dan
212+
`--cluster-signed-key-file` ke _controller manager_ dengan _path_ ke
213+
pasangan kunci CA kamu.
214+

0 commit comments

Comments
 (0)