All Products
Search
Document Center

Container Service for Kubernetes:Keamanan jaringan

Last Updated:Dec 18, 2025

Keamanan jaringan mencakup kontrol akses dan enkripsi traffic. Anda dapat menentukan network policies untuk membatasi akses jaringan antar layanan hanya pada traffic tertentu. Network policies terdiri dari berbagai pengaturan, seperti aturan default allow atau deny, isolasi namespace, dan konfigurasi security group. Selain itu, Anda dapat mengenkripsi traffic selama transmisi data guna mencegah perubahan atau kebocoran data sensitif. Dengan menerapkan teknologi dan solusi tersebut, Anda dapat meningkatkan keamanan antar layanan serta melindungi transmisi data sensitif.

Network policies

Secara default, Pod dalam kluster Kubernetes dapat saling berkomunikasi, yang menimbulkan risiko keamanan di lingkungan produksi. Anda dapat membuat network policies Kubernetes untuk mengontrol traffic antar Pod serta antara Pod dan layanan eksternal. Traffic antar Pod mengacu pada lalu lintas timur-barat (east-west traffic). Network policies menggunakan pod selectors dan label untuk mengidentifikasi Pod sumber dan tujuan. Selain itu, Anda dapat menentukan alamat IP, port, protokol, atau kombinasi elemen-elemen tersebut dalam network policies. Saat menggunakan plug-in jaringan Terway, Anda dapat mengonfigurasi network policies untuk aplikasi tertentu guna mengontrol traffic jaringan pada level alamat IP atau port. Untuk informasi selengkapnya, lihat Gunakan network policies di kluster ACK dan Kubernetes Network Policy Recipes.

Penting

Hanya kluster yang menggunakan plug-in jaringan Terway yang mendukung network policies Kubernetes. Jika kluster Anda memiliki lebih dari 100 node, proxy dari network policies Kubernetes dapat meningkatkan beban pada control plane Kubernetes. Dalam kasus ini, Anda perlu mengoptimalkan network policies Kubernetes di kluster tersebut. Untuk informasi selengkapnya, lihat Tingkatkan performa fitur NetworkPolicy untuk kluster ACK berskala besar dalam mode Terway.

Buat network policy default yang menolak semua traffic

Seperti pada kebijakan role-based access control (RBAC), Anda harus menerapkan prinsip hak istimewa minimal (least privilege) saat membuat network policies. Anda dapat membuat network policy default yang menolak semua traffic inbound dan outbound dari suatu namespace. Selain itu, Anda juga dapat membuat network policy global menggunakan Calico.

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: default
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

Buat network policy yang mengizinkan kueri DNS

Setelah membuat network policy default yang menolak semua traffic inbound dan outbound, Anda dapat membuat network policies untuk tujuan tertentu. Misalnya, Anda dapat membuat network policy global yang mengizinkan Pod mengirim kueri DNS ke CoreDNS.

  1. Jalankan perintah berikut untuk menambahkan label ke namespace:

    kubectl label namespace kube-system name=kube-system
  2. Buat network policy menggunakan templat YAML berikut:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: allow-dns-access
      namespace: default
    spec:
      podSelector:
        matchLabels: {}
      policyTypes:
      - Egress
      egress:
      - to:
        - namespaceSelector:
            matchLabels:
              name: kube-system
        ports:
        - protocol: UDP
          port: 53
    Penting

    Untuk informasi selengkapnya tentang cara mengontrol traffic jaringan antar Pod menggunakan network policies Kubernetes, lihat Network Policies.

Izinkan traffic dari Pod tertentu

Dalam skenario berikut, Anda dapat membuat network policy untuk mengizinkan traffic dari Pod tertentu:

  • Anda hanya ingin mengizinkan layanan mikro tertentu mengakses suatu aplikasi.

  • Anda hanya ingin mengizinkan aplikasi tertentu mengakses database.

  1. Jalankan perintah berikut untuk membuat Pod dengan label app-bookstore dan role=api.

    kubectl run apiserver --image=nginx --labels="app=bookstore,role=api" --expose --port=80
  2. Buat file YAML berdasarkan templat berikut, lalu jalankan perintah kubectl apply -f untuk menerapkan network policy menggunakan file tersebut.

    Network policy ini hanya mengizinkan traffic dari Pod yang memiliki label app-bookstore.

    kind: NetworkPolicy
    apiVersion: networking.k8s.io/v1
    metadata:
      name: api-allow
    spec:
      podSelector:
        matchLabels:
          app: bookstore
          role: api
      ingress:
      - from:
          - podSelector:
              matchLabels:
                app: bookstore
  3. Jalankan perintah berikut untuk memeriksa apakah akses dari Pod tanpa label app-bookstore ditolak:

    kubectl run test-$RANDOM --rm -i -t --image=alpine -- sh

    Output yang diharapkan:

    / # wget -qO- --timeout=2 http://apiserver
    wget: download timed out
  4. Jalankan perintah berikut untuk memeriksa apakah akses dari Pod dengan label app-bookstore diizinkan:

    kubectl run test-$RANDOM --rm -i -t --image=alpine --labels="app=bookstore,role=frontend" -- sh

    Output yang diharapkan:

    / # wget -qO- --timeout=2 http://apiserver
    <!DOCTYPE html>
    <html><head>

Tambahkan aturan kustom untuk mengizinkan traffic antar Pod tertentu dalam namespace

Setelah membuat network policy yang mengizinkan komunikasi antar Pod dalam namespace, Anda dapat menambahkan aturan kustom untuk membatasi komunikasi hanya antar Pod tertentu dalam namespace tersebut. Untuk informasi selengkapnya, lihat Kubernetes Network Policy Recipes.

Monitor dan analisis data traffic

Alibaba Cloud Virtual Private Cloud (VPC) menyediakan flow logs yang mencatat informasi mengenai traffic inbound dan outbound dari elastic network interfaces (ENIs). Flow logs membantu memverifikasi aturan access control list (ACL), memantau traffic jaringan, dan memecahkan masalah jaringan. Anda dapat mengidentifikasi traffic abnormal antar sumber daya (termasuk Pod) dalam VPC dengan menganalisis flow logs. Untuk informasi selengkapnya, lihat Flow logs.

Security group

ACK menggunakan security groups untuk mengelola traffic antara node master dan node pekerja. Anda juga dapat menggunakan security groups untuk mengelola traffic antara node pekerja, sumber daya VPC lainnya, dan alamat IP eksternal. Saat membuat kluster ACK, sistem secara otomatis membuat security group untuk kluster tersebut, yang mengizinkan komunikasi antar node dalam kluster. Untuk meningkatkan keamanan, Anda dapat menambahkan aturan inbound dan outbound ke security group guna menerapkan prinsip hak istimewa minimal. Untuk informasi selengkapnya, lihat Aturan inbound dan outbound yang direkomendasikan untuk security group kluster.

Untuk informasi selengkapnya, lihat Konfigurasi security groups dalam berbagai skenario dan Konfigurasi security group.

Enkripsi transmisi data

  • Service Mesh (ASM)

    ASM dapat mengenkripsi data yang ditransmisikan antar layanan. Selain autentikasi mutual Transport Layer Security (mTLS), Anda juga dapat menggunakan Envoy Secret Discovery Service (SDS) untuk mengaktifkan gerbang layanan (service gateways) agar mendukung HTTPS dan pemuatan sertifikat dinamis. ASM dapat digunakan bersama Application High Availability Service (AHAS) untuk mengelola traffic aplikasi yang dideploy di instans Service Mesh. ASM terintegrasi dengan Analisis Tracing untuk menyediakan kemampuan bagi pengembang aplikasi terdistribusi, seperti pemetaan jejak (trace mapping), penghitungan panggilan layanan, topologi jejak, dan analisis ketergantungan aplikasi. Pengembang dapat memanfaatkan kemampuan ini untuk mengidentifikasi dan mendiagnosis bottleneck performa dalam arsitektur aplikasi terdistribusi serta meningkatkan efisiensi pengembangan dan diagnostik.

  • Use a Secret to configure TLS to enable HTTPS access

    Anda harus mengaktifkan akses HTTPS untuk layanan yang diekspos oleh Ingress di kluster. Untuk informasi selengkapnya, lihat Gunakan Secret untuk mengonfigurasi TLS agar mengaktifkan akses HTTPS.