2017-08-02 15 views
5

Để chuẩn bị cho việc tuân thủ HIPAA, chúng tôi đang chuyển cụm Kubernetes của chúng tôi để sử dụng các điểm cuối an toàn trên toàn bộ hạm đội (giữa tất cả các nhóm). Vì cụm này bao gồm khoảng 8-10 dịch vụ hiện đang sử dụng các kết nối HTTP, sẽ rất hữu ích nếu Kubernetes xử lý cẩn thận.Cách định cấu hình Kubernetes để mã hóa lưu lượng giữa các nút và các nhóm?

Vector tấn công cụ thể mà chúng tôi muốn giải quyết với điều này là gói sniffing giữa các nút (máy chủ vật lý).

Câu hỏi này phá vỡ thành hai phần:

  • Liệu Kubernetes mã hóa giao thông giữa vỏ & nút theo mặc định?
  • Nếu không, có cách nào để định cấu hình không?

Rất cám ơn!

Trả lời

1

Thực ra câu trả lời đúng là "nó phụ thuộc". Tôi sẽ chia cụm thành 2 mạng riêng biệt.

1. Kiểm soát Plane Mạng

mạng này là của mạng vật lý hoặc mạng underlay nói cách khác.

yếu tố máy bay điều khiển k8s - kube-apiserver, bộ điều khiển kube-controller, bộ lập lịch kube-up, kube-proxy, kubelet - nói chuyện với nhau theo nhiều cách khác nhau. Ngoại trừ một vài điểm cuối (ví dụ: số liệu), có thể định cấu hình mã hóa trên tất cả các điểm cuối.

Nếu bạn cũng đang pentesting thì kubelet authn/authz cũng sẽ được bật. Nếu không, mã hóa không ngăn chặn truy cập trái phép vào kubelet. Điểm cuối này (tại cổng 10250) có thể bị tấn công một cách dễ dàng.

2. Cụm Mạng

Mạng lưới cụm là một trong những sử dụng bởi các Pods, mà cũng được gọi là mạng overlay. Mã hóa được để lại cho plugin lớp phủ của bên thứ ba để triển khai, không thực hiện được ứng dụng nào.

Lớp phủ Weave supports encryption. Các liên kết lưới dịch vụ mà @ lukas-eichler đề xuất cũng có thể đạt được điều này, nhưng trên một lớp mạng khác.

0

Không, kubernetes không mã hóa giao thông theo mặc định

tôi đã không cố gắng cá nhân, nhưng sự mô tả trên Calico software defined network dường như hướng tới những gì bạn đang mô tả, với lợi ích bổ sung đã được kubernetes friendly

tôi nghĩ rằng Calico đã mã hóa bản địa, nhưng dựa trên this GitHub issue có vẻ như họ khuyên bạn nên sử dụng một giải pháp như IPSEC để mã hóa giống như bạn làm một máy chủ truyền thống

1

Liệu Kubernetes encry lưu lượng truy cập giữa các nhóm & các nút theo mặc định?

Kubernetes không mã hóa bất kỳ lưu lượng truy cập nào.

Có các dịch vụ như linkerd cho phép bạn dễ dàng giới thiệu giao tiếp https giữa dịch vụ http của bạn.

Bạn sẽ chạy một thể hiện của lưới dịch vụ trên mỗi nút và tất cả các dịch vụ sẽ nói chuyện với lưới dịch vụ. Thông tin liên lạc bên trong lưới dịch vụ sẽ được mã hóa.

Ví dụ:

dịch vụ của bạn -http-> localhost để servicemesh nút - https-> remoteNode -http-> localhost để dịch vụ từ xa.

Khi bạn chạy nút lưới dịch vụ trong cùng một nhóm với dịch vụ của bạn, giao tiếp cục bộ sẽ chạy trên một thiết bị mạng ảo riêng mà không có nhóm nào khác có thể truy cập.

Các vấn đề liên quan